我在数据中心有一台服务器,它是 Proxmox 服务器。在服务器上(其中之一,它们位于 Proxmox 集群中)我托管了各种 VM。
VM 上的服务通过 iptables(使用 ufw)natting 公开,如下例所示:
-A PREROUTING -i eno1 -p tcp -d <public_ip> --dport 21 -j DNAT --to-destination <local_ip>:<port>
-A PREROUTING -i eno1 -p tcp -d <public_ip> --dport 23 -j DNAT --to-destination <local_ip>:<port>
-A PREROUTING -i eno1 -p tcp -d <public_ip> --dport 10090:10100 -j DNAT --to-destination <local_ip>:<port>
VM 使用虚拟网桥 nic 连接,例如 Proxmox 状态的文档。(Proxmox 文档)这行得通。然而,有一个缺点。VM 没有收到连接方的源 IP。这给了我有限的 IP 过滤选项,登录各种其他 VM。
现在我正在寻找一个类似的 nftables 解决方案(它将或已经取代 iptables)。
有没有办法设置允许源 IP 发送到 VM 的 natting 或转发规则?
您可以通过这种方式在 nftables 中执行相同的规则:
虽然,目标 NAT 不会重写源 IP,所以您应该看到真实的源 IP。如果不能,您可能在要删除的路由后 NAT 表中有一个源 NAT 规则。你可以用
iptables -t nat -L
.