我正在尝试让 KVM 在我的 Debian 服务器上运行,但在与我的客户操作系统(也是 Debian)联网时遇到了一点问题。虚拟机正在使用“默认”网络(没有网桥)。主机服务器获取所有 IP,为了允许客户机提供内容,我将以下规则添加到我的 iptables 中:
/sbin/iptables -t nat -I PREROUTING -d xxx.xxx.xxx.134 -j DNAT --to 192.168.122.160
/sbin/iptables -t nat -I POSTROUTING -s 192.168.122.160 -j SNAT --to xxx.xxx.xxx.134
/sbin/iptables -t filter -I FORWARD -d 192.168.122.160 -j ACCEPT
/sbin/iptables -t filter -I FORWARD -s 192.168.122.160 -j ACCEPT
我还想添加其他几个虚拟机并让它们访问互联网,但不需要任何面向公众的服务器,因此不需要将端口转发到这些虚拟机(此外,我没有足够的公共 IP 来为每台服务器提供自己的 IP)。
问题是,如果不将这些规则添加到 iptables,我只能从虚拟机访问本地网络(但 DNS 工作正常)。如果我尝试 ping 任何内容(例如 google.com),它会解析 IP,但不会收到任何响应。我是否需要向 iptables 添加其他类型的规则或执行其他任何操作,以便访客可以访问互联网而无需转发任何端口?