利用樹莓派將 WIFI 網絡轉發到路由器WAN口


利用樹莓派將 WIFI 網絡轉發到路由器WAN口

1 目的

樹莓派的無線網卡和有線網卡作路由,無線網卡與外網(如電信路由器出口)相連,有線網卡與內網相連。

內網通過一個路由器分發。

實現內外網隔離。

2 概況

外網網絡(局域網):192.168.0.0/24

樹莓派NAT路由:192.168.2.0/24(有線網卡) --> 192.168.0.112(樹莓派的無線網絡IP)

樹莓派無線網卡IP:192.168.0.112

樹莓派有線網卡IP:192.168.2.1

內網網絡:192.168.2.0/24

內網測試電腦IP:192.168.2.2

路由器外網地址:192.168.2.2 (和電腦測試一樣)

路由器NAT網絡:192.168.3.0/24 (隨意)

3 環境

1.樹莓派4。

2.樹莓派能夠連接WIFI,WIFI連接互聯網。

3.一根網線和一個路由器。

4 主要節點

1.樹莓派和電腦互聯,以樹莓派作為主機,實現局域網互通。

2.配置NAT,使發送到eth0的包能夠被轉發到wlan0上去,從而實現網絡共享。

3.測試的時候用PING,PING通了之后如果不能正常上網則檢查dns設置等問題。

4.1 局域網互通

1.將樹莓派連接至WIFI,保證可以上網。

2.樹莓派與電腦直連(先不與路由器WAN口連接,方便測試)。電腦有線網卡設置IP為192.168.2.2/24,網關為192.168.2.1。樹莓派有線網卡IP設置為192.168.2.1/24。

3.樹莓派的路由表調整。移除eth0的默認路由表,添加對192.168.2.0/24網絡的eth0轉發規則。如:

route delete default dev eth0
route add -net 192.168.2.0/24 dev eth0
4.此時,局域網配置完成,PING檢查是否互通。

4.2 啟用內核包轉發

其實是很重要的一步,因為內核默認是關閉這個功能的。

相關方式可以在網上查,這里提供一條。

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

4.3 轉發規則

1.在樹莓派端配置,命令如下

sudo iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -o wlan0 -j SNAT --to 192.168.0.112
即,將192.168.2.0/24網絡上的源數據包轉發到wlan0對應192.168.1.112源IP上(描述不准確,就是一條NAT類型的轉發規則)。

2.此時,PING 192.168.0.0/24網絡的IP地址應通過。配置好主機的DNS服務后,外網網絡地址也相應能夠解析訪問。

4.4 連接路由器

1.與連接電腦類似,將樹莓派與路由器WAN口連接。路由器上網方式(也即WAN口的網絡配置)設置為靜態IP,與電腦上設置一致即可。路由器網絡設置為192.168.3.0/24即可正常工作(不沖突即可)。

5 性能

實測CPU占用只能跑到25%(單核占用),不知道是不是方法問題。下行/上行速度最高約 25~30 Mbps。經過測試發現,速率與無線網絡信號強度有關。

附1 /etc/rc.local

以下腳本直接放在啟動腳本或者手動執行均可。如果路由器、樹莓派總共三塊網卡的IP均配置正確的話,電腦連接到路由器的WI-FI,就能PING通外網了。

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

iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -o wlan0 -j SNAT --to 192.168.0.112

route delete default dev eth0
route add -net 192.168.2.0/24 dev eth0

ifconfig eth0 192.168.2.1/24

附2 另一個 /etc/rc.local

找了另一個方案,不依賴於具體的外網地址

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

#iptables -A FORWARD -i wlan0 -j ACCEPT
#iptables -A FORWARD -o wlan0 -j ACCEPT
iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE

route delete default dev eth0
route add -net 192.168.2.0/24 dev eth0

ifconfig eth0 192.168.2.1/24


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM