Наш системный администратор создал для меня две виртуальные машины CentOS, 10.132.67.18 и 10.132.67.19. Я могу подключиться к обеим по ssh, но когда я пытаюсь объединить их в сеть, я получаю сообщение «no route to host»:
[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
там перечисленных, и я не знаю, является ли значение по умолчанию ACCEPT или REJECT, но, вероятно, ACCEPT, судя по первым строкам? Я не эксперт по iptables....
решение1
У вас нет ACCEPT
правил для хостов или сети 10.132.67.X, поэтому соединение ssh удовлетворяет правилу j REJECT --reject-with icmp-host-prohibited
. Вот почему вы видитенет маршрута к хостусообщение. Пинг принимается в -p icmp -j ACCEPT
правиле, которое применяется ко всем источникам.