使用樹莓派中轉校園網(PEAP)給 OpenWrt 路由器
最近新入手了一個 京東無線寶 AX6600(雅典娜) ,刷上了 OpenWrt,本來打算直接橋接校園網使用,結果發現一個很致命的問題:
❌ 校園網使用的是企業級 PEAP 認證,而 OpenWrt 預設只有 wpa-basic,無法完成認證
雖然理論上可以安裝 wpa-supplicant-full,但在這個型號和韌體組合下始終無法穩定連線。
💡 思路轉變:用樹莓派當“中間路由” 正好手頭有一塊 樹莓派 4B ,測試發現:
✅ 樹莓派可以穩定透過 PEAP 認證校園網
❌ 但樹莓派 無法同時作為 Wi-Fi 客戶端 + Wi-Fi 熱點 (硬體 / 驅動限制)
✅ 但可以:Wi-Fi 連線校園網 → 透過有線網口共享給路由器
最終方案如下:
1 2 3 4 5 6 7 校園網 Wi-Fi(PEAP) │ wlan0 樹莓派 4B eth0 │ OpenWrt 路由器(AX6600)
👉 樹莓派只負責認證和轉發,路由功能仍由 OpenWrt 承擔
🧱 一、樹莓派刷機與首次聯網 📀 刷機說明
⚠️ 實際發現:Imager 裡設定的 Wi-Fi 在某些環境下不會自動連線
所以我額外準備了一個“保底方案”。
🛜 備用 Wi-Fi:寫入 boot 分割槽 刷完系統後,在 SD 卡的 boot 分割槽 放入:
/boot/wpa_supplicant.conf
1 2 3 4 5 6 7 8 9 10 country=US ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 network={ ssid="INTJ" psk="1234567890xyz" key_mgmt=WPA-PSK priority=1 }
💡 這裡用的是 手機 / 電腦開的個人熱點 目的只有一個:確保能 SSH 上樹莓派進行後續配置
開機後:
在路由器或熱點裡檢視樹莓派 IP
ssh pi@<ip> 登入
🖥 二、連線校園網(PEAP) 為了圖省事,我直接:
使用 raspi-config 開啟 VNC
透過 VNC 進入桌面
使用 NetworkManager 圖形介面
選擇校園網 Wi-Fi,填寫:
EAP:PEAP
內部認證:MSCHAPv2
使用者名稱 / 密碼
✅ 連線非常穩定 ✅ 不需要手寫 wpa_supplicant.conf
换源:
目前版本是debian13,與網網上換源不同,我這裡是使用ChatGPT的建議/etc/apt/sources.list:
1 2 3 4 5 deb https://mirrors.tuna.tsinghua.edu.cn/debian/ trixie main contrib non-free non-free-firmware deb https://mirrors.tuna.tsinghua.edu.cn/debian/ trixie-updates main contrib non-free non-free-firmware deb https://mirrors.tuna.tsinghua.edu.cn/debian/ trixie-backports main contrib non-free non-free-firmware
🔌 三、將 Wi-Fi 網路共享到網口 1️⃣ 禁用有線網口自動連線 如果不關掉 eth0 的自動連線,樹莓派會:
1 sudo nmcli connection modify "netplan-eth0" connection.autoconnect no
同時確保校園網 Wi-Fi 自動連線、優先順序更高:
1 2 3 nmcli connection modify "Test_wifi" \ connection.autoconnect yes \ connection.autoconnect-priority 10
關閉樹莓派WiFi省電模式,避免斷網:
1 sudo iw dev wlan0 set power_save off
2️⃣ 網路共享指令碼 建立指令碼:
/usr/local/bin/share-campus-net.sh
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 #!/bin/bash set -eecho "[share-campus-net] Waiting for wlan0 to be connected..." while true ; do STATE=$(nmcli -t -f DEVICE,STATE device | grep '^wlan0:' | cut -d: -f2) if [ "$STATE " = "connected" ]; then echo "[share-campus-net] wlan0 is connected" break fi sleep 2 done sleep 3echo "[share-campus-net] Enabling IP forward" sysctl -w net.ipv4.ip_forward=1 echo "[share-campus-net] Configuring eth0" ip addr flush dev eth0 ip addr add 192.168.50.1/24 dev eth0 ip link set eth0 up echo "[share-campus-net] Configuring nftables" nft flush ruleset nft add table ip nat nft 'add chain ip nat POSTROUTING { type nat hook postrouting priority srcnat; }' nft add rule ip nat POSTROUTING oif "wlan0" masquerade nft add table ip filter nft 'add chain ip filter FORWARD { type filter hook forward priority filter; }' nft add rule ip filter FORWARD iif "eth0" oif "wlan0" accept nft add rule ip filter FORWARD iif "wlan0" oif "eth0" ct state established,related accept echo "[share-campus-net] Network sharing is ready ✅"
別忘了加執行許可權:
1 sudo chmod +x /usr/local/bin/share-campus-net.sh
⚙️ 四、設定 systemd 開機自啟 建立服務檔案:
/etc/systemd/system/share-campus-net.service
1 2 3 4 5 6 7 8 9 10 11 12 [Unit] Description =Share campus Wi-Fi to eth0After =NetworkManager.serviceWants =NetworkManager.service[Service] Type =on eshotExecStart =/usr/local/bin/share-campus-net.shRemainAfterExit =yes [Install] WantedBy =multi-user.target
啟用並啟動:
1 2 3 sudo systemctl daemon-reloadsudo systemctl enable share-campus-net.servicesudo systemctl start share-campus-net.service
✅ 最終效果
🟢 樹莓派開機
🟢 自動連線校園網(PEAP)
🟢 等 Wi-Fi 真正就緒後執行共享指令碼
🟢 OpenWrt 路由器透過網線獲得網路
🟢 路由器負責 NAT / DHCP / 防火牆