无法在 Linux 上访问特定网站(但在 Windows 上可以)

Mus*_*oon 10 networking linux internet ubuntu-10.04

我的互联网连接曾经是到我的提供商的直接 LAN 连接。那时,一切都会在 Windows 和 Ubuntu(双启动)上正常加载。然而,不久前他们开始需要我使用用户名和密码(通过 PPPoE 连接)拨号。但从那以后,我一直无法在 Ubuntu 上浏览某些网站,即使在 Windows 上没有出现此类问题。一些示例网站是 - Ovi 的登录页面(尽管 share.ovi.com 加载正常,nokia.com 加载正常)、Live Mail(适用于 Chrome(ium) 和 Opera,但不适用于 Firefox(3.6 和 4))和其他随机网站。

一些未加载的网站在 Chrome 上显示超时消息,对于某些网站,浏览器将继续尝试无休止地加载(我已经这样放置了几个小时,但没有注意到任何不同的发生)。

我尝试将 DNS 服务器更改为评论中建议的服务器。我什至尝试从 Fedora LiveCD 启动,然后将 DNS 更改为那些(甚至是 OpenDNS 的),但发生了完全相同的事情。

这是 Windows 上 ipconfig 的输出:

替代文字

如果有任何帮助,Opera 错误消息似乎提供了更多信息,并且依次出现以下错误:

  • 安全连接:致命错误 (552)
  • 安全连接:致命错误 (40)

后跟:Opera 无法连接到服务器。服务器可能正在使用不受支持的 SSL 2 协议,这对于安全通信来说不够安全。网站所有者应升级到 TLS 1.0 或更高版本。

有谁知道为什么会发生这种情况以及如何解决?

更新:刚刚在这里看到http://ubuntuforums.org/showthread.php?t=1571086&highlight=pppoe其他人遇到了类似的问题,并通过将 NetworkManager.conf 文件放在 /etc/NetworkManager 中解决了这个问题。该文件中需要包含哪些内容?

Gil*_*il' 17

(从Unix Stack Exchange复制)

您有MTU问题的症状:一些 TCP 连接冻结,对于给定的命令或 URL 或多或少可重现,但没有容易辨别的整体模式。一个明显的症状是交互式 ssh 会话运行良好,但文件传输几乎总是失败。此外,pppoe 是家庭用户 MTU 问题的第一名。所以我开了一个 MTU 检查。

它是什么? 所述aximumransmission Ú尼特是分组通过网络链路的最大大小。MTU 因传输介质而异,例如,有线以太网和 wifi (802.11) 具有不同的 MTU,而ATM链路(构成大部分长距离基础设施)各自具有自己的 MTU。 PPPOE是一种封装协议,这意味着每个数据包都由几个字节的标头组成,然后是底层数据包 - 因此它通过标头的大小降低了最大数据包大小。 如果路由器检测到数据包对于下一跳来说太大,IP允许它们对数据包进行分段,但这并不总是有效。理论上应该发现合适的 MTU自动,但这也并不总是有效。特别是谷歌搜索表明网络管理器并不总是正确地处理从 MTU 发现获得的 MTU 信息,但我不知道哪些版本受到影响或有问题的用例是什么。

如何测量它。 尝试将给定大小的 ping 数据包发送到响应它们的外部主机,例如ping -c 1 -s 42 8.8.8.8(在 Linux 上;在其他系统上,查找您的ping命令的文档)。您的数据包应该通过足够小的 42 值(如果 42 不起作用,则某些东西阻止了 ping。)。对于较大的值,数据包将无法通过。如果基础设施的限制部分是您的本地以太网,则 1464 是典型的最大值。如果幸运的话,当您发送过大的数据包时,您会看到类似Frag needed and DF set (mtu = 1492). 如果您不走运,请继续尝试该值,直到找到最大值,然后添加 28(-s指定有效负载大小,除此之外还有 28 个字节的标头)。也可以看看如何在 Ubuntu 论坛上使用 MTU 和 RWIN 优化您的 Internet 连接

如何设置(用您确定的 MTU 和eth0您的网络接口名称替换 1454 )

  • 作为一次性(Linux):运行 ifconfig eth0 mtu 1454
  • 永久(Debian 和衍生产品,如 Ubuntu,如果不使用网络管理器):编辑/etc/network/interfaces. 在您的网络接口条目之后(在iface eth0 …指令之后),添加一行pre-up ifconfig $IFACE mtu 1454. 或者,如果您的 IP 地址是静态的,您可以将mtu 1454参数添加到iface eth0 inet static指令中。
  • 永久(Debian 和 Ubuntu 等衍生产品,带或不带网络管理器):创建一个/etc/network/if-pre-up.d/mtu包含以下内容的脚本,并使其全球可执行 ( chmod a+rx):

    #!/bin/sh
    ifconfig $IFACE mtu 1454
    
    Run Code Online (Sandbox Code Playgroud)

  • 为什么会这样?因为您的数据包是通过 PPPOE(以太网上的 PPP)隧道传输的,并且限制为 1540,所以如果您的数据包加上隧道开销大于该值,它就会分段。某些 (MS) 操作系统不进行数据包重组。因此您无法访问某些站点(由 MS Windows 服务器提供服务)。[您实际上可以将 MTU 设置为 1300 并且效果很好] 它发生在我家,修复了它。 (2认同)