![从 Ubuntu 连接到一些网站时出现 DNS 错误](https://linux22.com/image/1150470/%E4%BB%8E%20Ubuntu%20%E8%BF%9E%E6%8E%A5%E5%88%B0%E4%B8%80%E4%BA%9B%E7%BD%91%E7%AB%99%E6%97%B6%E5%87%BA%E7%8E%B0%20DNS%20%E9%94%99%E8%AF%AF.png)
我正在使用戴尔 Inspiron 15R 笔记本电脑,并安装有 Windows 10 和 Ubuntu 17.04 双启动。
当我连接到我当前的路由器 D-Link DIR-605L N300 时,我无法从 Ubuntu 连接到一些网站(使用 Chrome 或 Firefox)。我能够使用同一台笔记本电脑上的 Windows 或使用我的 Android 连接到网站。
此外,连接到这些网站的问题时有发生。有时我能够连接到 Ubuntu 上不久前出现 DNS 错误的网站。
答案1
您的问题在于 DSL/PPPoE 连接的 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?