解决许多网页的问题

Adi*_*tya 39 dns websites

我目前正在运行 Ubuntu 12.04 并使用 Chrome/Firefox 和 OpenDNS(尝试过 Google 公共 DNS 以及我的 ISP 的 DNS)。

突然间,我经常访问的许多网站不再加载。其中一些是 imgur、yahoo、fed-sudoku、microsoft 和 firefox 的插件页面。我相信还有更多无法加载。

我在双启动模式下使用 Windows 7,在 Windows 上打开这些页面没有任何问题。

历史简介

两周前我安装了 Ubuntu 12.10。我马上就遇到了这个问题。我认为安装一定出了问题,所以我删除了 Ubuntu 12.10,而是安装了 Lubuntu 12.10,但问题仍然存在。因此,我尝试通过 USB 在 Live Environments(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)为了回应张的回答来检查basic terminal commands- 我已经使用 OpenDNS 和 GooglePublic DNS 来测试这些命令(在两者之间重新启动我的电脑)。这些是使用 OpenDNS使用 GooglePublicDNS时的终端输出。

(2)这是ifconfig- Pastebin 链接的结果。

(3)此后我尝试使用wget来检查问题是否出在浏览器上。但是,它不适用于浏览器中未加载的网页。这是显示 Google(有效)和 Yahoo(无效)的Pastebin 链接

(4)然后按照noobslab 中列出的说明进行操作disable IPV6。另外,重新启动了我的电脑。然而,它也没有帮助。

(5)然后,我通过网络管理器将我的有线连接编辑为ignore IPV6. 之后,我尝试在浏览器中打开雅虎 - 它确实第一次加载。但是,当我再次尝试时,它没有加载。其他问题站点根本没有加载。

(6)再次尝试wget。然而,这一次将论据传递-4给了它;IE; 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,因为wgetdig命令到达雅虎的 IP。这就是说,我不知道为什么 wget 没有下载!你设置防火墙了吗?(您可以使用 进行检查sudo iptables -L)。在ifconfig结果中,有2个接口,ppp0或者为eth0。应该使用哪一个来连接互联网?你能发布route命令的结果吗?Obs:eth0 没有 IPV4 地址,所以我认为它没有正确配置(如何/etc/network/interfaces?)

这是终端输出的Pastebin 链接sudo iptables -Lroutecat /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 networkcat /etc/resolv.conf; ifconfig -a-粘贴链接

lau*_*ent 21

第 1 部分 - PPPoE 连接不起作用

我会尝试禁用网络管理器并手动配置网络,如Ubuntu help ADSLPPPoE 中所述。首先使用Config with pppoeconf基本上运行sudo pppoeconf和回答问题的部分。由于您需要使用与您的 ISP 不同的 DNS 服务器,请回答no有关使用对等 DNS 服务器的问题。

如果您的互联网连接未在启动时重新启动,则可选:您可以编辑nano /etc/rc.local,在该行之前添加以下几exit行并重新启动以进行测试。

killall pppd
ifconfig eth0 up
pon dsl-provider
Run Code Online (Sandbox Code Playgroud)

使用手动配置时不会使用网络管理器,但您可以禁用它,单击它并取消选择该选项enable networkenable 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
Run Code Online (Sandbox Code Playgroud)

并在最后添加:

nameserver 208.67.222.222
nameserver 208.67.220.220
Run Code Online (Sandbox Code Playgroud)

限制

  • 您不能使用网络管理器进行连接。但是,这会自动让您连接到互联网。否则,您可以通过运行连接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
Run Code Online (Sandbox Code Playgroud)

如果这有效,您可以恢复/etc/dhcp/dhclient.conf我们之前所做的更改。

  • 这个答案包括删除 `resolvconf` 包的建议。此软件包是 Ubuntu 12.04 及更高版本中基本系统的一部分。删除 resolvconf 的正当理由很少,而且我没有看到任何适用于此处的理由。如果你真的想要一个静态的 /etc/resolv.conf 文件,那么最好保留 resolvconf 安装*并替换符号链接 `/etc/resolv.conf` -> `../run/resolvconf/resolv .conf` 与静态文件。更好是因为 resolvconf 的存在可以防止其他包覆盖 /etc.resolv.conf。 (4认同)
  • 是的。Ubuntu 主存储库中历史上直接写入 /etc/resolv.conf 的软件包已被修改,因此如果安装了 resolvconf 软件包,它们将避免写入 /etc/resolv.conf。因此,即使您只想要一个静态的 /etc/resolv.conf,也最好安装 resolvconf,因为它可以起到预防作用。resolvconf 程序(/sbin/resolvconf)从不直接接触/etc/resolv.conf;它写入/run/resolvconf/resolv.conf;并且 resolvconf 包仅尝试在 /etc/resolv.conf 中设置符号链接一次。 (2认同)

yua*_*uan 12

  1. 验证您的客户端是否可以与 openDNS 服务器通信

    sudo traceroute -n -w 2 -q 2 -m 30  208.67.222.222
    
    Run Code Online (Sandbox Code Playgroud)

    如果输出的最后一行没有将 208.67.222.222 列为最后一跳,或者如果出现明显超时,则可能是网络问题阻止您联系 openDNS 服务器。

  2. 验证 openDNS 可以解析选定的主机名

    dig @208.67.222.222 www.difficult.com.      
    
    Run Code Online (Sandbox Code Playgroud)

    在命令提示符下,运行以下命令,替换www.difficult.com. 使用您难以解析的名称(在名称末尾放置一个句点以避免域后缀和搜索列表出现问题)

    如果输出未显示主机名的答案,请继续:

  3. 验证另一个打开的解析器可以解析选定的主机名

    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.
    
    Run Code Online (Sandbox Code Playgroud)

    如果确实得到了成功的结果,则可能是 openDNS 有问题

  4. 检查权威域名服务器是否正确

    intoDNS非常有帮助。


更新
此答案无法解决问题,仅用于故障排除。
如果 DNS 解析工作正常,请进一步查看laurent 的回答


参考:公共 DNS 故障排除

  • 嗨,张,对于超级用户的困惑感到抱歉。我已经悬赏这个问题,所以它得到了更多的关注。干杯! (2认同)