Raspberry Pi 化身 WiFi 蛋
前文
我們已經改造 Raspberry Pi 使用 4G 數據網路
目標
這次我們要讓 Raspberry Pi 將網絡分享給其他裝置,你可以選:
無線路由器
因為博主很懶惰,不想重複造輪子,所以無線路由器的教材就直接引用 Sixfab 的教學
如果你用的是早於 Raspberry Pi 3 的版本,你大概需要一個 USB 無線網路卡。
備份無線網絡配置
這並不是必須的步驟,不過萬一你日後想恢復原樣,這一步會很有幫助。
1 | $ sudo cp /etc/wpa_supplicant/wpa_supplicant.conf /etc/wpa_supplicant/wpa_supplicant.backup.conf |
配置無線網絡裝置
用以下指令清除舊配置
1 | $ sudo cp /dev/null /etc/wpa_supplicant/wpa_supplicant.conf |
將以下的新配置寫入到 /etc/wpa_supplicant/wpa_supplicant.conf
1 | ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev |
安裝 RaspAP
有一個簡單的安裝精靈 RaspAP 跟著它的步驟去進行安裝
1 | $ wget -q https://git.io/voEUQ -O /tmp/raspap && bash /tmp/raspap -y |
不過由於我本人並沒有試過這個方法,所以如果有任何疑問(例如默認的密碼、管理員界面等)還請前往 Sixfab 的教學 和原文教學(包含故障排除章節)
有線路由器
我自己是用的這個方法,因為感覺會比較安心,始終有線的網絡感覺會比較穩定。這一部分就要使用網絡位址轉換技術(Network Address Translation,NAT)來連接 ppp0
和 eth0
兩個網絡界面(網卡)
我是參考將無線網絡分享到網線教程然後將它改成將 PPP 網絡分享到網線
DHCP 和 DNS 伺服器
你可以選自己喜歡的諸如 isc-dhcp-server
之類比較複雜的,這邊直接用 dnsmasq
比較方便
1 | $ sudo apt-get install dnsmasq |
設置數據包轉發
編輯 /etc/sysctl.conf
裡的 #net.ipv4.ip_forwarding=1
1 | $ sudo nano /etc/sysctl.conf |
移除#
,將這行文字變成net.ipv4.ip_forwarding=1
。這樣下次開機的時候就會啟用數據包轉發。
設置網絡界面
編輯 /etc/network/interfaces
裡的 eth0
部分
1 | allow-hotplug eth0 |
設置 dnsmasq
先備份一下 dnsmasq 原本的設置
1 | $ sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.orig |
然後編輯 /etc/dnsmasq.conf
1 | interface=eth0 # 分享到 eth0 |
關於
bind-interfaces
部分,原本的教學是啟用的,不過我這邊啟用的話會無法分享網絡,所以這邊用#
註釋掉了
設置 NAT
通過防火牆來設置 NAT
1 | $ sudo iptables -t nat -A POSTROUTING -o wwan0 -j MASQUERADE |
設置為永久 NAT
保存設置
1 | $ sudo sh -c "iptables-save > /etc/iptables.ipv4.nat" |
修改 /etc/rc.local
開機自動載入 NAT 設置
1 | # Add this line above exit 0 |
完成
將手提電腦連上 Raspberry Pi 然後……可以了
1 | $ ping 8.8.8.8 |