AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 2447
Accepted
John Topley
John Topley
Asked: 2009-05-02 06:23:46 +0800 CST2009-05-02 06:23:46 +0800 CST 2009-05-02 06:23:46 +0800 CST

很奇怪的家用路由器问题[关闭]

  • 772
关闭。这个问题是题外话。它目前不接受答案。
10年前关闭。
锁定。这个问题及其答案被锁定,因为这个问题离题但具有历史意义。它目前不接受新的答案或交互。

很长一段时间以来,我家里的无线网络都遇到了一个非常奇怪的问题。我有一个BT Voyager 2100 ADSL 调制解调器和一个 iMac、老化的 PowerBook 和一台无线连接到它的 PC。问题是我永远无法访问少数特定网站,因为它们总是超时。

没有任何明显的东西可以以任何方式连接这些网站。我遇到的一些例子是www.adobe.com、www.microsoft.com、www.portsmouthguildhall.co.uk(当地场所)和subtraction.com(博客)。我可以毫无问题地ping某些站点;没有超时。事实上,我以前可以访问 subtraction.com 并且仍然可以获取它的 RSS 提要。我只是无法再在网络浏览器中查看该网站。这是一个非常孤立的问题——对于我的大多数 Internet 用户来说,一切正常。

这显然不是个别计算机的问题,因为它们都有这个问题,所以它一定是我的路由器甚至是 ISP 下游的问题。我已经将路由器升级到最新固件并尝试重置它,但它没有解决问题。

我什至如何诊断问题出在哪里?我不知道从哪里开始!有没有我可以使用的 UNIX 网络命令(我有 Mac OS X)?

谢谢你的帮助。

编辑:按照 Alnitak 的建议,我尝试了 traceroute 并使用 adobe.com ping。如您所见,traceroute 永远不会到达那里:

$ traceroute adobe.com
traceroute to adobe.com (192.150.18.117), 64 hops max, 40 byte packets
 1  voyager.home (192.168.1.1)  1.975 ms  1.505 ms  1.574 ms
 2  lo0-plusnet.ptn-ag2.plus.net (195.166.128.53)  28.476 ms  47.139 ms  28.036 ms
 3  ge0-0-0-204.ptn-gw02.plus.net (84.92.3.93)  28.520 ms  37.297 ms  33.186 ms
 4  te2-2.pte-gw2.plus.net (212.159.1.106)  35.670 ms  36.262 ms  34.995 ms
 5  80.239.193.141 (80.239.193.141)  33.932 ms  28.600 ms  28.764 ms
 6  ldn-bb1-link.telia.net (80.91.248.90)  29.649 ms  28.149 ms  30.857 ms
 7  ldn-b5-link.telia.net (80.91.249.178)  27.991 ms  28.014 ms  28.490 ms
 8  verio-129583-ldn-b5.telia.net (213.248.100.50)  28.468 ms  29.286 ms  31.702 ms
 9  ae-1.r23.londen03.uk.bb.gin.ntt.net (129.250.5.237)  30.871 ms  29.295 ms ae-1.r22.londen03.uk.bb.gin.ntt.net (129.250.5.233)  28.614 ms
10  ae-0.r22.londen03.uk.bb.gin.ntt.net (129.250.4.85)  29.732 ms as-0.r20.nycmny01.us.bb.gin.ntt.net (129.250.3.254)  108.909 ms ae-0.r22.londen03.uk.bb.gin.ntt.net (129.250.4.85)  28.505 ms
11  ae-0.r21.nycmny01.us.bb.gin.ntt.net (129.250.2.26)  109.164 ms as-0.r20.nycmny01.us.bb.gin.ntt.net (129.250.3.254)  104.860 ms ae-0.r21.nycmny01.us.bb.gin.ntt.net (129.250.2.26)  111.253 ms
12  as-0.r20.asbnva02.us.bb.gin.ntt.net (129.250.2.9)  104.777 ms ae-0.r21.nycmny01.us.bb.gin.ntt.net (129.250.2.26)  109.973 ms as-0.r20.asbnva02.us.bb.gin.ntt.net (129.250.2.9)  108.774 ms
13  as-0.r20.asbnva02.us.bb.gin.ntt.net (129.250.2.9)  103.691 ms ae-3.r21.asbnva01.us.bb.gin.ntt.net (129.250.2.128)  104.958 ms as-0.r20.asbnva02.us.bb.gin.ntt.net (129.250.2.9)  104.455 ms
14  as-3.r20.snjsca04.us.bb.gin.ntt.net (129.250.2.167)  197.595 ms ae-3.r21.asbnva01.us.bb.gin.ntt.net (129.250.2.128)  105.027 ms  106.565 ms
15  * as-3.r20.snjsca04.us.bb.gin.ntt.net (129.250.2.167)  179.946 ms *
16  * te-5-3.r02.snjsca04.us.ce.gin.ntt.net (128.241.219.86)  176.374 ms *
17  * * te-5-3.r02.snjsca04.us.ce.gin.ntt.net (128.241.219.86)  189.724 ms
18  * * *
19  * * *
20  * * *
^C

