我已经更换了路由器。网速没变,但我遇到了某些页面加载时间过长的问题。例如,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?