Iptables dnat / snat规则内部

时间:2017-06-27 08:45:46

标签: iptables nat

我正在尝试使用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

1 个答案:

答案 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