路由跟踪显示的defense.gov (DoD Network) IP地址

今天在讨论板看到有人提到这个为什么阿里云主机跟踪路由会出现类似defense.gov或者DoD Network所有者的IP地址,搜索了网络发现有价值的信息不多,思科技术论坛上有这么一个帖子《An IP address of USA Department of Defense Network Information Center in debug output of a router》有网友提到由于历史原因,有些特殊的IP段是专门分配给军方使用的,不知是出于内网保密需要或者其他什么原因无法从公共互联网(Internet)上访问这些特殊的IP段,这些IP段因此被某些大型网络供应商来弥补内网IP地址的不足。我猜测可能因为使用这些IP地址段的军方似乎永远不会将其发布到公共网络上,所以将这些IP地址仅仅用于内网的用法也不会造成Internet外网混乱。

比如美国军方拥有的一部分IP地址段就有:6.0.0.0/8, 7.0.0.0/8, 11.0.0.0/8, 21.0.0.0/8, 22.0.0.0/8, 26.0.0.0/8, 28.0.0.0/8, 29.0.0.0/8, 30.0.0.0/8, 33.0.0.0/8, 55.0.0.0/8, 214.0.0.0/8, 215.0.0.0/8,这些IP地址虽然是公共IP但是基本上被用于军方内网,查询IP数据库显示defense.gov或者DoD Network所有,如果某个网络管理员仅仅将这些IP地址配置为内网IP并不发布出去的话,对于正常访问Internet互联网没有任何影响。当然如果你的内网网络和Internet互联网是物理隔离的话,分配IP地址是什么样的都不重要,最后看的还是网络基础设施的配置,比如路由表转发等等。

继续阅读

域名WHOIS显示REDACTED FOR PRIVACY和隐私保护

近期在域名控制面板的联系人信息上看到了一个选项Disclose On/Off,下面是WHOIS隐私保护开关选项,遂觉得奇怪,这两个开关同样的都是隐藏WHOIS信息从而不让公共数据库查询到,功能上难道不是重复的吗?

我尝试了一下分别开启和关闭这两个选项,发现了区别所在,如果单纯使用WHOIS隐私保护,那么域名的联系信息将会被替换为隐私保护公司的信息从而实现对于个人信息的保护,例如下面的信息:

Name:             PrivacyDotLink Customer 001138
Street:           123 West Bay Road, Box 432-WB
City:             West Bay
State/Province:   Grand Cayman
Postal Code:      KY1-1108
Country:          KY
Phone:            +1.9492763456
Email:            001138@privacy.link

继续阅读

代理SMTPS 465端口完成邮件sendmail配置备忘

之前一直使用AWS SES (Simple Email Service)作为邮件发送后端,按照官方说明配置,测试下来能收到就以为配置没有问题了。直到最近某短信邮件联动端只提示收到短信而没有邮件,这才发现SES存在丢件情况,我是配置的QQ邮箱作为接收端,通过QQ邮箱的自助查询,找到了收件丢失的原因:对于AWS来说邮件是正常投递成功(这一点后台统计也有说明),关键在于QQ邮箱,其拒收了来自AWS的邮件,理由是:

Action: failed
Final-Recipient: rfc822;
Diagnostic-Code: smtp; 550 Ip frequency limited [******** = Blocked IP 54.240.7.20]. http://service.mail.qq.com/cgi-bin/help?subtype=1&id=20022&no=1000725
Status: 5.3.0

字面上看是因为该发信IP频率过高因此被屏蔽,可能是因为AWS SES和他人共享了发信IP导致的,当然,通过链接查询到的原因证实了猜想。

继续阅读

BIND9 DNS Challenge自动配置Letsencrypt通配符(Wildcard)HTTPS证书

不得不说Letsencrypt的免费SSL数字证书确实大力促进了加密HTTP(HTTPS)的普及,使用HTTPS的好处自然有很多,比如防止登录凭据等敏感信息被第三方窃取、防止电信运营商的ISP劫持等,Google Chrome和Mozilla Firefox也在逐步将明文HTTP标识为不安全,这也在一定程度上加快了HTTPS的推广。

但是由于一些条件限制,国内的HTTPS推广普及一直不温不火,虽然大部分主流网站已经采用了HTTPS,但是大量的中小型网站、政府门户依然使用的是明文HTTP,给个人信息带来安全隐患,不使用HTTPS的理由总是有千百种,比如虚拟主机限制、CDN限制、老旧浏览器兼容、服务器资源消耗等,但是我们不能因为这些缘故而放弃HTTPS带来的优势,从长远来看HTTPS的全面普及是势不可挡的。

继续阅读

Lubuntu去掉开机显卡启动画面(NVIDIA Splash Screen Logo)

近日将一台老的笔记本换上SSD,考虑到性能问题,选择安装Lubuntu,安装完成后顿时感觉笔记本还能再战5年,当然虚拟机神马的是不敢再玩了,用来写写PHP和上上网还是绰绰有余的,比如说这篇博文就是在这台电脑上打出来的。

