通过命令行使用 Ubuntu Server (12.04),我可以访问 LAN(例如 ping 本地机器),但不能访问互联网(例如“ping google.com”或“sudo apt-get update”)。我应该如何排除故障?
首先我要说的是曾是能够访问互联网(使用 sudo apt-get),但经过一些“配置工作”后,我现在只能访问 LAN。以前当我使用 DHCP 连接时,它可以正常工作。我在切换到静态 IP 后不久注意到了这个问题。我又切换回了 DHCP,但没有成功。
/etc/网络/接口目前看起来像这样:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
auto wlan0
iface wlan0 inet dhcp
wpa-ssid myrouterssid
wpa-psk myrouterpassword
配置文件报告:
eth0 Link encap:Ethernet HWaddr 00:1e:7a:d9:1b:07
inet addr:192.168.0.101 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::21e:68ff:fed9:1b07/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:217 errors:0 dropped:0 overruns:0 frame:0
TX packets:414 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:23826 (23.8 KB) TX bytes:47487 (47.4 KB)
Interrupt:16
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:12 errors:0 dropped:0 overruns:0 frame:0
TX packets:12 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:720 (720.0 B) TX bytes:720 (720.0 B)
virbr0 Link encap:Ethernet HWaddr 86:19:a7:9b:a6:4a
inet addr:192.168.122.1 Bcast:192.168.122.255 Mask:255.255.255.0
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
wlan0 Link encap:Ethernet HWaddr 00:94:ea:de:1f:78
inet addr:192.168.0.3 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::216:eaff:fede:1f78/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:328 errors:0 dropped:0 overruns:0 frame:0
TX packets:10 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:58008 (58.0 KB) TX bytes:1852 (1.8 KB)
“ping 192.168.0.1”(网关) 有效。“ping 192.168.0.100”(自身) 有效。“ping 192.168.0.7”(另一台 PC) 有效。“ping google.com”报告“ping:未知主机 google.com”。“ping 173.194.34.72”(google.com) 失败。
我还可以从另一台 PC 通过 SSH 连接到这个 ubuntu 服务器(虽然现在它要等待大约 20 秒才要求输入密码,而以前是即时的 - 重要吗?)
编辑:路线-n报告:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.0.1 0.0.0.0 UG 100 0 0 eth0
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 wlan0
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
答案1
您的 resolv.conf 条目可能不正确。您应该确定正确的地址并手动将其写入 resolv.conf(删除当前条目)。
我猜 DNS 服务器与网关 (192.168.0.1) 相同。
您可以在通过命令对 resolv.conf 进行更改之前尝试此操作:
dig @192.168.0.1 google.com
上述命令尝试向 192.168.0.1(不是您当前在 resolv.conf 中设置的)询问 google.com IP,如果有可用的 DNS 服务器,则答案将包含以下文本:
;; ANSWER SECTION:
google.com. 300 IN A 173.194.35.162
google.com. 300 IN A 173.194.35.161
google.com. 300 IN A 173.194.35.164
[...]
如果失败,请尝试在dig
命令中输入不同的 IP
另一个问题是尝试通过 IP ping google 失败(如您所写)。要快速测试失败原因,请尝试以下命令:
traceroute 173.194.35.162
您将看到哪个跳数导致了问题。您的网关可能不工作。
答案2
检查事项:
你已经在 /etc/resolv.conf 中定义了名称服务器
/etc/resolv.conf
:
nameserver 8.8.8.8
nameserver 8.8.4.4
您的路由表中有一个默认网关:
ip route
tom.oconnor@charcoal-black:~$ ip route
192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1
169.254.0.0/16 dev eth0 scope link metric 1000
192.168.0.0/16 dev eth0 proto kernel scope link src 192.168.100.27
default via 192.168.1.1 dev eth0 metric 100
default via
默认路由是以“ ”开头的路由
答案3
听起来您的名称解析 (DNS) 已损坏。请检查您的 /etc/resolv.conf 和网络管理器的 DNS 设置。
答案4
这可能是由于路由器中的虚假 IP/MAC 绑定而发生的。发出命令
ifconfig
,根据路由器的 IP/MAC 绑定表检查您的 HWaddr。