我正在尝试使用IPtables将端口80重定向到内部IP(192.168.33.52)。 但如果打开tcpdump端口80,我会看到:
04:36:59.848744 IP 1.2.3.4.59936> 192.168.33.52.http:Flags [S],seq 2560507980,win 8192,options [mss 1460,nop,wscale 8,nop,nop,sackOK],length 0
如何将我们的公共IP 1.2.3.4重写为我们的实习生IP 192.168.33.200? 192.168.33.200是否将流量重定向回客户端?
网络接口:
eth0 - 1.2.3.4(公共知识产权) eth0:0 - 192.168.33.200(私有IP)
网络服务器:192.168.33.52
我的iptables规则:
目标prot opt源目的地
DNAT tcp - 0.0.0.0/0 1.2.3.4 tcp dpt:80 to:192.168.33.52:80
Chain INPUT(政策接受) 目标prot opt源目的地
Chain OUTPUT(政策接受) 目标prot opt源目的地
Chain POSTROUTING(政策接受)
目标prot opt源目的地
SNAT tcp - 0.0.0.0/0 192.168.33.52 to:1.2.3.4
答案 0 :(得分:0)
将脚本保存为script.sh,然后将其设置为可执行文件(chmod + x script.sh),然后使用./script.sh
运行它您需要的iptables规则如下:
#!/bin/bash
# enable ip forwarding
echo 1 > /proc/sys/net/ipv4/ip_forward
# define vars
LOCALNET="192.168.33.0/24"
WAN="eth0"
WANIP="PUBLIC_IP"
WEBSERVER="192.168.33.52"
# enable traffic from the local network to the internet
iptables -t nat -A POSTROUTING -s $LOCALNET -o $WAN -j MASQUERADE
# HTTP to the local web server from the outside world
iptables -t nat -A PREROUTING -d $WANIP -p tcp --dport 80 -j DNAT --to-destination $WEBSERVER:80
iptables -t nat -A POSTROUTING -d $WEBSERVER -p tcp --dport 80 -j MASQUERADE