我是新来的,所以如果我没有“按照规则”提出这个问题,请原谅我。
问题是:几个月前,我想在我的上网本(我并不经常使用)上从 Win 切换到 Ubuntu 14.04,安装过程通常很顺利,但从一开始我就遇到了这个问题,需要登录的页面开始加载但什么也没发生。所以,像 Facebook、Yahoo 邮箱、Chrome Google 帐户、我的银行帐户等页面。例如,Facebook 首页可以正常打开,我可以输入我的登录数据,按回车键,我的主页打开,之后什么都没有。之后任何其他页面(在我的 Facebook 帐户上)都开始加载,但根本打不开!之前提到的所有其他 https 网站也存在同样的情况。
故障排除(帮助指定问题): - 我尝试在同一台上网本上安装 Ubuntu 12.04,出现相同的问题。 - 我妻子的上网本装有 Windows,运行正常。 - 与此同时,我买了一台新笔记本电脑,尝试安装 Ubuntu 12.04 和 14.04,也出现了同样的问题。 - 我们的“家庭”台式电脑装有 Ubuntu 12.04,去年安装的,没有类似的问题(并且是最新的) - 我通常使用 Google Chrome,但为了测试,我也尝试了 Firefox 和其他一些浏览器,所有浏览器都存在同样的问题。 - “正常” http 页面打开没有任何问题
这里已经有人问过几个类似的问题了,建议的解决方案有降低 MTU、更新 Ubuntu、关闭 IPv6、设置免费 DNS 域等。我尝试了其中的一些方法,但同时在所有这些选项中迷失了方向,所以我希望你能帮助我并指导我,让我重新开始并最终找到解决方案。
这是一条较长的消息,但我认为如果我写下尽可能多的细节它会很有用。
预先感谢您的帮助。
答案1
我会尝试调查背后发生的事情......
通过捕获网络通信
安装wireshark
并尝试捕获通信,然后将过滤器设置为 https,您可能会看到哪些数据包被发送到服务器,然后接收到了什么等等。
注意:如果关闭所有其他产生网络流量的程序,您的结果将更易于阅读。
由此您能发现什么?
--> 通信是否存在。它可能被防火墙或其他东西阻止了。您应该看到它以正常方式与服务器通信。
尝试附加strace
以查看浏览器进程在做什么:
- 准备包含您的登录名和密码的页面
- 检查 Firefox 的 PID:
ps aux | grep firefox
- 附加
strace
到它:strace -tt -p <PID> -f -o strace.log
- 然后尝试登录并等待一段时间
strace
按下即可分离Ctrl-C
您应该看到那里发生了什么。日志中的所有系统调用都有时间戳(-tt
选项),因此如果您在登录前后等待并观察系统时间,您应该能够确定哪些系统调用与其相关。
所有事情都应该由一个特定的线程完成(因此您可以查看具有相同线程 ID 的系统调用子集)。
由此您能发现什么?
--> 浏览器进程的 IO 级别发生了什么。您应该关注、 、 、 、 、recv
系统recvfrom
调用recvmsg
(socket
它们send
用于套接字通信)。您应该检查它们是否成功(返回值不是负数或像 ESOME_ERROR)等。sendto
sendmsg
我会检查其他加密通信是否有效(如 ssh 等),我会检查某些代理设置是否是罪魁祸首。我希望它能帮助你更接近问题。