我們的系統管理員為我創建了兩個 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
,該規則適用於所有來源。