linux雙網卡NAT共享上網
術語字匯
- 私有IP地址(路由不可達地址)是一個被用於本地局域網的IP地址(在互聯網中不可見)。
- 公用IP地址(路由可達地址)是一個在互聯網中可見的IP地址。
- IP偽裝是一項允許一系列機器通過MASQ網關連接互聯網的功能。這些MASQ網關之外的機器在互聯網中是不可見的。MASQ之后的機器中任何流入或流出的數據必須經過MASQ網關。
- 網絡地址轉換(NAT)是一項通過IP偽裝技術可以使私有IP地址訪問互聯網的功能。
硬件要求
- 一台有兩個接口(一個公有IP地址和其他的私有IP地址)的linux主機,這個主機將被用作網關。
- 一台或者多台擁有私有IP地址的linux/windows系統的PC或者筆記本。
- 交換機/集線器(可選)。
服務器設置:
1、激活IP轉發
為了設置網絡共享,你需要在linux主機上更改一個內核參數來使能IP轉發功能。內核啟動參數設定在/etc/sysctl.conf
文件中。打開這個文件,定位到含有# net.ipv4.ip_forward = 0
的這一行,移除#號(即取消注釋),然后將其值設置為1。
你還要使激活IP轉發功能生效,通過執行下面的命令:
sysctl -w net.ipv4.ip_forward=1
sysctl -p
或使用下面的命令臨時生效,重啟后失效
echo "1" > /proc/sys.Net/ipv4/ip_forward #打開IP轉發,1表示轉發;0表示不轉發
2、NAT配置
另一個網絡共享的重要部分是NAT配置,這可以通過使用iptables的命令,iptables包含四個防火牆的規則表:
- FILTER (默認表格)
- NAT
- MANGLE
- RAW
這個教程中我們將僅使用兩個表格:FILTER和NAT表格。
首先,刷新所有活躍的防火牆的規則。
iptables -X
iptables -F
iptables -t nat -X
iptables -t nat -F
在輸入表格中,你需要設置轉發鏈(FORWARD)成可接受的(ACCEPT)目的地,因此所有通過主機的數據包將會被正確的處理。
iptables -I INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -I FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
在NAT表中,你必須為你的WAN口啟用IP偽裝功能,我們假設WAN口協議是ppp0。為了在ppp0接口上使能IP偽造技術,我們使用以下的命令:
iptables -t nat -I POSTROUTING -o ppp0 -j MASQUERADE
或使用下面簡單的命令是:
iptables -F
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE #打開NAT
客戶端設置
網絡拓補結構:(192.168.1.0/24可以連接Internet,網關192.168.1.1)
1、NAT方法:
服務器:兩網卡的設置:
eth0:192.168.1.10 掩碼:255.255.255.0 網關:192.168.1.1 #可以連接Internet相聯
eth1:192.168.2.1 掩碼:255.255.255.0 #與局域網相聯
客戶機:192.168.2.10/24 網關:192.168.2.1 #與eth1同一網段,網關為eht1
2、網橋方法:
eth0:0.0.0.0 #無IP -->br0
eth1:0.0.0.0 #無IP -->br0
br0:eth0:192.168.1.10 掩碼:255.255.255.0 網關:192.168.1.1
客戶機:192.168.1.10/24
ifconfig eth0 0.0.0.0 up #網橋工作於數據鏈路層,不需要IP
ifconfig eth1 0.0.0.0 up
brctl addbr br0 #添加一個網橋
brctl addif br0 eth0
brctl addif br0 eth1 #將eth0 eth1加到網橋中去
ifconfig br0 192.168.1.10.Netmask 255.255.255.0 broadcast 192.168.1.255 up #給網橋分配IP地址,如果不做NAT,也不需要遠程訪問網橋的話,可以不設IP地址,但必須啟用網橋(ifconfig br0 up)
route add default gw 192.168.1.1 #如果網橋不需要訪問其他機器的話,可以不添加網關。
配置感想:
按照NAT的方法,很快配置完成,並且可以順利上網。對於那些對於網絡配置沒什么特殊要求的用戶,可以選用NAT方法,簡單實用。
另外,無線局域網共享wifi,需要hostapd搭建無線局域網,可以參考creat_ap.