解决许多网页时出现问题


38

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

突然,我经常访问的许多网站不再加载。其中一些是Firefox的imgur,yahoo,fed-sudoku,microsoft和addons页面。我确定还有更多无法加载的内容。

我在双引导中有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的一切都很好。但是突然之间,这些站点不再加载。Dual-Boot中的Windows 7可以完美运行。

更新

(1)作为对Zhang的回答的回答basic terminal commands-我已经使用OpenDNS和GooglePublic DNS来测试这些命令(在这之间重新启动我的PC)。这些是使用OpenDNS使用GooglePublicDNS时的终端输出。

(2)这是的结果ifconfig- 引擎收录链接

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

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

(5)然后,我将通过Network-Manager的有线连接编辑为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) 劳伦特的问题

从问题中的wget pastebin info来看,问题不在于DNS,因为wgetdig命令可以到达Yahoo的IP。这就是说,我不知道为什么wget没有下载!你设置防火墙了吗?(您可以通过检查sudo iptables -L)。在ifconfig结果中,有2个接口,ppp0或者为eth0。应该使用哪一个来连接互联网?您可以发布route命令的结果吗?观察:eth0没有IPV4地址,所以我认为它没有正确配置(怎么了/etc/network/interfaces?)

这是Pastebin Link,用于的终端输出sudo iptables -Lroutecat /etc/network/interfaces。我没有运行任何防火墙。这是Ubuntu 12.04.1的全新安装。ppp0用于连接到Internet(使用我的ISP所提供的用户名和密码),而eth0是Intel的OnBoard LAN,它通过以太网端口连接调制解调器。

(10)试图添加nameserver 208.67.222.222/etc/resolv.conf(因为我正在使用OpenDNS)。但这没有帮助(即使重启后)。因此,将更改还原回来。这也是laurent提供的答案的一部分-如果我想使用OpenDNS,这是必需的。

其他资讯

  • 我有一个通过以太网端口连接到PC的ADSL调制解调器(不是路由器)。要连接到互联网,我有一个DSL连接。因此,我使用PPPOE进行连接。
  • 系统信息的终端输出sudo lshw -C network; cat /etc/resolv.conf; ifconfig -a- 粘贴链接

Answers:


21

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

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

如果在启动时未重新启动Internet连接,则是可选的:您可以编辑nano /etc/rc.local,在该行之前添加以下行,然后exit重新启动以对其进行测试。

killall pppd
ifconfig eth0 up
pon dsl-provider

当您使用手动配置时,将不会使用网络管理器,但是可以通过单击它并取消选择选项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

并在末尾添加:

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之前所做的更改。


嘿!!你做了什么?使用此方法正在加载问题站点sudo pppoeconf。我只是希望这不是暂时的。希望您现在知道了问题。有什么办法,我可以使用网络管理器,而不是运行命令pon dsl-providerpoff dsl-provider每次。谢谢。非常感谢您:) :) :)
Aditya

4
该答案包括删除resolvconf包装的建议。该软件包是Ubuntu 12.04及更高版本中基本系统的一部分。删除resolvconf的合法理由很少,我在这里没有看到任何这些理由。如果您确实想要一个静态的/etc/resolv.conf文件,那么最好保留resolvconf的安装,而只需用静态文件替换符号链接/etc/resolv.conf-> ../run/resolvconf/resolv.conf。更好是因为resolvconf的存在可以防止其他程序包覆盖/etc.resolv.conf。
jdthood 2012年

2
是。以前直接写入/etc/resolv.conf的Ubuntu主存储库中的软件包已被修改,因此,如果安装了resolvconf软件包,则将避免写入/etc/resolv.conf。因此,即使您只想要静态的/etc/resolv.conf,也最好安装resolvconf,因为它可以起到预防作用。resolvconf程序(/ sbin / resolvconf)从不直接接触/etc/resolv.conf。它写入/run/resolvconf/resolv.conf; resolvconf软件包仅一次尝试在/etc/resolv.conf中设置符号链接。
jdthood 2012年

1
@Aditya-确定根据您的结果进行编辑。为了回答您有关rc.local修改的问题,仅当您的互联网连接没有在启动时重新启动时才使用(因为它不是在12.04中启动,而是看起来现在在12.10中可以正常启动,因此可以将其删除)。调制解调器无法运行时,引导时间很长是因为您使用了一个未完全建立连接时无法访问的差分DNS。如果您删除dhclient.conf修改并仅使用修改,则resolv.conf可能不会发生。无论如何,我提出了一种新的编辑方法。
劳伦特

1
很高兴它正在工作!您可以尝试sudo poff -a查看是否是权限问题。如果解决了问题,请查看您的用户是否具有正确的权限,id并查看您是否在dipdialout组中。如果没有,您可以添加sudo adduser your-user dialout。要检查正在发生的情况,请使用tail /var/log/ppp.logafter poff(或tail -f /var/log/ppp在一个终端中使用更好,而poff在另一个终端中使用更好)以查看其为何不起作用。
劳伦特

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

    sudo traceroute -n -w 2 -q 2 -m 30  208.67.222.222
    

    如果输出的最后一行没有将208.67.222.222列为最终跃点,或者存在大量超时,则可能是网络出现问题,导致您无法联系openDNS服务器。

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

    dig @208.67.222.222 www.difficult.com.      
    

    在命令提示符处,运行以下命令,替换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.
    

    如果您确实获得了成功的结果,则可能是openDNS存在问题

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

    intoDNS非常有帮助。


