将我的服务器软件从 Ubuntu 12.04 升级到 Ubuntu 14.04,现在服务器无法访问互联网。
我可以 ping 通 LAN 上的设备,包括调制解调器。当我尝试 ping 互联网上的任何站点(例如 8.8.8.8)时,数据包丢失率达到 100%。从我读到的内容来看,我觉得这可能是 DNS 问题。我已将以下行添加到/etc/network/interfaces
:
dns-nameservers 8.8.8.8 8.8.4.4
但没有成功。
相关输出ifconfig
:
eth0 Link encap:Ethernet HWaddr 64:31:50:1f:88:72
inet addr:192.168.0.222 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::6631:50ff:fe1f:8872/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:575229 errors:0 dropped:55 overruns:0 frame:0
TX packets:10313 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:35490659 (35.4 MB) TX bytes:898607 (898.6 KB)
输出route -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 0 0 0 eth0
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
文件内容/etc/network/interfaces
:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.0.222
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.1
dns-nameservers 8.8.8.8 8.8.4.4
输出tracepath 8.8.8.8
:
1?: [LOCALHOST] pmtu 1500
1: 192.168.0.1 0.446ms
1: 192.168.0.1 0.444ms
2: no reply`
3: no reply`
//continues with no reply until interrupted
答案1
这看上去不寻常……
首先,我真诚地怀疑 DNS 是否参与其中,但如果您的 DNS 使用 8.8.8.8 等,那么 DNS 将失败,因为您无法访问这些服务器。
首先,它不可能是您的 LAN 配置,因为您可以 ping 本地网关,因此往返于它的流量可以正常工作。
最大的提示是跟踪中重复列出了您的网关。您的网关应该只显示一次,这暗示您的网关存在循环 - 但您的所有其他系统都运行正常,并且根据您所写的内容,只有本地系统发生了变化。
我唯一能想到的就是如果你有一个大致如下的 iptables 规则:
iptables -t nat -D POSTROUTING ! -d 192.168.0.0/24 -j SNAT --to-source 1.2.3.4
1.2.3.4
一些虚假的或者可能以前有效的、但不再有效的 IP 地址在哪里?
这样本地流量就可以正常工作,但超出本地网络的任何流量都会中断,因为回复会发送到错误的地方。您的网关可能会阻止这样的流量,因为它本质上是“欺骗”流量。
我认为,如果可能的话,通过在网关处进行一些流量检查,您会对这个问题得到很好的提示。
如果您无法做到这一点 - 这很容易理解 - 那么也许可以在您的网络上设置另一个 Linux 机器,并将其设为此故障系统的默认网关,然后您可以检查它正在生成的流量。这是假设故障出在升级的系统上。如果您将第二个 Linux 机器配置为ip_forward
192.168.0.1 设备并将其网关设为 192.168.0.1,您可能还会看到更多有用的信息,以帮助确定原因。
当你最终解决它时看看它是什么将会很有趣。
答案2
尝试进入“/etc/resolv.conf”,在以 # 开头的行下方添加以下行:“nameserver 8.8.8.8” “nameserver 8.8.4.4” 执行此操作后,查看是否可以连接。更改文件后不要重新启动,只需保存并测试连接即可。如果此操作有效,则说明是 DNS 问题。重新启动后,对文件所做的更改将被撤消。
答案3
我遇到了完全相同的情况 - 没有互联网连接,无法 ping 通外部,无法从路由器 ping 通盒子。但同一 LAN 中的另一个工作站可以建立 SSH 连接。原因是路由器阻止了新盒子,因为它的 IP 与更换的旧盒子相同,但 MAC 地址不同。我一更改 IP,一切就都正常了。