从 Ubuntu 连接到一些网站时出现 DNS 错误

从 Ubuntu 连接到一些网站时出现 DNS 错误

我正在使用戴尔 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?

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

相关内容