阻止 IPTABLES 预路由到本地 IP

阻止 IPTABLES 预路由到本地 IP

我正在运行 proxmox 服务器,并通过 IPTABLES 将端口重定向到内部虚拟机。

我按照这里的说明进行操作http://www.ameir.net/blog/archives/55-Running-Proxmox-behind-a-single-IP-address.html

-A PREROUTING -i vmbr0 -p tcp -m tcp --dport 2222 -j DNAT --to-destination 192.168.4.100:22
-A PREROUTING -i vmbr0 -p tcp -m tcp --dport 2223 -j DNAT --to-destination 192.168.4.101:22
-A PREROUTING -i vmbr0 -p tcp -m tcp --dport 2224 -j DNAT --to-destination 192.168.4.104:22
-A POSTROUTING -s 192.168.4.0/24 -o vmbr0 -j MASQUERADE

我尝试在主机 IP 上设置端口 80 以重定向到虚拟机,这导致我的所有虚拟机端口 80 也被重定向。

有没有办法可以预先路由并让其忽略任何 192.xxx 地址?

答案1

如果您只希望将到主机 IP 的流量通过 NAT 传输到其他地方,则可以使用-diptables 规则中的选项指定主机 IP:

-A PREROUTING -i vmbr0 -p tcp -m tcp -d $HOSTIP --dport 2222 -j DNAT --to-destination 192.168.4.100:22

答案2

目标ACCEPT相当于IGNORENAT 规则中的。因此,要免除192.168.0.0/16(我假设您不是真的要免除192.0.0.0/8)任何 NAT 的地址,您可以说

iptables -t nat -I PREROUTING 1 -s 192.168.0.0/16 -j ACCEPT

请注意,这将使这些地址免于全部链中遵循的 NAT 规则PREROUTING

相关内容