IPTables KVM NAT 端口转发到错误的虚拟机

IPTables KVM NAT 端口转发到错误的虚拟机

再会,

我有 2 个使用 libvirt 运行的虚拟机。

Machine 1 : PostgreSQL on port 5432
Machine 2 : Attempting to use psql to connect to a PostgreSQL server on the internet.

我转发了端口 5432,以便我可以从外部/作为服务访问机器 1 上的 PostgreSQL。

我遇到的问题是:机器 2 尝试连接到互联网上的 PostgreSQL 服务器,但是当数据包返回时,它们会被转发到机器 1,然后机器 1 再响应机器 2。因此,我从未与外部 PostgreSQL 建立正确的连接。

我该如何更改端口转发规则来适应这种情况?

(我曾经在 VirtualBox 上使用 nat-networking 来解决这个问题,但是 KVM 更酷吧 :-)

现行规则机器 1:

/sbin/iptables -I FORWARD -o virbr66 -d  192.168.223.115 -j ACCEPT
/sbin/iptables -t nat -I PREROUTING -p tcp --dport 5432 -j DNAT --to 192.168.223.115:5432

答案1

弄清楚了。

我所需要做的就是在规则中添加 -d,这样它就不会路由到任何目的地,但前提是目的地是本地主机,在本例中为 10.10.10.10。

/sbin/iptables -t nat -I PREROUTING -p tcp -d 10.10.10.10 --dport 5432 -j DNAT --to 192.168.223.115:5432

相关内容