我有 CentOS 7,它使用 IPTABLES 将端口 30120 转发到 Windows 服务器
例如:Windows游戏服务器IP:192.168.1.3 Linux Centos 7服务器IP:192.168.1.5
iptables -t nat -A PREROUTING -p tcp --dport 30120 -j DNAT --to-destination 192.168.1.3:30120
iptables -t nat -A POSTROUTING -p tcp -d 192.168.1.3 --dport 30120 -j SNAT --to-source 192.168.1.5
iptables -t nat -A PREROUTING -p udp --dport 30120 -j DNAT --to-destination 192.168.1.3:30120
iptables -t nat -A POSTROUTING -p udp -d 192.168.1.3 --dport 30120 -j SNAT --to-source 192.168.1.5
我有反 DDOS 和安全 SSH 的规则,但它无法正常工作,仍然将流量从我的 Centos 转发到 192.168.1.3:30120
我的电脑 IP:192.168.1.2 在 CentOS 中用于测试
iptables -A INPUT -s 192.168.1.2 -j DROP
此 IP 192.168.1.2 无法访问 CentOS 7,但可以通过端口 30120 转发到 Windows 服务器
怎么被堵住了?
谢谢。
答案1
规则的顺序很重要,因此如果端口转发规则位于 DROP 规则之前,则端口转发规则优先,并且只有其他流量会被丢弃。如果要丢弃所有流量,请将 DROP 行移到端口转发行上方。
答案2
一般语法是:
firewall-cmd --add-forward-port=port=port-number:proto=tcp|udp:toport=port-number:toaddr=IP/mask
firewall-cmd --zone=public --add-masquerade --permanent
具体案例示例:
firewall-cmd --zone=public --add-forward-port=port=30120:proto=tcp:toport=30120:toaddr=192.168.1.100
--permanent