我在访问与 Google 相关的网站时遇到超时错误。如果我尝试打开 google.com、gmail.com 等,浏览器底部会一直显示“正在等待回复”,并且页面无法打开。如果我浏览其他网站,例如 www.google-analytics.com、ajax.googleapis.com、google fonts 等,则它会开始加载,在浏览器底部显示“正在连接到 [与 Google 相关的网站]”,并在此位置停留很长时间。
我可以正常浏览其他网站,而且加载速度很快。我可以 ping 域,丢失率为 0%,时间不到 100 毫秒。我可以 ping 8.8.8.8,我没有使用代理,我的 hosts 文件上没有任何内容,我不在工作或处于联网环境中:这是路由器后面的家庭网络。我使用 wifi 连接(我距离太远,无法使用有线)。
同一网络上的其他用户没有这个问题。我都可以 ping 通并浏览这些网站。我从我的安卓系统和另一台笔记本电脑上 ping 过ajax.googleapis.com
,它们返回的 IP 与这台笔记本电脑上的 IP 相同。根据http://www.whatismyipaddress.com
该问题发生在 ubuntu 12.04 上,虽然它是周期性的但频率不够高,无法确定,我真的不记得它是否也发生在 Windows 7 上(它是双启动机器)。重新启动路由器无济于事。重新启动计算机可以解决问题,直到它再次发生。
这种情况已经持续了几个月了。上次发生这种情况(今天早些时候)时,我在重启之前和之后执行了 ping。结果如下:
前
$ping ajax.googleapis.com
PING googleapis.l.google.com (74.125.21.95) 56(84) bytes of data.
64 bytes from yv-in-f95.1e100.net (74.125.21.95): icmp_req=1 ttl=47 time=157 ms
64 bytes from yv-in-f95.1e100.net (74.125.21.95): icmp_req=2 ttl=47 time=163 ms
64 bytes from yv-in-f95.1e100.net (74.125.21.95): icmp_req=3 ttl=47 time=156 ms
64 bytes from yv-in-f95.1e100.net (74.125.21.95): icmp_req=4 ttl=47 time=165 ms
64 bytes from yv-in-f95.1e100.net (74.125.21.95): icmp_req=5 ttl=47 time=157 ms
64 bytes from yv-in-f95.1e100.net (74.125.21.95): icmp_req=6 ttl=47 time=155 ms
64 bytes from yv-in-f95.1e100.net (74.125.21.95): icmp_req=7 ttl=47 time=159 ms
64 bytes from yv-in-f95.1e100.net (74.125.21.95): icmp_req=8 ttl=47 time=157 ms
后
$ping ajax.googleapis.com
PING googleapis.l.google.com (74.125.134.95) 56(84) bytes of data.
64 bytes from gg-in-f95.1e100.net (74.125.134.95): icmp_req=1 ttl=47 time=207 ms
64 bytes from gg-in-f95.1e100.net (74.125.134.95): icmp_req=2 ttl=47 time=154 ms
64 bytes from gg-in-f95.1e100.net (74.125.134.95): icmp_req=3 ttl=47 time=154 ms
64 bytes from gg-in-f95.1e100.net (74.125.134.95): icmp_req=4 ttl=47 time=152 ms
64 bytes from gg-in-f95.1e100.net (74.125.134.95): icmp_req=5 ttl=47 time=157 ms
64 bytes from gg-in-f95.1e100.net (74.125.134.95): icmp_req=6 ttl=47 time=160 ms
64 bytes from gg-in-f95.1e100.net (74.125.134.95): icmp_req=7 ttl=47 time=154 ms
64 bytes from gg-in-f95.1e100.net (74.125.134.95): icmp_req=8 ttl=47 time=157 ms
64 bytes from gg-in-f95.1e100.net (74.125.134.95): icmp_req=10 ttl=47 time=154 ms
64 bytes from gg-in-f95.1e100.net (74.125.134.95): icmp_req=11 ttl=47 time=152 ms
该问题发生在不同的浏览器上,我安装了 Epiphany,它显示了相同的行为。
我检查了 Firefox 上的网络选项卡,它显示了一个未回复的 GET 请求:
我安装了 wireshark 并监听了 HTTP GET 请求;在其他网站上,它会出现在报告中,但在 ajax.googleapis 上却什么也没有显示。然后我监听了 DNS 请求,发现有一些不同:
如果通过 telnet 连接到随机站点的 80 端口并执行 GET,它可以工作,但我无法 telnet 到ajax.googleapis.com
(或其 IP),连接永远不会完成。
答案1
以下是我将采取的一些步骤。之前从未见过这种行为,但我见过类似的行为!
如果您可以在完全不同的网络上尝试(工作或朋友或绑定到您的手机等)。
尝试使用电缆(即使只是一小会儿,也可以说是进行一次健全性检查)。如果这不是一个现实的选择,请尝试使用 USB 无线网卡一小会儿。
最后(因为可能会出现问题),您可以尝试重置 Windows 中的 IP 堆栈(奇怪的是它会影响两个操作系统,但仍然值得一试)。请小心,因为某些软件(通常是 VPN 软件和思科的一些其他工具)可能需要重新安装。以下是链接MS 指南。
简而言之:
以管理员身份执行命令
netsh int ip reset <*optional* path to logfile>
例如
netsh int ip reset c:\ipreset.log
完成后需要重新启动。
答案2
你可以看看 wireshark,一个网络嗅探器,看看发生了什么。你也可以抓取一个可移植 Linux 发行版,将其刻录到 USB 棒上并检查它是否正常工作。您还可以比较在计算机上 ping 的 IP 与正常工作的谷歌和另一个。如果您有一部带 wifi 网络和数据计划的手机,您可以检查它是否与该手机一起工作
答案3
生活在叙利亚,我们面临很多类似的问题,无论是我们政府对某些网站的本地封锁,还是美国网站因制裁而阻止我们访问。
这看起来与存在本地阻止(或 ISP 端的一些配置错误)的情况非常相似,ISP 倾向于通过透明代理传递端口 80 请求,而这正是各种问题的根源。此外,恶意软件可能会在您的本地计算机上实现这样的功能,以执行诸如投放广告或重定向等坏事...
解决方案是使用 https 而不是 http。使用 HTTPs,请求不能通过透明代理被拦截,因此不会继承由此引起的任何问题。由于您的问题主要与 Google 服务有关,因此您很幸运,因为(几乎)所有服务都启用了 https。
尝试访问https://www.google.com/,这样有用吗?如果是,那么使用https-无处不在您的浏览器的插件,它将把大多数已知服务(Google、Yahoo、Bing、Wordpress……)的请求重写为 https 而不是 http。
如果有效,这只是暂时的解决方法,需要进一步调查问题的真正根源(可能是您机器上的恶意软件或错误的路由器/ ISP 配置......)。
编辑:当问题下次再次发生时,查看一些命令的输出可能会有所帮助:,,pstree
和。它可以对找到导致这一切的罪魁祸首有所帮助。ps aux
sudo iptables -L
netstat -a
答案4
如果您最近在计算机上发现了恶意软件,有时它们会破坏 hosts 文件,试图阻止您访问可以帮助您删除恶意软件的网站。
使用记事本查看您的 hosts 文件(位于C:\windows\system32\drivers\etc\hosts
),看看是否有任何列出 的行"google.com"
。如果有,请#
在该行前面放置一个符号并保存文件。重新启动并重试。