无法通过PPPoE访问Linux上的选定https站点


18

我的Internet连接曾经是到我的提供商的直接LAN连接。那时,Windows和Ubuntu(双重引导)都可以正常加载。但是,不久前,他们开始需要我使用用户名和密码拨号(PPPoE)。网关,子网掩码,IP,DNS服务器都保持不变。但是从那以后,即使Windows上没有此类问题,我也无法在Ubuntu上浏览某些网站。一些示例网站是-Ovi的登录页面(尽管share.ovi.com可以很好地加载,并且nokia.com可以很好地加载),Live Mail(在Chrome(ium)和Opera上有效,但在Firefox(3.6和4上均不能))Mozilla Addons网站和其他随机网站。

一些未加载的网站会显示超时消息,而对于某些网站(例如moz插件之一),浏览器将继续尝试无休止地加载(我已经将其保留了好几个小时,但没有发现任何其他变化)发生)。

我尝试将DNS服务器更改为公共服务器。我什至尝试过从Fedora LiveCD引导,然后将DNS更改为那些(甚至是OpenDNS的DNS),但是确实发生了同样的事情。导致此问题的Linux本身中的某些配置可能固有地存在问题?

有谁知道这是为什么发生以及如何解决?

注意:这个问题已经 交叉发布在SU上,但未得到任何答复。

更新:只是在这里看到其他人也有类似的问题,并通过将NetworkManager.conf文件放入/etc/NetworkManager。该文件中需要包含什么内容?

Answers:


24

您有MTU的症状问题:某些TCP连接冻结,对于给定的命令或URL或多或少具有可重复性,但总体模式却不容易辨认。一个明显的症状是交互式ssh会话工作良好,但文件传输几乎总是失败。此外,pppoe是家庭用户MTU问题的第一大带来者。所以我开了一个MTU检查。

它是什么? 所述 aximum ransmission Ú尼特是分组通过网络链路的最大大小。MTU随传输介质的不同而不同,例如,有线以太网和wifi(802.11)具有不同的MTU,而ATM链路(构成大多数长途基础设施)各自具有自己的MTU。 PPPOE是一种封装的协议,这意味着每个数据包均由几个字节的报头组成,后跟基础数据包-因此,它将最大报文大小降低了报头大小。 自动地IP允许路由器在检测到对于下一跳而言太大时对数据包进行分段,但这并不总是有效。理论上,应该发现适当的MTU,但这也不总是可行。特别地,谷歌搜索表明Network Manager并不总是对从MTU发现获得的MTU信息采取适当的措施,但我不知道受影响的版本或有问题的用例是什么。

如何测量。 如果您使用tracepath的是Linux iputils,请运行tracepath 8.8.8.8以查看Google DNS服务器路径上的MTU。如果您的版本traceroute具有--mtu选项,请运行traceroute -n --mtu 8.8.8.8。有关更多选项,请参阅发现我和目标IP之间的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(如何在Ubuntu论坛上使用MTU和RWIN优化Internet连接-s指定有效负载大小,除此之外还有28个字节的标头)。也可以看看

设置方法(用您确定的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指令中。
  • 永久(带有或不带有Network Manager的Debian及其衍生版本,如Ubuntu):创建一个/etc/network/if-pre-up.d/mtu具有以下内容的脚本,并将其设置为全球可执行(chmod a+rx):

    #!/bin/sh
    ifconfig $IFACE mtu 1454
    

更多资源


我已经停止使用网络管理器进行连接,而开始使用pppoeconf。pppoeconf建议将mtu设置为1452,并且工作正常。非常感谢。
Mussnoon

另外,如果您使用的是超级用户,也可以在这里发布答案,这样我也可以在那里接受。这里的链接:superuser.com/questions/213264/...
Mussnoon

嗨,谢谢你的帖子 但是在您的最终解决方案中,我无法使用ifconfig进行任何操作,因为在我的发行版中,这已经过时了。我只有“ ip”。如何使用“ ip”来做到这一点?
桑蒂

2
@Santi我认为是,ip link set eth0 mtu 1454但我不是ip专家,请查阅手册。
吉尔斯(Gillles)“所以-别再邪恶了”

@吉尔斯谢谢!就是这样 我需要sudo权限,但这没问题。希望它能对您有所帮助,我在访问https信息库时遇到问题(大多数时间挂起),并且与它们的ssh连接甚至无法正常工作。使用我研究所网络上的同一台笔记本电脑,两种协议都可以正常工作。
桑蒂

2

看来核心问题与SSL有关。您所有的问题URL都是https://....一个。

我不明白为什么PPPoE更改会对此产生影响,但是也许您的ISP一次更改了多个功能,而您却将错误的更改归咎于此。

我会尝试添加硬件路由器,这是您的ISP特别推荐的型号。这样不仅可以完全按照您的ISP的要求来协商PPPoE连接,而且也可以解决SSL连接问题。

如果它不能解决您眼前的问题,您仍然可以从中获得一些附带好处。

首先,硬件防火墙增加了一层安全性。如果需要允许连接到防火墙后面的计算机,请参阅PortForward.com以获取有关端口转发指南的指南,以指导您可能使用的每个路由器。

其次,大多数家用路由器可以让您与多台PC共享Internet连接。


你可能在那里。但是Gmail,Yahoo和AOL邮件网站如何?还有Twitter?我专门尝试了twitter.com,它有效。
Mussnoon

1

我对铬(和铬)也有同样的问题。我认为这是一个webkit问题。我从来没有找到一个永久性的解决方案,但是如果您使用该错误代码(没有实际值)进行搜索,就会发现很多人遇到同样的问题。我可以通过关闭连接到特定网站的选项卡暂时使它工作,然后清除我的缓存和cookie以及所有内容。

我从未找到解决方案,此后又回到了Firefox。


我敢肯定,就我而言,它与浏览器没有任何关系。我也尝试过从XP虚拟机的IE和Safari中获得-相同的结果。
Mussnoon 2010年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.