遇到一个ssh访问错误:No route to host
问题描述:
$ ssh <uname>@<ip-addr>
ssh: connect to host <ip-addr> port 22: No route to host
其他现象:
- ping <ip-address> 成功
- http访问成功:wget http://<ip-address>
- 在目标机<ip-address>内部向外访问(包括ssh)能成功。
这样基本就确认ip route是成功的,不要被ssh的提示("No route to host")迷惑,我就是一种被这句话迷惑了,总以为是在ip层失败,导致各种验证机器的连通性,实际上应该是ssh的错误提示不精确。
这样基本就是确定应该是目标机内的端口有没有打开了,接着去验证防火墙,ip端口过滤等问题就行了。例如:
$ sudo iptables -I INPUT -p tcp --dport 22 -j ACCEPT