新路由器上的页面加载时间过长(Ubuntu 18.04)

新路由器上的页面加载时间过长(Ubuntu 18.04)

我已经更换了路由器。网速没变,但我遇到了某些页面加载时间过长的问题。例如,Google 搜索可以立即显示,但 YouTube 和 Facebook 需要 10 秒或更长时间才能加载。我甚至无法访问 Facebook 上的 Messenger。当我在 YouTube 上播放视频时,它运行流畅,但我必须等待很长时间才能加载页面。

我正在使用 DSL,通过学生宿舍代理服务器上网。

enp2s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.10.100  netmask 255.255.255.0  broadcast 192.168.10.255
        inet6 fe80::f036:3f4e:b7d4:d8eb  prefixlen 64  scopeid 0x20<link>
        ether ac:e2:d3:7e:89:4e  txqueuelen 1000  (Ethernet)
        RX packets 743620  bytes 1063295359 (1.0 GB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 376777  bytes 36479304 (36.4 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

答案1

您的问题在于 DSL 连接的 MTU 设置。

Ubuntu 的网络配置中有一个 MTU 设置,而路由器中有一个 WAN MTU 设置。

对于 DSL,常见的 MTU 设置是 1492。请先尝试此值,然后查看您的网站现在是否可以访问。

要确定正确的设置,请从所有 MTU 设置 = 1500 和 VPN = 关闭开始。(VPN 需要不同的测试)。

在终端:

ping [-c count] [-M do] [-s packet_size] [host]

使用的选项是:

  • c count:ping 次数
  • M hint:选择路径 MTU 发现策略。可以是do(禁止碎片,即使是本地碎片),want(进行 PMTU 发现,当数据包大小较大时在本地进行碎片),或dont(不设置 DF 标志)。
  • s packet_size:指定要发送的数据字节数。

您应该始终从 1472 开始,然后每次减少 10。一旦收到回复,就增加 1,直到收到碎片数据包。取该值(最后一个好值)并将 28 添加到该值以考虑各种 TCP/IP 标头。例如,假设 1452 是合适的数据包大小(您第一次收到对 ping 的 ICMP 回复)。实际的 MTU 大小将是 1480,这是我们正在使用的网络的最佳值。

ping -c 4 -M do -s 1472 8.8.8.8 # this will probably show fragmentation

ping -c 4 -M do -s 1462 8.8.8.8 # may show fragmentation

ping -c 4 -M do -s 1452 8.8.8.8 # no fragmentation?

ping -c 4 -M do -s 1453 8.8.8.8 # still no fragmentation?

参考:如何使用 ICMP ping 确定适当的 MTU 大小

相关内容