笔记本电脑可以 ping 和 tracert,但不能浏览互联网。我先说一下我已经排除的情况:
- 这是一个全新的 Windows 安装
- 其他 5 台设备(WiFi 和有线)网络运行良好
- Telnet 无法连接
- Ping 域名和 IP 地址正常
- 我可以通过网络上的台式机浏览笔记本电脑,但反之则不行
- 已确认没有活动的代理设置
那么,除了我已经尝试过的方法之外,还有谁知道是什么原因造成的?我已经诊断出上面列出的问题,所以告诉我使用 telnet 是没有用的。告诉我尝试不同的浏览器或检查病毒或禁用 AV 也无济于事,因为我已经排除了这些可能性。我为我的语气道歉,但每次我问这个问题时,似乎都会得到同样的答案,这时我的问题肯定消失了。
答案1
尝试这个方法:
单击开始 --> 在搜索框中,输入 cmd --> 然后“CMD”将显示在搜索中 --> 现在右键单击“CMD”--> 选择“以管理员身份运行”。
现在输入此命令并按“Enter”。
netsh int ip reset resetlog.txt
- 重新启动计算机
祝你好运。
答案2
一些想法:
- Linux Live CD 测试。只需启动 Live CD 并尝试使用它访问网络即可。我这样做是为了查看硬件使用的网络堆栈是否有故障。
- 尝试使用浏览器浏览下一跳。如果您使用的是家庭网络,通常
192.168.1.1
可以找到ipconfig
并查看您的默认网关。您应该会看到一个基于 Web 的界面。 - 将计算机上的 DNS 服务器更改为必须通过 Internet 访问的服务器;而不是使用下一跳(
192.168.1.1
或其同类)。进行该更改后,尝试解析 DNS(只需ping example.com
)。 - 在您的计算机(或路由器)上运行数据包捕获以查看哪些数据包离开了您的计算机(如果您愿意,可以发布 pcap 或其屏幕截图)。
我推荐最后一种,因为 ICMP 可以在路由器上工作,但 TCP 或 UDP 却不行,这似乎很奇怪。但是,解析主机是 UDP。进一步检查您的旧问题后,我发现您的 DNS 服务器是您的下一跳。因此,更改这一点应该可以防止您正确解析 DNS(确保问题始终存在)。
如果它在 Linux 上无法正常工作,那么我们可以明确地将问题认定为与硬件有关。如果您愿意,我们可以在此步骤中采用strace
不同的流程来找出故障点。
但是,如果它在 Linux 上有效,但在 Windows 上无效,我们就必须尝试做更多的工作。此时,您可以尝试使用 Windows strace(不存在,但链接如下)。要查看在运行 ping 和 telnet 时调用了哪些进程(以及未调用哪些进程)。
问题似乎是当有 TCP 或 UDP 数据包需要离开网络(访问互联网)时,tcp/udp 堆栈没有正确地将它们移交给第三层。但是,ICMP 是第三层协议,因此它将绕过 tcp/udp 堆栈。但是,如果完成上述步骤 2 有效,则表明访问内部网络似乎不会导致此问题,而完成上述步骤 3 应该通过反转显示这一点(因为它应该停止工作)。数据包捕获将证实这一点。要尝试从提升的命令提示符中更正此问题:
netsh int ipv4 uninstall
netsh int ipv6 uninstall
netsh int tcp uninstall
netsh int ipv4 install
netsh int ipv6 install
netsh int tcp install
netsh winsock reset catalog
我不建议在不研究问题的情况下运行这些程序。但这应该会有所帮助。
Strace(风格)链接: http://msdn.microsoft.com/en-us/library/windows/hardware/ff552060%28v=vs.85%29.aspx
http://www.intellectualheaven.com/default.asp?BH=projects&H=strace.htm
http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx
http://technet.microsoft.com/en-us/sysinternals/bb896647.aspx
答案3
数据包大小是导致网络问题的另一个可能原因。
我最近遇到了类似的问题。ping
可以,所以我有互联网连接,但是最多基于 TCP 的连接挂起并最终超时。事实证明,我的无线网卡有故障或功率不足,无法正确处理大数据包。ping
与大多数 TCP 连接之间的区别之一是ping
默认情况下使用小数据包。要检查大数据包是否正常传送,请使用ping
不同的数据包大小,方法是使用-l
选项†(在 Windows 上)。例如,要在数据字段中使用 1000 字节来ping
寻址,请键入:10.0.99.221
ping -l 1000 10.0.99.221
在我的例子中,ping
使用 500 字节会导致 95% 的数据包丢失,而ping
使用 56 字节则正常工作。
将 MTU(最大传输单元)设置为较小的值可能会暂时解决此问题。但这会对性能产生负面影响。
在我的情况下,将 MTU 设置为 400 可使网络暂时可用。这个值太小,不推荐。由于这是与硬件相关的问题,因此应该修复或更换硬件。______________
†
这是小写的L
;也许它代表数据包升长度。