iptables端口映射实例

环境:

主机1: IP:192.168.10.25(能访问外网)

            IP:192.168.100.1(网关) 

主机2:IP:192.168.100.23(web服务器)

要求:192.168.10.0/24网段IP能访问web服务器,web服务器也能访问外网。

备注:192.168.10.0/24和192.168.100.0/24不能连通。


先设置主机2:

配置IP和route

配置主机2 IP地址:192.168.100.23

查看route的默认网关是否是 192.168.100.1

1
2
3
4
5
6
[root@haproxy02 sysconfig]# route 
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.100.0   *               255.255.255.0   U     0      0        0 eth1
link-local      *               255.255.0.0     U     1003   0        0 eth1
default         192.168.100.1   0.0.0.0         UG    0      0        0 eth1

如果没有设置 就添加默认网关

route add default gw 192.168.100.1


网关永久生效:vim /etc/sysconfig/static-routes

any net default gw 192.168.100.1


主机1配置:

设置两个ip分别分配两个网口

eth0:192.168.10.25

eth1:192.168.100.1


route的默认网关是192.168.10.1

default         192.168.10.1    0.0.0.0         UG    0      0        0 eth0


打开linux下启用ip转发功能

vim /etc/sysctl.conf 

net.ipv4.ip_forward = 1

sysctl -p /etc/sysctl.conf


iptables策略

1
2
3
-A PREROUTING -d 192.168.10.25/32 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.100.23 
-A POSTROUTING -s 192.168.100.0/24 -o eth0 -j SNAT --to-source 192.168.10.25 
-A POSTROUTING -d 192.168.100.0/24 -p tcp -m tcp --dport 80 -j SNAT --to-source 192.168.100.1



上一篇:用 Ansible 来交付 Vagrant 实例


下一篇:Android ExpandableListView实例Demo