我目前正在运行 Ubuntu 12.04 并使用 Chrome/Firefox 和 OpenDNS(已经尝试过 Google Public DNS 以及我的 ISP 的 DNS)。
突然间,我经常访问的很多网站都无法加载了。其中一些是 imgur、yahoo、联邦数独、微软和 Firefox 的附加组件页面。我确信还有很多无法加载的。
我有双启动的 Windows 7,在 Windows 上打开这些页面没有任何问题。
历史简介
两周前我安装了 Ubuntu 12.10。我马上就遇到了这个问题。我以为安装过程中一定出了什么问题,所以我删除了 Ubuntu 12.10,转而安装了 Lubuntu 12.10,但问题仍然存在。因此,我尝试通过 USB 在实时环境(Ubuntu 12.10、Lubuntu 12.10 和 Ubuntu 12.04.1)中打开这些网页。Ubuntu 12.10 和 Lubuntu 12.10 都存在这个问题。但是,我能够从 Ubuntu 12.04.1 访问这些网页。因此,我在硬盘上安装了 12.04.1。直到昨天,12.04 上的所有东西都很好;但突然间,这些网站不再加载。双启动中的 Windows 7 运行正常。
更新
(1)回应 Zhang 的回答basic terminal commands
- 我使用了 OpenDNS 和 GooglePublic DNS 来测试这些命令(中间重启了我的电脑)。这些是终端输出,同时使用 OpenDNS并且同时使用 GooglePublicDNS。
(2)这是因为ifconfig
-Pastebin 链接。
(3)此后,我尝试使用来wget
检查问题是否出在浏览器上。但是,它对无法在浏览器中加载的网页不起作用。这是Pastebin 链接向 Google (有效) 和 Yahoo (无效) 显示它。
(4)然后按照以下说明操作菜鸟实验室到disable IPV6
。另外,重启了我的电脑。但是,这也没用。
(5)然后,我通过网络管理器将有线连接编辑为ignore IPV6
。之后,我尝试在浏览器中打开 Yahoo - 第一次确实加载了。但是,当我再次尝试时,它没有加载。其他问题网站根本没有加载。
(6)再次尝试wget
。然而,这次将参数传递-4
给了它;即;wget -4 www.yahoo.com
。但再一次,没有得到任何回应。
(7)然后,试着摆弄MTU
。跟随此链接检查我可以设置的最大值是多少。对我来说,最大可能值为 10324。还尝试了其他值,如 1500、1492、1452 和 100。但这也无济于事。
(8) Re-installed Ubuntu 12.04.1
,清除了之前的安装以及所有其他更改。还安装了所有可用的更新。在前半个小时,我能够加载所有网页 - 包括有问题的网页。但后来,我遇到了与之前相同的问题 - 无法加载 yahoo、imgur、microsoft、fed-sudoku 等页面。
(9) laurent 的提问
从问题中的 wget pastebin 信息来看,问题不是 DNS,因为
wget
和dig
命令到达了 Yahoo 的 IP。话虽如此,我不知道为什么使用 wget 无法下载任何内容!您设置了防火墙吗?(您可以使用检查sudo iptables -L
)。ifconfig
结果中有两个接口,ppp0 和 eth0。应该使用哪一个来连接到互联网?您可以发布命令的结果吗route
?注意:eth0 没有 IPV4 地址,所以我认为它配置不正确(怎么配置的/etc/network/interfaces
?)
这里是Pastebin 链接对于终端输出sudo iptables -L
;route
和 cat /etc/network/interfaces
。我没有运行任何防火墙。这是 Ubuntu 12.04.1 的全新安装。ppp0 用于连接到互联网(这需要我的 ISP 提供的用户名和密码),eth0 是英特尔的 OnBoard LAN,它通过以太网端口连接调制解调器。
(10)尝试添加nameserver 208.67.222.222
行/etc/resolv.conf
(因为我正在使用 OpenDNS)。但这没有帮助(即使重新启动后也是如此)。所以将更改恢复了。这也是 laurent 提供的答案的一部分 - 如果我想使用 OpenDNS,这是必需的。
其他信息
- 我有一个 ADSL 调制解调器(不是路由器),通过以太网端口连接到 PC。要连接到互联网,我有一个 DSL 连接。因此,我使用 PPPOE 进行连接。
- 系统信息的终端输出
sudo lshw -C network
;;cat /etc/resolv.conf
-ifconfig -a
Pastebin 链接
答案1
第 1 部分 - PPPoE 连接不工作
我将尝试禁用网络管理器并手动配置网络,如Ubuntu 帮助 ADSLPPPoE。Config with pppoeconf
首先使用基本上是运行sudo pppoeconf
和回答问题的部分。由于您需要使用与 ISP 不同的 DNS 服务器,因此请回答no
有关使用对等 DNS 服务器的问题。
如果您的互联网连接未在启动时重新启动,则可选:您可以编辑nano /etc/rc.local
,在行前添加以下行exit
,然后重新启动进行测试。
killall pppd
ifconfig eth0 up
pon dsl-provider
当您使用手动配置时,网络管理器不会被使用,但您可以单击它并取消选择该选项enable network
(enable wireless
如果存在)来禁用它。如果仅禁用不起作用,您还可以使用sudo apt-get remove network-manager
并卸载它sudo apt-get autoremove
以清除自动安装的软件包。
第 2 部分 将默认 ISP DNS 服务器更改为 openDNS
我发现这里使用静态 DNS 的最佳方式resolvconf
是将名称服务器添加到/etc/network/interfaces
或添加到/etc/resolvconf/resolv.conf.d/head
。由于您的接口是自动配置的 (dhcp),因此您必须使用该head
文件:
sudo nano /etc/resolvconf/resolv.conf.d/head
并在最后添加:
nameserver 208.67.222.222
nameserver 208.67.220.220
限制
- 您无法使用 Network-Manager 进行连接。但是,这会自动让您连接到互联网。否则,您可以通过运行 进行连接
pon dsl-provider
。要断开连接,您需要使用 sudo,因此运行sudo poff
会断开连接。 - [此问题仅出现在 Ubuntu 12.04 中。] 启动 Ubuntu 时(调制解调器已关闭或仍在尝试与 ISP 建立链接)- Ubuntu 等待加载
Network-Configuration
约 2 分钟,然后在没有网络配置的情况下启动。要上网,您必须运行pon dsl-provider
。
修复以删除以前进行的测试(其他情况下不需要):
由于我们resolv.conf
之前删除了符号链接,我们需要重新创建它(新安装时不需要):
cd /etc
sudo rm resolv.conf
sudo ln -s ../run/resolvconf/resolv.conf /etc/resolv.conf
如果有效,您可以恢复/etc/dhcp/dhclient.conf
我们之前所做的更改。
答案2
验证您的客户端是否可以与 openDNS 服务器通信
sudo traceroute -n -w 2 -q 2 -m 30 208.67.222.222
如果输出的最后一行没有列出 208.67.222.222 作为最终跳转,或者存在严重超时,则可能存在网络问题,导致您无法联系 openDNS 服务器。
验证 openDNS 是否可以解析选定的主机名
dig @208.67.222.222 www.difficult.com.
在命令提示符下,运行以下命令,将
www.difficult.com
. 替换为您难以解析的名称(在名称末尾加上句号以避免域后缀和搜索列表出现问题)如果输出没有显示主机名的答案,请继续:
验证另一个开放的解析器是否可以解析选定的主机名
dig @8.8.8.8 www.difficult.com. dig @8.8.8.4 www.difficult.com. dig @4.2.2.1 www.difficult.com. dig @4.2.2.2 www.difficult.com.
如果你确实获得了成功的结果,则 openDNS 可能有问题
检查权威名称服务器是否正确
进入DNS非常有帮助。
更新:
此答案无法解决问题,仅用于故障排除。
如果 DNS 解析工作正常,请转到laurent的回答此外。
参考:公共 DNS 故障排除
答案3
将此行附加到您/etc/resolv.conf
:
nameserver 8.8.8.8
答案4
也许您可以尝试禁用dnsmasq
:
sudo vim /etc/NetworkManager/NetworkManager.conf
#
在前面放一个dns=dnsmasq
然后:
sudo restart network-manager
我安装 12.04 和 12.10 后,遇到了解析某些网站的问题。禁用后,dnsmasq
一切正常。
如果这有帮助,您可以安装完整的 dnsmasq 服务并将您最喜欢的 DNS 提供商放入/etc/resolvconf/resolv.conf.d/tail
。