在端口 8080 上运行节点服务器,使用 iptables 重定向流量

在端口 8080 上运行节点服务器,使用 iptables 重定向流量

我在几个场合看到,为了以用户身份运行节点,并让它监听端口 80,你可以做一个简单的 IPTables 技巧:

sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3000

我有一个稍微不同的设置:节点服务器绑定到具体的IP 地址/端口(66.XXX.YYY.3/8080)并且我希望 IPTables 仅为 IP 66.XXX.YYY.3 执行端口 8080 <-> 端口 80 的重定向。

这是我iptables目前的文件:

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 25 --syn -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 --syn -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

这是我的 ifconfig:

eth0      Link encap:Ethernet  HWaddr 00:30:XX:XX:C1:0E  
          inet addr:216.XX.XX.208  Bcast:216.XX.XX.255  Mask:255.255.255.128
          inet6 addr: fe80::230:48ff:fedd:c10e/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:20043263 errors:0 dropped:0 overruns:0 frame:0
          TX packets:19346011 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:2757738385 (2.5 GiB)  TX bytes:20346229004 (18.9 GiB)
          Interrupt:16 Memory:faee0000-faf00000 

eth0:1    Link encap:Ethernet  HWaddr 00:30:48:DD:C1:0E  
          inet addr:66.XXX.XXX.3  Bcast:66.XXX.255.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Interrupt:16 Memory:faee0000-faf00000 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:412293 errors:0 dropped:0 overruns:0 frame:0
          TX packets:412293 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:56772773 (54.1 MiB)  TX bytes:56772773 (54.1 MiB)

我有绑定到216.XX.XX.208(eth0 的 IP)运行 Apache 的真实服务器。

我尝试了无数种不同的方法,绝不设法仅转发 eth0:1 接口的流量,以便连接到66.XXX.XXX.3该接口的 80 端口实际上会被转发到 8080 端口(守护进程正在运行的位置)。

问题:要怎样iptables解决这个问题?

相关内容