— 现在尝试从第 14 跳开始 ping。如您所见,最后一次 ping 有 20% 的丢包率:

$ ping -s 1492 as-3.r20.snjsca04.us.bb.gin.ntt.net
PING as-3.r20.snjsca04.us.bb.gin.ntt.net (129.250.2.167): 1492 data bytes
1500 bytes from 129.250.2.167: icmp_seq=0 ttl=55 time=214.555 ms
1500 bytes from 129.250.2.167: icmp_seq=1 ttl=55 time=215.339 ms
1500 bytes from 129.250.2.167: icmp_seq=2 ttl=55 time=221.211 ms
1500 bytes from 129.250.2.167: icmp_seq=3 ttl=55 time=224.296 ms
^C
--- as-3.r20.snjsca04.us.bb.gin.ntt.net ping statistics ---
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max/stddev = 214.555/218.850/224.296/4.062 ms

$ ping -s 1492 as-3.r20.snjsca04.us.bb.gin.ntt.net
PING as-3.r20.snjsca04.us.bb.gin.ntt.net (129.250.2.167): 1492 data bytes
1500 bytes from 129.250.2.167: icmp_seq=0 ttl=55 time=299.852 ms
1500 bytes from 129.250.2.167: icmp_seq=1 ttl=55 time=326.598 ms
1500 bytes from 129.250.2.167: icmp_seq=2 ttl=55 time=243.278 ms
1500 bytes from 129.250.2.167: icmp_seq=3 ttl=55 time=214.610 ms
1500 bytes from 129.250.2.167: icmp_seq=4 ttl=55 time=232.900 ms
^C
--- as-3.r20.snjsca04.us.bb.gin.ntt.net ping statistics ---
5 packets transmitted, 5 packets received, 0% packet loss
round-trip min/avg/max/stddev = 214.610/263.448/326.598/42.517 ms

$ ping -s 1492 te-5-3.r02.snjsca04.us.ce.gin.ntt.net
PING te-5-3.r02.snjsca04.us.ce.gin.ntt.net (128.241.219.86): 1492 data bytes
1500 bytes from 128.241.219.86: icmp_seq=0 ttl=245 time=349.851 ms
1500 bytes from 128.241.219.86: icmp_seq=1 ttl=245 time=270.748 ms
1500 bytes from 128.241.219.86: icmp_seq=2 ttl=245 time=334.406 ms
1500 bytes from 128.241.219.86: icmp_seq=3 ttl=245 time=220.046 ms
^C
--- te-5-3.r02.snjsca04.us.ce.gin.ntt.net ping statistics ---
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max/stddev = 220.046/293.763/349.851/51.869 ms

$ ping -s 1492 te-5-3.r02.snjsca04.us.ce.gin.ntt.net
PING te-5-3.r02.snjsca04.us.ce.gin.ntt.net (128.241.219.86): 1492 data bytes
1500 bytes from 128.241.219.86: icmp_seq=0 ttl=245 time=472.908 ms
1500 bytes from 128.241.219.86: icmp_seq=1 ttl=245 time=228.290 ms
1500 bytes from 128.241.219.86: icmp_seq=2 ttl=245 time=231.048 ms
1500 bytes from 128.241.219.86: icmp_seq=3 ttl=245 time=229.906 ms
^C
--- te-5-3.r02.snjsca04.us.ce.gin.ntt.net ping statistics ---
5 packets transmitted, 4 packets received, 20% packet loss
round-trip min/avg/max/stddev = 228.290/290.538/472.908/105.296 ms
router domain-name-system networking wifi
  • 10 10 个回答
  • 1363 Views

