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

继续阅读

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广播地址

继续阅读

解决DNSMASQ内网地址无法解析No address (A) records available

部署DNSMASQ有一段时间了,最近发现一个奇怪现象,所有内网网站均无法解析,通过nslookup命令,得到如下结果:

Server:  192.168.24.6
Address:  223.5.5.5

*** No address (A) records available for oa.example.com

其中oa.example.com是内网域名,当然这里我只是举个例子:-) 域名管理员已经将该域名解析到一个私有内网地址上,外部DNS服务器均能正常解析这个域名,唯独部署了DNSMASQ的域名服务器无法解析。

开始时并没有介意,而是通过硬绑定的方式在DNSMASQ的配置文件中将内网地址映射到oa.example.com,配置方式如下:

address=/oa.example.com/192.168.25.4

继续阅读

BAT批处理判断IP地址并自动ipconfig release/renew

某内网拨号软件设计问题,拨号后在偶然的情况下不能自动获取DHCP从而更新内网IP,后来发现通过手动释放和重新获取IP可以解决这个问题,但是每次在操作前还要看下IP地址是不是已经被更新为内网地址,若已经更新则无需操作,否则就要手动释放更新,每次敲一堆命令确实麻烦,于是打算做成批处理。

首先遇到的问题是如何获取IP地址,当然既然采用批处理那么就需要借助于现有的命令或者命令行程序,Windows系统内ipconfig命令可以获取IP地址等信息,如果我们只需要IP地址,那么就必须对获取的信息进行筛选过滤,这就需要findstr等工具的配合了,结合网上找到的示例最终代码如下:

for /f "tokens=2 delims=:" %%i in ('ipconfig^|findstr "Address"') do set ip=%%i
SET ip=%ip:~1%

继续阅读

DELL服务器进水损坏,漫长的恢复

一台服务器,由于机房天花板水管冻裂渗水,导致进水,主板报废,顺带报废了一张外插网卡,送修了一段时间,前天接到维修站通知,说是修好了,更换了主板,网卡就没用原厂的了,自己新买了个双口的PCI-E网卡接上。

开机正常,就是在启动阶段会提示按F1继续,不按就无法继续引导系统,这个比较麻烦,因为偶然的断电重启这种可能还是有的,如果因为这个导致无法继续自动启动而要手动按F1,则是非常麻烦的。联系了技术支持,得知可以在主板BIOS中禁用这类提示(大概是按F2进入系统设置,然后最后一个关于F1的选项改为Disable),这个问题算是解决了。

继续阅读

电信封锁了8080端口和80端口

今天按客户要求准备架设Web服务器,客户所有备案手续齐全,服务器拥有固定IP,本以为应该没有什么问题,但是在TMG做了Web发布后,外网死活访问不了,本来以为防火墙配置问题导致80端口无法访问,于是查看拦截日志,但是没有找到相关拦截记录。那就奇怪了,之前听闻电信有封锁80端口的现象,但是客户称所有手续齐全,电信封锁的也是无备案手续的服务器80端口,我于是换了个8080端口,结果问题依旧。

我就郁闷了,封锁80端口是为了防止做网站,那8080端口不会也被封了吧,遂用telnet检查了几个端口,除了80和8080,防火墙日志均有记录,于是我换用其中有记录的端口8000,结果Web访问正常了,看来客户备案后没有和电信协商开启必须的端口。

看来又要跑电信一趟了。

Forefront TMG 2010无法启动故障

不得不再次吐槽一下微软,由于近期打雷比较多,客户一台服务器不幸受电力故障影响而宕机,本以为重新开启后会好些,没想到我高估了M$软件的稳定性了,服务器运行的是Windows Server 2008 R2,重启后系统倒是正常进入了,多个局域网通过该服务器作为网关来上网,但是局域网和互联网不通,服务器本身倒是可以自主上网的。

检查了网卡状态,均显示正常,但提示“无 Internet 访问权限”,很容易想到了服务器上安装的TMG防火墙,打开TMG,果然显示红叉叉错误。

