从 Ubuntu 16.04 LTS 升级到新的 18.04 后,甚至在重新启动系统之前,ping 就不再起作用了。它只是无限期地挂起,无论我 ping DNS、IP 还是在同一系统中运行的 CentOS VM 的 IP 都无济于事。现在 SSH 都不起作用了。当我尝试通过 SSH 进入 VM 时,它会挂起一段时间,直到超时。
之前一切都运行正常。
我的互联网运行正常。我可以使用 curl 浏览任何内容、浏览任何网站、使用 apt 安装任何内容。唯一的问题是我需要 SSH 正常运行,而 ping 问题似乎与此有关。
我已经检查了我的防火墙,它没有拒绝任何东西,我的以太网配置,它由 DHCP 自动配置,以及我的主机,它在升级之前没有改变。
我的以太网配置:
> ifconfig | grep 'eno1:\|lo:' -A6
eno1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.121.3.143 netmask 255.255.255.0 broadcast 10.121.3.255
inet6 fe80::4ff2:e79a:8a81:93e1 prefixlen 64 scopeid 0x20<link>
ether dc:4a:3e:7d:f1:33 txqueuelen 1000 (Ethernet)
RX packets 1007708 bytes 1386860256 (1.3 GB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 335796 bytes 30111660 (30.1 MB)
--
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 3319 bytes 313220 (313.2 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 3319 bytes 313220 (313.2 KB)
> ▮
我的路线配置:
> route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default _gateway 0.0.0.0 UG 100 0 0 eno1
10.121.3.0 0.0.0.0 255.255.255.0 U 100 0 0 eno1
link-local 0.0.0.0 255.255.0.0 U 1000 0 0 eno1
192.168.123.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
> ▮
我的主办方配置:
> cat /etc/hosts
127.0.0.1 localhost
> ▮
我的防火墙配置:
> sudo iptables -S
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-A INPUT -i virbr0 -p udp -m udp --dport 53 -j ACCEPT
-A INPUT -i virbr0 -p tcp -m tcp --dport 53 -j ACCEPT
-A INPUT -i virbr0 -p udp -m udp --dport 67 -j ACCEPT
-A INPUT -i virbr0 -p tcp -m tcp --dport 67 -j ACCEPT
-A FORWARD -d 192.168.123.0/24 -o virbr0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -s 192.168.123.0/24 -i virbr0 -j ACCEPT
-A FORWARD -i virbr0 -o virbr0 -j ACCEPT
-A OUTPUT -o virbr0 -p udp -m udp --dport 68 -j ACCEPT
> ▮
以下是我的虚拟机 IP 的 ping 输出(192.168.122.12),它处于打开状态,我可以通过虚拟管理器没问题:
> ping 192.168.122.12
PING 192.168.122.12 (192.168.122.12) 56(84) bytes of data.
▮
它会无限期地呆在那里。
但是,如果我 ping 一下,它就会起作用本地主机:
> ping localhost
PING localhost (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.068 ms
64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.068 ms
64 bytes from localhost (127.0.0.1): icmp_seq=3 ttl=64 time=0.068 ms
^C
--- localhost ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2052ms
rtt min/avg/max/mdev = 0.068/0.068/0.068/0.000 ms
> ▮
对同一网络上的另一台机器进行 ping 操作也有效:
> ping 10.121.3.41
PING 10.121.3.41 (10.121.3.41) 56(84) bytes of data.
64 bytes from 10.121.3.41: icmp_seq=1 ttl=64 time=0.580 ms
64 bytes from 10.121.3.41: icmp_seq=2 ttl=64 time=0.313 ms
64 bytes from 10.121.3.41: icmp_seq=3 ttl=64 time=0.277 ms
64 bytes from 10.121.3.41: icmp_seq=4 ttl=64 time=0.530 ms
64 bytes from 10.121.3.41: icmp_seq=5 ttl=64 time=0.248 ms
^C
--- 10.121.3.41 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4097ms
rtt min/avg/max/mdev = 0.248/0.389/0.580/0.139 ms
> ▮
Ping 到外部网站不会:
> ping www.google.com
PING www.google.com (172.217.30.36) 56(84) bytes of data.
▮
但这可能是与我的网络管理器相关的另一个问题。同样,我可以毫无问题地浏览。
以下是 SSH 输出:
> ssh 192.168.122.12
▮
一段时间后:
> ssh 192.168.122.12
ssh: connect to host 192.168.122.12 port 22: Connection timed out
> ▮
是的虚拟机的端口22已打开 SSH 连接(更新前一切正常):
(VM) > netstat -tuplen | grep "servers\|Proto\|:22 "
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State User Inode PID/program
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 0 18112 1295/sshd
tcp6 0 0 :::22 :::* LISTEN 0 18114 1295/sshd
(VM) > ▮
有人知道我该如何修复它吗?
* 编辑/解决方案 *
好吧,算了。我没有检查我的虚拟机的 IP。突然,它变成了另一个 IP,我不知道为什么。正在检查是否配置在 VM 中给了我正确的 IP 地址。
我会保留该帖子,以方便其他可能忘记查看的人。
不管怎样,谢谢你。