我正在运行带有 ConfigServer 防火墙 (csf) 的 cPanel/WHM。
我想将我的 Web 服务器上的 8080 端口转发到一个内部服务器,该服务器的 IP 为 10.1.1.1,并在端口 80 上运行 Web 服务器。我该怎么做?
我的 WAN ip 在 eth0 上运行,内部服务器使用 eth1 接口连接。
什么是适当的 IPtables cmd 来执行此操作?
答案1
类似这样的事应该可以
sudo /sbin/iptables -t nat -I PREROUTING -i eth0 -p tcp -m tcp --dport 8080 -j DNAT --to-destination 10.1.1.1:80
如果你还没有这样做,你可能还需要启用 IP 转发
/sbin/sysctl -w net.ipv4.ip_forward=1
并使其永久编辑/etc/sysctl.conf
和设置
net.ipv4.ip_forward = 1
编辑:
由于 FORWARD 链上的策略是 DROP,因此您需要允许数据包通过。我认为您当前的 FORWARD 规则没有任何帮助,因此请将其删除。
允许从 eth0:8080 发送到 FORWARD 的数据包发送到 10.1.1.1
/sbin/iptables -I FORWARD -p tcp -m tcp -d 10.1.1.1 --destination-port 80 -j ACCEPT
允许数据包也向另一方向传输
/sbin/iptables -I FORWARD -i eth1 -p tcp -m tcp -j ACCEPT
您可能想进一步限制后者。
答案2
就像是:
iptables -A PREROUTING -t nat -i eth1 -p tcp \
--dport 8888 -j DNAT --to 10.1.1.1:80
Sends 转发端口 8888 上的请求。
iptables -A INPUT -p tcp -m state --state NEW --dport 8888 -i eth1 -j ACCEPT
允许端口 8888 上的传入连接。