Linux學習(二十九)iptables(三)nat表的應用
阿新 • • 發佈:2017-12-26
icmp cal 網卡 cast 默認值 ria bootproto cap span
需求
A機器可以訪問外網,B機器和A機器處於同一個內網,現在要讓B機器通過A機器訪問外網。
步驟
1.為虛擬機添加一塊網卡。
如果沒有區段名稱的話,點擊‘LAN區段(S)...’按鈕,新建一個。
2.ifconfig -a命令可以看到剛添加進來的尚未啟用的網卡:
[root@bogon ~]# ifconfig -a
eth1 Link encap:Ethernet HWaddr 00:0C:29:AC:CC:56
inet addr:192.168.182.130 Bcast:192.168.182.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:feac:cc56/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1546 errors:0 dropped:0 overruns:0 frame:0
TX packets:1187 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:157665 (153.9 KiB) TX bytes:168997 (165.0 KiB)
eth2 Link encap:Ethernet HWaddr 00:0C:29:AC:CC:60
BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:18 errors:0 dropped:0 overruns:0 frame:0
TX packets:18 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:1512 (1.4 KiB) TX bytes:1512 (1.4 KiB)
3.配置網卡eth2:
TYPE=Ethernet
DEVICE=eth2
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.100.1
NETMASK=255.255.255.0
HWADDR=00:0C:29:AC:CC:60
4.在機器A上運行:
echo "1" > /proc/sys/net/ipv4/ip_forward
打開ip轉發。
5.在A機器上添加規則:
iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o eth2 -j MASQUERADE
6.配置B機器到相同的“lan區段”,設置ip為192.168.100.2,網關為192.168.100.1。
需求
用xshell登陸B機器
步驟一:A機器打開路由轉發
[root@localhost ~]# echo "1" > /proc/sys/net/ipv4/ip_forward
說明:該命令是更改內核設置,打開路由轉發功能,默認值是0.
步驟二:在A機器的nat表中增加2條規則(執行該步驟前先清除nat表原有規則)
規則1:
[root@localhost ~]# iptables -t nat -A PREROUTING -d 192.168.8.125 -p tcp --dport 1122 -j DNAT --to 192.168.100.100:22
規則2:
[root@localhost ~]# iptables -t nat -A POSTROUTING -s 192.168.100.100 -j SNAT --to 192.168.8.125
這個實驗失敗了。。。以後再看吧,盡力了。。。
備份
# service iptables save
/etc/sysconfig/iptables //默認保存的位置
指定備份位置
[root@localhost ~]# iptables-save > /tmp/ipt.txt
[root@localhost ~]# cat /tmp/ipt.txt
# Generated by iptables-save v1.4.21 on Fri Dec 1 21:16:41 2017
*filter
:INPUT DROP [9:702]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [262:26184]
-A INPUT -p icmp -m icmp --icmp-type 8 -j DROP
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -s 192.168.8.0/24 -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 21 -j ACCEPT
COMMIT
# Completed on Fri Dec 1 21:16:41 2017
恢復備份的規則
[root@localhost ~]# iptables-restore < /tmp/ipt.txt
Linux學習(二十九)iptables(三)nat表的應用