1. 程式人生 > >iptables nat表轉發

iptables nat表轉發

iptables nat

1.上外網 環境

nat表具有轉發的功能,讓服務器具有路由器的功能。


兩臺機器A和B。

A有兩塊網卡,網卡a:192.168.88.130 網卡b:192.168.100.2

B有一塊網卡,網卡c:192.168.100.2

192.168.88.130是可以上外網的,網卡c只能連通網卡b,並不能上網。


1.1 目標:

讓機器B通過機器A轉發,達到可以上網的功能。


1.2 nat轉發 上外網

1.給兩臺機器都添加1塊網卡,自定義lan段

技術分享圖片


2.設置機器A新網卡的IP地址

# ifconfig ens37 192.168.100.2


3.停掉原來的網卡,設置機器B新網卡的地址。

# ifdown ens33

# ifconfig ens37 192.168.100.3


4.測試新網卡是否能通

A:

# ping 192.168.100.3

B:

# ping 192.168.100.2


5.打開A機器的內核轉發

# echo "1" > /proc/sys/net/ipv4/ip_forward


6.增加機器A的轉發規則,

# iptables -F

# iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o ens33 -j MASQUERADE


7.設置機器B的網關,利用機器A的網卡b出去,所以網關的ip就是網卡b的IP。

# route add default gw 192.168.100.2


8.設置機器B的DNS。

# vim /etc/resolv.conf

nameserver 119.29.29.29


9.測試

# ping www.qq.com

成功ping通外網。



2.端口映射

把A機器的1122端口映射成B機器的22端口,連接A機器的1122端口,實際連接的是B機器的22端口。

環境同上,C機器就是PC主機。


2.1 目標

C機器連接A機器上,實際連接的是B機器。


2.2 nat表 端口映射實例


1.給兩臺機器都添加1塊網卡,自定義lan段

同上


2.設置機器A新網卡的IP地址

# ifconfig ens37 192.168.100.2


3.停掉原來的網卡,設置機器B新網卡的地址。

# ifdown ens33

# ifconfig ens37 192.168.100.3


4.測試新網卡是否能通

A:

# ping 192.168.100.3

B:

# ping 192.168.100.2


5.打開A機器的內核轉發

# echo "1" > /proc/sys/net/ipv4/ip_forward


6.增加機器A的轉發規則

# iptables -t nat -F

# iptables -t nat -A PREROUTING -d 192.168.88.130 -p tcp --dport 1122 -j DNAT --to 192.168.100.3:22 #把88.130的1122端口映射成100.3的22端口

# iptables -t nat -A POSTROUTING -s 192.168.100.3 -j SNAT --to 192.168.88.130 #從100.3出去的包到88.130上去。


7.設置機器B的網關,利用機器A的網卡b出去,所以網關的ip就是網卡b的IP。

# route add default gw 192.168.100.2


8.設置機器B的DNS。

# vim /etc/resolv.conf

nameserver 119.29.29.29


9.測試,通過ifconfig命令,查到是B機器的IP。

技術分享圖片

iptables nat表轉發