更新
这个答案不能解决问题,仅用于故障排除。
如果DNS解析正常,则可以进一步查看laurent的答案


参考:公共DNS故障排除


从问题中的wget pastebin info来看,问题不在于DNS,因为wgetdig命令可以到达Yahoo的IP。这就是说,我不知道为什么wget没有下载!你设置防火墙了吗?(您可以sudo iptables -L
向其

的确,ifconfig结果是有两个接口ppp0和eth0。应该使用哪一个来连接互联网?您可以发布route命令的结果吗?Obs:eth0没有IPV4地址,所以我认为它的配置不正确(怎么了/etc/network/interfaces?)
laurent 2012年

2
您好张,抱歉对超级用户感到困惑。我已在这个问题上悬赏,因此得到了更多关注。干杯!
slhck

1
@slhck:感谢您提供有关此问题的赏金。AskUbuntu和Ubuntu社区很棒……我喜欢它……干杯!!!
Aditya

@Aditya,您是否有文件/etc/ppp/resolv?如果可以,请问您的ISP DNS是否写在这里?并将其更改为openDNS IP。因此,您可以在/etc/resolv.conf
laurent

3

将此行追加到您/etc/resolv.conf

nameserver 8.8.8.8

到目前为止,我正在使用OpenDNS。您确定我应该附加Google的DNS服务器吗?
Aditya

我曾经遇到过像您这样的问题。只需按照我的回答在您的resolv.conf中附加一个dns(即使OpenDNS也可以使用),然后尝试一下。
茉莉花2012年

2
您的计算机实际上将按顺序使用它们,因此在末尾添加一个可能会使其正常工作,但是如果第一个名称服务器仍在超时,则您的系统将很慢。
ImaginaryRobots 2012年

请注意,在Ubuntu 12.04及更高版本中,通常不应编辑/etc/resolv.conf,因为它由resolvconf动态更新。如果您确实需要静态/etc/resolv.conf文件,请保留resolvconf软件包的安装状态,并用包含(根据本示例)的静态文件替换/etc/resolv.conf中的符号链接nameserver 8.8.8.8
jdthood 2012年

3

通过执行以下操作可能已经解决了原始问题。

sudo apt-get install resolvconf
sudo dpkg-reconfigure resolvconf

应该这样做也可以解决Live CD上的问题。如果是的话,我会在Ubuntu 12.10 Live CD上进行尝试。–
Aditya

在正版原始Ubuntu 12.04或12.10 Live CD上,它可能无法解决任何问题,因为已知resolvconf已正确安装在这些CD上。但是,许多Ubuntu派生工具制作的CD的resolvconf安装都有缺陷。这种有缺陷的设备有时可以通过运行来修复sudo dpkg-reconfigure resolvconf
jdthood 2012年

最初的问题是在resolvconf仍安装(以及在实时CD上)的情况下发生的,这是由于pppoe config不是DNS。resolv.conf在配置ppp连接(sudo pppoeconf)时出现了用OP ISP DNS而不是openDNS重写的问题,因此我认为resolvconf正在重写它(但稍后我们会看到,情况并非如此!)。无论如何,这个问题非常奇怪,因为有些站点可以正常运行,而有些站点不能正常运行,并且在所有情况下,DNS解析都可以(并且仍然可以)正常工作。现在唯一的问题是OP希望使用其他DNS服务器。
劳伦特

这样做sudo dpkg-reconfigure resolvconf并按照提示操作/说明解决我的问题!这就是全部!
阿佩林

3

也许您可以尝试禁用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


我想尝试一下。但是,我的网络管理器将我的LAN显示为Device not managed。因此,它也不会显示我刚才创建的DSL连接。看一下这张照片
Aditya

NetworkManager不管理该接口,因为它是/etc/network/interfaces由于运行而手动配置的pppoeconf。问题是NetworkManager建立的自动连接无法正常工作,但是您可以立即尝试(因为如果停止工作,您知道如何修复)。只需注释掉pppoeconfin中添加的行并在中/etc/network/interfaces进行更改即可managed=false to =true/etc/NetworkManager/NetworkManager.conf现在您知道问题出在哪里,请报告它是否无法自动运行,我们可能会尝试使用网络管理器解决问题。
劳伦特

@laurent和@snowhawkyrf:我尝试过。但是,这对我不起作用。使用pppoeconf似乎是解决问题的唯一选择。无论如何,谢谢您的投入。
Aditya

0

显然,问题在于Ubuntu如何处理DSL连接。我未能按照专家的建议配置DSL连接。

作为一种变通方法,我正在使用TOR,因为只有少数几个网站受到TOR的影响。


0

此处发生了相同的问题(ASUS EeePC 1015BX-Ubuntu 12.10-AMD C-60系统)。G编辑/etc/resolv.conf文件(sudo -H gedit /etc/resolv.conf),并用nameserver 127.0.1.1以下内容替换该 行

nameserver 208.67.222.222
nameserver 208.67.220.220

解决了问题。

您可以使用以下过程使此设置永久化。


0

好吧,只要停止运行我就写这个命令,我仍然认为这是一个错误,或者我的电脑做错了什么

service NetworkManager restart

它应该开始工作(如果存在Internet连接中断)。但是,如果不起作用,请尝试更新dns记录,然后再次执行上述命令。它工作。

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.