当然每次配置Linux系列系统都要折腾一番,这也注定了在很长一段时间内,Linux只适合服务器领域,虽然随着Android的发力,Linux也逐步扩展到移动领域,而且在移动端是吊打微软的节奏。实际上从简单办公和编程来说Windows上一些比较优秀的软件不能移植确实很遗憾,不过好在有wine的加成,至少我现在已经成功安装了Office 2003(这个版本的顺手够用)、Fireworks 8和知网CAJViewer,对于我来说Linux有这三个原本运行在Windows下软件就足矣。其他一些软件比如PhpStorm就得益于Java可以方便的移植到Linux环境下了。

继续阅读

VBScript 检测网络连接是否正常

某次维护测试需要配置脚本检测网络是否连通,正常手动检测网络是否连通有两个最为常见的办法:一是ping一个主机;二是打开某知名网站。所以脚本检测也顺着这两个思路进行。

关于ping的VBScript实现有如下代码可供参考:

Function Ping(strTarget)
  Dim objShell, objExec, strPingResults
  Set objShell = CreateObject("WScript.Shell")
  Set objExec = objShell.Exec("ping -n 2 -w 1000 " & strTarget)
  strPingResults = LCase(objExec.StdOut.ReadAll)
  If InStr(strPingResults, "reply from") Then 
    'WScript.Echo VbCrLf & strTarget & " responded to ping."
    Ping = True
  Else
    'WScript.Echo VbCrLf & strTarget & " did not respond to ping."
    Ping = False
  End If
  Set objExec = Nothing
  Set objShell = Nothing
End Function

继续阅读

解决Windows 资源保护找到了损坏文件但无法修复问题

今天Windows 8.1系统的电脑突然卡住并且自动重启,通过事件查看器得到的资料有限,初步怀疑是系统文件受损导致,于是通过经典的sfc /scannow验证系统并修复受损文件,但是得到以下提示:

开始系统扫描。此过程将需要一些时间。

开始系统扫描的验证阶段。
验证 100% 已完成。

Windows 资源保护找到了损坏文件但无法修复
其中某些文件。CBS.Log windir\Logs\CBS\CBS.log 中有详细信息。
例如 C:\Windows\Logs\CBS\CBS.log。请注意,在脱机服务方案中,
当前不支持日志记录。

继续阅读

100.64.0.1运营商级(Carrier-grade)NAT保留IP地址

在一次跟踪路由的网络操作时发现自己路由器下一跳路由节点的IP地址比较奇怪,是100.64.0.1。好奇促使我查询了这个IP地址的归属,结果是保留地址,到这里觉得比较奇怪了,按照常理以IPv4为例保留的IP地址一般为以下几种,常用于内网通讯或者特殊用途:

地址块起始结束备注
10.0.0.0/810.0.0.010.255.255.255局域网分配
172.16.0.0/12172.16.0.0172.31.255.255局域网分配
192.0.0.0/24192.168.0.0192.168.255.255局域网分配
169.254.0.0/16169.254.0.0169.254.255.255两台主机对等连接,当Windows获取不到IP地址的时候会自动分配此类地址
127.0.0.0/8127.0.0.0127.255.255.255回环(loopback)地址,表示本机
255.255.255.255/32255.255.255.255255.255.255.255广播地址

继续阅读

解决表单(Form)重置reset is not a function脚本出错

实际上很久之前遇到过一回,结果最近开发又遇到这个Bug,而且也折腾了我一些时间,比如说我在利用Ajax提交表单后,需要重置表单各项内容从交互上来避免用户重复提交,正常的表单HTML结构如下所示:

<form action="" method="post" id="LoginForm">
  <input type="text" name="username" value="" />
  <input type="password" name="password" value="" />
  <input type="submit" id="submit" name="submit" value="Login" />
  <input type="reset" id="reset" name="reset" value="Reset" />
</form>

继续阅读

VBA/VBScript提取Word(*.doc)文件中包含的图片(照片)

要处理的人事简历表是典型的Word文档,其中一人一份doc,里面包含有个人的照片,如果要把里面的照片复制出来就比较麻烦了,一般手动的做法是选择文件另存为,保存类型选择“网页(*.htm; *.html)”,这样就会另存为网页形式,同时会有个以文件名开头,以.files结尾的文件夹,点击进去就可以看到Word里面嵌入的所有资源,包含所需要的图片资源。

值得注意的是该文件夹里同一张图片正常会有两个副本,其中一张图片文件体积较大,另一张图片文件体积较小,显而易见较小体积的文件是Word自动创建的缩略图,在绝大多数情况下我们可能仅仅需要原始的插入图片,那么选择较大体积的图片文件即可,好在我要处理的人事简历表只有员工的一张照片,那么另存为网页后的文件夹也仅仅只有两张图片,一张原始图片,一张缩略图,这两张图片可以通过大小区分。

继续阅读