iptables nat表轉發
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表轉發