[1036]kvm虚拟机访问时提示no route to host分析
kvm,虚拟机,访问,提示,no,route,to,host,分析
·
浏览次数 : 317
小编点评
**分析结果:**
* 136.43上的虚拟机可以正常访问 136.56(Kylin V10)。
* 136.59 上的虚拟机可以正常访问 136.43,但不能访问其他服务器。
* 136.59 上的虚拟机上存在arp信息。
* 136.43 上没有arp信息。
* 136.59 上的虚拟机可以正常访问 136.56,说明 iptables 规则可能导致问题。
** possible cause:**
* **iptables 规则**:
* 136.43 上的防火墙可能设置 `iptables -A INPUT -p icmp --dport 22 -j ACCEPT`,从而阻止了其他服务器的 `ssh` 连接。
* 136.59 上的防火墙可能设置 `iptables -A INPUT -p tcp --dport 22 -j ACCEPT`,从而阻止了其他服务器的 `ssh` 连接。
**解决方案:**
1. **检查 iptables 规则:**
* 使用 `iptables -L INPUT -n` 命令检查防火墙规则,以确保 `ssh` 连接被允许。
* 使用 `iptables -L INPUT -n --line-number` 命令检查每个规则的详细信息。
2. **调整 iptables 规则:**
* 如果 `iptables -A INPUT -p icmp --dport 22 -j ACCEPT` 被使用,则可以尝试以下两种方法:
* 修改 `iptables -A INPUT -p icmp --dport 22 -j ACCEPT` 的规则,例如 `iptables -A INPUT -p icmp --dport 22 -j ACCEPT --dport 22 --source 10.110.136.59`。
* 使用 `iptables -A INPUT -p tcp --dport 22 -j ACCEPT` 的规则。
3. **重启防火墙服务:**
* 使用 `sudo systemctl restart iptables` 命令重启防火墙服务。
4. **验证 SSH 连接:**
* 重新启动 `ssh` 服务并尝试再次连接。
5. **确认 arp 信息:**
* 使用 `arp -n` 命令检查 136.59 上和 136.43 上的 ARP 信息。
* 确保所有机器的 ARP 信息正确配置。
正文
环境
宿主机:
IP: 10.110.136.43
版本:Kylin Linux Advanced Server release V10 (Sword)
KVM vm:
IP: 10.110.136.59
版本:UnionTech OS Server 20
故障描述
kvm虚拟机136.59可以被其他服务器ping通,但是ssh时报错:“ssh: connect to host 10.110.136.59 port 22: No route to host”;仅宿主机136.43可以ssh。
分析
? (10.110.136.59) at 52:54:00:42:3a:97 [ether] on enp111s0f0
- 从136.59对外SSH,相同报错
- 检查各个forward,均开启
- 检查防火墙,136.43防火墙开启
处理
进一步
为什么ping可以通呢?
防火墙默认的策略里ICMP协议是通过的
ACCEPT icmp -- anywhere anywhere
与[1036]kvm虚拟机访问时提示no route to host分析相似的内容: