我的网络中的某些机器无法访问特定网站

我的网络中的某些机器无法访问特定网站

这里发生了一些非常奇怪的事情。我尝试从网络内的一些机器访问一个网站,但就是无法访问,而其他机器可以正常访问。该网站是 online.sefaz.am.gov.br。为了排除所有与浏览器相关的问题,我正在使用 telnet 进行测试。

我从我的 Macbook 上得到以下信息:

$ telnet online.sefaz.am.gov.br 80
Trying 200.242.61.43...
Connected to online.sefaz.am.gov.br.
Escape character is '^]'.

从 Windows XP 盒子(在 Macbook 上运行的虚拟机)中,我得到了这个:

C:\Documents and Settings\Administrator>telnet 200.242.61.43 80
Connecting To 200.242.61.43...Could not open connection to the host, on port 80: Connect failed

请注意,在 Windows 机器上,我尝试直接远程登录 IP 地址,这样就排除了 DNS 问题。我的防病毒软件已禁用,Windows 防火墙也已禁用。

虚拟机的网络接口是桥接的,因此它在我的网络中获得了一个有效的 IP。我还注意到一些非常奇怪的事情:如果我将虚拟机上的网络接口更改为 NAT,我就可以正常访问该网站。

我的网络中确实有一个域控制器,但我不知道有任何组策略可以阻止 IP。

所以我的问题是:你见过这样的事情吗?如果见过,该如何解决?

编辑

我从无法在浏览器上打开该网站的计算机上对该网站运行了 nmap。结果如下:

Starting Nmap 6.25 ( http://nmap.org ) at 2013-02-15 14:31 Pacific SA Standard Time
Nmap scan report for online.sefaz.am.gov.br (200.242.61.43)
Host is up (0.18s latency).
Not shown: 996 filtered ports
PORT     STATE  SERVICE
80/tcp   open   http
443/tcp  open   https
8080/tcp open   http-proxy
8443/tcp closed https-alt

TRACEROUTE (using port 8443/tcp)
HOP RTT       ADDRESS
1   ... 10
11  160.00 ms 200.242.61.43

Nmap done: 1 IP address (1 host up) scanned in 46.01 seconds

编辑2

所以我买了一个无法访问网站的盒子,并将其直接连接到我的互联网链接。什么都没有改变。我仍然无法访问该网站。然后,我把机器从我的网络上拔下来,用 3G USB 棒把它连接到互联网。猜猜怎么着?它成功了。所以合乎逻辑的结论是问题出在我的互联网链接的某个地方。

别急...我正在打字的这台电脑正在使用互联网链接,可以正常访问网站。想想吧!

答案1

根据telnet“连接失败”的错误,无法建立TCP连接。使用tcptraceroute找出哪个主机正在过滤你的请求。

这可能是路由问题或防火墙问题。

使用网络捕获程序(如 WireShark),并在启动 telnet 时检查 ICMP 消息或 TCP/RST 消息。

nmap 和 telnet 发送的 SYN 数据包不同。telnet 发送的 SYN 数据包设置了选择性确认 (SACK)。

看起来远程服务器正在过滤使用 SACK 的 TCP 数据包。

要禁用 SACK,请启动注册表编辑器并更改HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\SackOpts0

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters] 
"SackOpts"=dword:00000000
0 = disabled; 1 = enabled

有关 SACK 的详细信息,请参阅此答案:何时关闭 TCP SACK?

相关内容