10 个回答

  • Voted
  1. Best Answer
    Alnitak
    2009-05-03T03:02:26+08:002009-05-03T03:02:26+08:00

    这听起来像是一个 MTU 问题。

    您和那些不支持典型 1500 字节 MTU 的站点之间可能存在某些问题,除此之外,可能是防火墙阻止了用于“路径 MTU 发现”的 ICMP 数据包,因此您无法判断无法使用正常的 MTU。

    尝试跟踪路由,然后依次为每个跃点发送一个大的 ping 数据包(1492 字节),看看是否有任何跃点拒绝返回数据包。

    编辑 - 您的tcpdump输出显示您的终端仍在尝试启动 TCP 的“三次握手”,因为该SYN位是在您终端的数据包中发送的。然而,从 Adob​​e 返回的数据包似乎被截断或格式错误。这很奇怪,因为数据包中不应该有任何有效载荷,只有远端的 SYN 响应。我需要查看前 4 个左右数据包的完整转储(包括 -X 选项)才能了解更多信息。

    EDIT2 - 根据您详细的 tcpdump,我相信您的路由器正在破坏某些站点的 TCP 响应。最好的测试方法是借用另一个品牌的路由器。

    • 7
  2. Jared
    2009-05-02T06:38:37+08:002009-05-02T06:38:37+08:00

    将您的一台计算机直接插入您的互联网连接,让它从您的 ISP 获取所有网络设置。如果您无法访问这些站点,那么这是一个 ISP 问题,如果可以,那么这是一个路由器问题,您可以从那里开始。

    • 5
  3. lc.
    2009-05-02T06:34:06+08:002009-05-02T06:34:06+08:00

    你可以试试traceroute,看看你的数据包有多远。如果他们停在您的路由器上,那可能是那里的问题。如果他们走得更远,您可能需要与您的 ISP 取得联系。

    再次阅读您的问题,您说您可以成功 ping 服务器,因此您可能在 traceroute 上看不到任何异常...

    • 3
  4. Tall Jeff
    2009-05-08T17:18:02+08:002009-05-08T17:18:02+08:00

    我绝对同意这个问题的基本症状听起来与 PATH MTU 问题有关的概念。还有其他可能性,但这是最有可能开始的地方。

    鉴于您提到的站点的重要性,并且可能已经发生了很长一段时间,这似乎不太可能是 ISP 网络中的问题......尽管考虑到问题中显示的 traceroute 结果,路径深度和总延迟在您的 ISP 上表现不佳。一般来说,任何体面的 ISP 都应该让你在 120 毫秒以下的时间内访问任何主要/著名的网络资产(美国境内)……但我离题了。

    正如其他人提到的那样,使用traceroute和ping来诊断问题非常有帮助,但考虑到 ICMP 在各个位置阻塞/过滤的可能性/可能性,它远非一个明确的工具解决方案。而且,正因为如此,除非在熟练的分析师手中,否则很难区分特定问题和防火墙与 ICMP 之间的区别。

    排除 MTU 问题的最佳方法是首先降低其中一台出现问题的计算机的以太网接口的 MTU。由于您提到您有一台 MAC 计算机,因此请参阅此处针对 MAC 系统的过程。

    如果您开始按照流程描述的方式降低接口 MTU,例如每次 100 个字节,并检查从 1400 到 500 字节的功能.....如果问题在其中一个步骤突然消失,那么您肯定有路径MTU问题。如果至少下降到 500 不能解决它,那么这不是路径 MTU 问题,您可以继续研究其他可能性(在您将 MTU 切换回它开始的位置之后......这可能是 1500字节)。

    • 3
  5. John Topley
    2009-05-11T01:50:39+08:002009-05-11T01:50:39+08:00

    我现在已经解决了这个问题,最后修复非常简单。我用我的 ISP (PlusNet) 记录了一个支持电话,他们给我发了一个论坛帖子的链接,解释这个问题是我路由器固件中的一个错误。解决方法是将路由器的 Internet 连接 MTU 设置为 1500(默认为 1400),以便它与路由器的 LAN 端 MTU 匹配。

    感谢所有提供帮助和建议的人。我将接受 Alnitak 的回答,仅仅是因为他/她在这方面坚持我,并不断回来提供更多建议和尝试的事情。

    • 3
  6. hellomynameisjoel
    2009-05-08T18:10:07+08:002009-05-08T18:10:07+08:00

    您没有提到您是否正在通过代理服务器。看看你的 ISP 是否有可能透明地代理你可能会很有趣,我认为这种做法非常邪恶,但我认为它很常见。也许您可以尝试http://tracetcp.sourceforge.net/usage_proxy.html并对不工作的主机进行 tcp 跟踪,这可能很有趣。

    同时,通过代理服务器应该允许您访问这些站点,因此您至少有一个解决方法。

    您是否尝试就此问题联系您的 ISP?

    对我来说,您的 traceroute 和 ping 结果是完全正常的。最后没有回复是正常的,即发送ICMP max hop达到回复的最后一个HOP。tracepath 是一个实用程序,可用于诊断可能对您有所帮助的 mtu 问题。

    • 2
  7. dotplus
    2009-05-06T11:52:42+08:002009-05-06T11:52:42+08:00

    我同意这听起来是路径 MTU 发现的失败。

    对我来说,这个问题的解决方案(在 linux 上)是在内核中启用高级路由器支持,并在内核配置的 netfilter/core netfilter 部分启用 TCPMSS 目标支持。然后告诉 iptables 强制减小最大段大小:

    iptables -t nat -A PREROUTING -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

    另一种方法可能是选择一个非常小的 mtu(并且可能从那里向上工作),虽然这可能会带来自己的问题,但它应该使这些站点可以访问。

    • 1
  8. cmeerw
    2009-05-10T03:47:10+08:002009-05-10T03:47:10+08:00

    我现在已经从我的本地计算机向 www.adobe.com 发送了一个类似的 TCP 连接请求数据包(唯一的区别是源 IP 地址),并将我收到的响应数据包与您最新的 tcpdump 中的响应数据包进行了比较。

    我在 IP/TCP 标头中发现了 3 个不同之处:

    • IP 中的“区分服务”字段在您的情况下设置为 0x80,在我的情况下设置为 0x00 - 我很确定这是由 PlusNet 的流量优先级引起的。
    • 偏移量 0x20 处的 4 个字节在您的情况下是“ 0000 5012 ”,在我的情况下是“ 5012 0000 ” - 这些是 TCP 标头中的数据偏移量、标志和窗口大小字段。在您的情况下,看起来有些东西正在交换这些 2 字节的单词。这绝对是导致无效 TCP 数据包的原因
    • 连接响应请求在您的情况下添加了 TCP MSS 选项(值为 1460),但在我的情况下没有 TCP 选项

    我的猜测是您的路由器试图通过添加 MSS TCP 选项来变得聪明,但在某些情况下会弄乱 TCP 标头。您的路由器是否有任何“MSS 钳制”设置 - 如果有,我会尝试禁用这些设置。否则,我建议询问 PlusNet 支持(向他们展示 tcpdump 输出)。

    • 1
  9. An̲̳̳drew
    2009-05-08T12:17:16+08:002009-05-08T12:17:16+08:00

    在访问某些流媒体音频/视频资源时,我的路由器锁定了类似的问题。 更新 WMP 网络设置解决了该特定问题;不确定它是否与您的情况相关。

    • 0
  10. Hafthor
    2009-05-09T15:22:44+08:002009-05-09T15:22:44+08:00

    我会说这是一个子网掩码问题,无论是您的本地 LAN(应该是 255.255.255.0)还是您的 WAN 端。

    我建议这样做是因为如果子网掩码被错误地设置为 255.254.255.0 之类的东西,您最终可能会得到奇怪的结果 - 对于大型站点(具有多个 A 记录)看似随机的可达性。

    • -1

相关问题

  • 10 Gb 网络:在光纤和双绞线之间做出决定

  • 如何在 Windows Server PPTP VPN 中自动为客户端分配路由?

  • 为什么我的电脑休眠时 VPN 连接会中断?[关闭]

  • 有什么软件可以模拟局域网?

  • 带宽利用工具?[关闭]

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve