将 iptables 中的端口转发到内部服务器

将 iptables 中的端口转发到内部服务器

我正在运行带有 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 上的传入连接。

相关内容