于是着手排除故障,首先检查了事件管理器中的事件记录,提示“Microsoft Forefront TMG Control service hung on starting”,意思是TMG 控制服务在启动时被挂起,然后就是相关依赖服务无法启动,通过services.msc打开服务管理控制台,显示Microsoft Forefront TMG Control状态为“启动”,说明这个服务还在启动中,等了有三十分钟,仍然显示正在启动,也不报错,上网找了下有没有解决方案的,结果令我大失所望,中文基本没有,英文的方案试了好多仍然不能解决这个问题,不过又等了好长时间,显示其状态已经变更为“正在运行”了。然后我手动启动相关服务,结果又是漫长的等待。哎,先把网络接到备用机上,看来这个问题要慢慢研究了。

继续阅读

解决“本地计算机上的Computer Browser服务启动后又停止了”问题

今天遇到的一个问题,具体表现是无法使用共享打印机,看不到网上邻居,即使重新设置网络和工作组也不能解决。

开始 – 运行 – 输入services.msc并确定,检查开启共享所必须的Server、Workstation以及Computer Browser服务,结果发现Computer Browser被禁用,遂更改为自动状态并尝试启动,但是事情并没有这么简单,很显然启动失败了,服务管理器控制台提示:

本地计算机 上的Computer Browser 服务启动后又停止了。
一些服务自动停止,如果它们没有什么可做的,例如“性能日志和警报”服务。

继续阅读

CNNIC的免费公共DNS不可用了?

昨天接到机房报障,说是用户只能上QQ而不能打开网页,很明显是DNS出现了故障,那台负责网关的服务器配置的上游DNS使用的是中国互联网络信息中心(CNNIC)的免费公共DNS(主DNS:210.2.1.1,辅DNS:210.2.2.2 ),随即进行测试,测试结果是主DNS和辅DNS均访问超时,无法获取DNS查询结果,如下所示,其中谷歌的公共DNS查询正常:

CNNIC公共DNS服务器故障

不晓得是什么原因,看来只有替换这两个DNS服务器了,由于用的是江苏电信,于是采用了电信在江苏设立的4台DNS服务器,为防止意外,还添加了谷歌等国外几个DNS服务器,然后网络恢复正常。

说实话真的不想用电信的DNS解析,因为容易被劫持访问,但是测试下来还是电信的解析速度比较快,国外的DNS容易被×,算了,稳定第一。有童鞋可能要问为什么一开始不设置电信的DNS呢,因为当时在Windows 2008 R2上配置DNS的时候电信的几台DNS服务器一台也不认,最后还是CNNIC的通过了验证,其实配置完成后,可以手动忽略警告强制把先前不认的DNS服务器地址配置进去。

好了,这个问题算是解决了,如果对DNS配置或者江苏电信的几台DNS服务器比较感兴趣的话可以参考这篇《解决DNS解析故障导致能上QQ却打不开网页的问题》文章。

2012年8月9日更新

感谢lscomeon的提醒,没想到CNNIC搞云解析了,新的CNNIC公共云解析服务(SDNS)地址为:首选DNS服务器:1.2.4.8备用DNS服务器:210.2.4.8。

解决服务器Broadcom BCM5716C: The network link is down问题

服务器是戴尔(DELL)的,用来作为网关型服务器,提供上网及流量控制,前几天一直反应所连接客户端会断开互联网连接几分钟,之前怀疑是交换机问题,后来查看Windows事件系统分支,找到类似下面来源为l2nd的警告类型描述:

Broadcom BCM5716C: The network link is down.
Check to make sure the network cable is properly connected.

大概几分钟或者更短的时间后,会有一条来源为l2nd的消息类型描述:

Broadcom BCM5716C: Network controller configured for 100Mb full-duplex link.

搜索网络后,基本硬件问题锁定服务器网卡和网卡所连接的交换机,软件问题就锁定网卡驱动了,为了使整个局域网运行稳定,决定先从简单的入手,即解决软件问题。其中戴尔(DELL)中文技术支持论坛给出了参考的解决方案,意思是升级网卡驱动,根据事件日志提供的Broadcom BCM5716C网卡型号,决定到Broadcom官方网站《NetXtreme II 1 Gigabit Drivers》下载所需驱动。

继续阅读