我无法从位于不同子网的计算机上访问由KVM托pipe的虚拟机上运行的Web应用程序。
所以,我想从机器192.168.1.2(在绿色圆圈的右上angular)访问虚拟机192.168.10.1上运行的Web应用程序(红色圆圈底部中间)
我在netgear路由器上添加了一个静态路由,以便所有到192.168.10.0/24的请求都被转发到主机192.168.1.1。
主机本身有一个静态路由,通过vmbr1桥接接口将请求转发到192.168.10.0/24
提前感谢您的帮助或任何线索。
PS:我确定,即使防火墙被禁用,也不起作用。
iptables -L
Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination
从物理机器192.168.1.2到VM机器192.168.10.1 => KO的跟踪路由
traceroute to 192.168.10.1 (192.168.10.1), 30 hops max, 60 byte packets 1 192.168.1.254 (192.168.1.254) 2.390 ms 3.004 ms 3.436 ms 2 * * * 3 * * * ... 30 * * *
从VM机器192.168.1.2到物理机器192.168.10.1机器跟踪路由=>确定
traceroute to 192.168.1.2 (192.168.1.2), 30 hops max, 60 byte packets 1 192.168.10.254 (192.168.10.254) 0.846 ms 0.648 ms 0.519 ms 2 192.168.1.2 (192.168.1.2) 5.447 ms 5.277 ms 4.977 ms
从192.168.1.2机器到VM机器192.168.10.1的ping:
ping 192.168.10.1 PING 192.168.10.1 (192.168.10.1) 56(84) bytes of data. From 192.168.1.254: icmp_seq=1 Redirect Host(New nexthop: 192.168.1.1) From 192.168.1.254 icmp_seq=1 Redirect Host64 bytes from 192.168.10.1: icmp_seq=1 ttl=63 time=2.77 ms From 192.168.1.254: icmp_seq=2 Redirect Host(New nexthop: 192.168.1.1) From 192.168.1.254 icmp_seq=2 Redirect Host64 bytes from 192.168.10.1: icmp_seq=2 ttl=63 time=2.56 ms
在主机上,路由定义良好,从这台主机访问虚拟机的Web应用程序没有任何问题。
ip路由显示
default via 192.168.1.254 dev eth0 192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.1 192.168.10.0/24 dev vmbr10 proto kernel scope link src 192.168.10.254 192.168.20.0/24 dev vmbr20 proto kernel scope link src 192.168.20.254

编辑
当我用RJ45电缆直接将192.168.1.2机器(源机器)连接到路由器时,它可以工作。 在192.168.1.2之前通过Wifi连接到路由器。 所以我认为这个路由器的问题是不适用于通过Wifi连接的机器的静态路由。 我不知道为什么,但这很奇怪:S
您遇到的问题是因为您正在同一子网192.168.1.0/24上使用具有2个接口的路由器。
192.168.1.2机器发送数据包到它的默认网关,我假设它是192.162.1.254,即路由器。
但是,由于路由器发现该数据包的下一跳是同一子网上的另一个IP,因此会生成您在ping输出中看到的redirect。
您需要将路由器作为网桥或交换机运行,即不需要路由,因为KVM 192.168.1.1和客户机192.168.1.2都在同一个子网上,不需要路由协议通话。
此外,这意味着客户端192.168.1.2的正确默认网关应该是KVM 192.168.1.1。
还有一点,你需要确认你是否使用了正确的KVM默认网关,它真的是路由器吗? 路由器是否提供KVM或客户端访问其他子网的访问权限?