我在几个场合看到,为了以用户身份运行节点,并让它监听端口 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
解决这个问题?