iptables与SNAT转发实例

iptables与net转发实例:

    • 客户端:192.168.30.10
    • 路由器:192.168.30.11 172.20.0.1
    • 不同网段充当公网IP的httpd:172.20.0.2

客户端:

iptables -A FORWARD -s 192.168.30.0/24 -p icmp --icmp-type 0 -J accept #防止干扰关掉客户端防火墙
iptables -A FORWARD -s 192.168.30.0/24 -p icmp --icmp-type 8 -j ACCEPT  #允许数据发出回应
ip route add default via 192.168.30.11 dev eth0  #添加一条网关指向路由器
ip  a --->eth0:inet 192.168.30.10/24 
ip route-->default via 192.168.30.11 dev eth0 

路由器

192.168.30.11 net网卡
172.20.0.0 桥接网卡

ip addr add  192.168.30.11/24 dev eth0    #添加内网IP
ip addr add  172.20.0.0/24 dev eth1       #添加不同网段IP

echo 1 > /proc/sys/net/ipv4/ip_forward   #打开流量转发
ip route add default via 172.20.0.1 dev eth1##添加默认路由
#流量转发写入配置文件永久生效
vim /etc/sysctl.conf
net.ipv4.ip_forward=1
sysctl -p             #使sysctl.conf文件生效
iptables -t nat -A POSTROUTING -s 192.168.30.0/24 -j SNAT --to-source 172.20.0.1  
#配置net转发,源地址为192.168.30.网段的访问,切换成源地址为172.20.0.1去公网访问
ip  a --->  eth0:192.168.30.11    eth1:172.20.0.1
ip route-->  default via 192.168.30.2 dev eth0 proto static metric 101 
             default via 172.20.0.1 dev eth1 proto dhcp metric 102 

## httpd服务器172.20.0.1:


yum -y install httpd #安装启动服务
systemctl enable --now httpd #启动服务



```
iptables -A FORWARD -s 192.168.30.0/24 -p icmp --icmp-type 0 -J accept #防止干扰关掉客户端防火墙
iptables -A FORWARD -s 192.168.30.0/24 -p icmp --icmp-type 8 -j ACCEPT  #允许数据发出回应
```
ip addr add 172.20.0.2 dev eth0               #添加IP
ip route add default via 172.20.0.1 dev eth0  #添加一条网关指向回路
ip a  --->eth0:172.20.0.2
ip route -->default via 192.168.30.2 dev eth0 proto static metric 100

测试阶段:

客户端

curl 172.20.0.2
www.123.com      #成功显示httpd内容

服务端:

tail -f /var/log/httpd/access_log
172.20.2.0 - - [23/Dec/2019:21:11:18 +0800] "GET / HTTP/1.1" 200 25 "-" "curl/7.29.0"  #查看到路由器IP的访问

版权声明:本文为Miao233_原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。