1. 程式人生 > >iptables nat表應用

iptables nat表應用

iptables

1.1.準備兩臺虛擬機A和B。

A:兩塊網卡。

網卡ens33:192.168.231.128,可以聯通外網

網卡ens37:192.168.100.1,只可以訪問內網

B:一塊網卡

網卡ens37:192.168.100.100,只可以訪問內網

1.2.打開A機器的網絡轉發功能

[root@test_01 ~]# cat /proc/sys/net/ipv4/ip_forward
0
[root@test_01 ~]# echo "1" > !$
echo "1" > /proc/sys/net/ipv4/ip_forward

/proc/sys/net/ipv4/ip_forward文件默認值為0,表示未開啟

1.3.在A機器添加如下iptables規則來通過A轉發流量

[root@test_01 ~]# iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o ens33 -j MASQUERADE

1.4.查看規則內容

[root@test_01 ~]# iptables -t nat -nvL
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
11 892 PREROUTING_direct all -- * * 0.0.0.0/0 0.0.0.0/0
11 892 PREROUTING_ZONES_SOURCE all -- * * 0.0.0.0/0 0.0.0.0/0
11 892 PREROUTING_ZONES all -- * * 0.0.0.0/0 0.0.0.0/0

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
94 7094 OUTPUT_direct all -- * * 0.0.0.0/0 0.0.0.0/0

Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
94 7094 POSTROUTING_direct all -- * * 0.0.0.0/0 0.0.0.0/0
94 7094 POSTROUTING_ZONES_SOURCE all -- * * 0.0.0.0/0 0.0.0.0/0
94 7094 POSTROUTING_ZONES all -- * * 0.0.0.0/0 0.0.0.0/0
0 0 MASQUERADE all -- * ens33 192.168.100.0/24 0.0.0.0/0

1.5.在B及其設置A的IP未默認網關

default add default gw 192.168.100.1

1.6.在B機器上設置DNS服務器

編輯/etc/resolv.conf文件添加dns服務器地址

1.7設置端口轉發規則

[root@test_01 ~]# iptables -t nat -A PREROUTING -d 192.168.231.128 -p tcp --dport 1122 -j DNAT --to 192.168.100.100:22
[root@test_01 ~]# iptables -t nat -A POSTROUTING -s 192.168.100.100 -j SNAT --to 192.168.231.128


iptables nat表應用