这可能是非常基本的,但我现在在这方面进退两难。我在 KVM 上有一个虚拟机,它有一些套接字服务器。我可以通过 localhost 连接到这台机器,即使用主机上的客户端,但我想要做的是能够远程连接。远程我的意思是从另一台PC。
现在我什至无法 ping 这些机器。默认情况下分配给这台机器192.168.122.122
的 ip 是,当我的主机连接到大学网络时,它的 ip 类似于10.5.135.*
. 有什么方法可以远程连接到我的应用程序?最好不必更改虚拟机的 ip,因为我需要更改很多配置。如果需要的话,我愿意用一些静态 IP 创建一个热点。
感谢我在这方面能得到的任何帮助。
您可以在主机上为某些 TCP 和 UDP 端口配置端口转发。不过,用 ICMP 做 DNAT 似乎是不可能的。
替代方法是设置从远程系统到主机的加密(SSH、OpenVPN、IPsec)或明文隧道,并通过远程系统上的此隧道为 VM 地址设置路由。
SSH 端口转发
当此 SSH 连接处于活动状态时,您可以在远程系统上连接到端口 1234 并到达 VM 上所需的端口:
带有 iptables 的 DNAT
在主机上:
然后您可以连接到主机上的端口,并将数据包重定向到 VM。因为 VM 看到来自主机的数据包(而不是由于伪装而来自远程系统),所以这是有效的。