我们的系统管理员为我创建了两个 CentOS 虚拟机:10.132.67.18 和 10.132.67.19。我可以通过 ssh 连接到它们,但是当我尝试将它们联网时,我得到“没有到主机的路由”:
[email protected]:/# ssh 10.132.67.18
ssh: connect to host 10.132.67.18 port 22: No route to host
有趣的是, ping 的工作原理是:
[email protected]:/#$ ping 10.132.67.18
PING 10.132.67.18 (10.132.67.18) 56(84) bytes of data.
64 bytes from 10.132.67.18: icmp_seq=1 ttl=64 time=0.319 ms
64 bytes from 10.132.67.18: icmp_seq=2 ttl=64 time=0.393 ms
这是iptables -S
两台机器上的:
-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -s 10.128.31.0/24 -j ACCEPT
-A INPUT -s 10.120.0.0/16 -j ACCEPT
-A INPUT -s 10.70.1.32/32 -p udp -m udp --dport 161 -j ACCEPT
-A INPUT -s 10.70.1.144/32 -p udp -m udp --dport 161 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
会不会是这个原因造成的呢?我没有看到10.132.67.18
那里列出,我不知道默认值是接受还是拒绝,但根据第一行可能是接受?我不是 iptables 专家......
答案1
您没有ACCEPT
针对 10.132.67.X 主机或网络的任何规则,因此 ssh 连接满足规则j REJECT --reject-with icmp-host-prohibited
。这就是为什么你会看到没有到主机的路由信息。 Ping 在规则中被接受-p icmp -j ACCEPT
,该规则适用于所有来源。