抱歉,您的瀏覽器無法訪問本站
本頁面需要瀏覽器支持(啟用)JavaScript
了解詳情 >

最近新入手了一個 京東無線寶 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 承擔


🧱 一、樹莓派刷機與首次聯網

📀 刷機說明

  • 系統:Raspberry Pi OS(官方,帶桌面)

  • 刷寫工具:Raspberry Pi Imager

  • 在 Imager 裡開啟:

    • SSH
    • 初始 Wi-Fi(⚠️ 這個後面不一定生效)

⚠️ 實際發現:
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 上樹莓派進行後續配置

開機後:

  1. 在路由器或熱點裡檢視樹莓派 IP
  2. ssh pi@<ip> 登入

🖥 二、連線校園網(PEAP)

為了圖省事,我直接:

  1. 使用 raspi-config 開啟 VNC

  2. 透過 VNC 進入桌面

  3. 使用 NetworkManager 圖形介面

  4. 選擇校園網 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

# deb https://security.debian.org/debian-security trixie-security main contrib non-free non-free-firmware

🔌 三、將 Wi-Fi 網路共享到網口

1️⃣ 禁用有線網口自動連線

如果不關掉 eth0 的自動連線,樹莓派會:

  • 開機優先等有線
  • 導致 Wi-Fi 連線 非常慢
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 -e

echo "[share-campus-net] Waiting for wlan0 to be connected..."

# 等待 wlan0 真正連線成功
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

# 確保 IP / 路由就緒
sleep 3

echo "[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 eth0
After=NetworkManager.service
Wants=NetworkManager.service

[Service]
Type=oneshot
ExecStart=/usr/local/bin/share-campus-net.sh
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

啟用並啟動:

1
2
3
sudo systemctl daemon-reload
sudo systemctl enable share-campus-net.service
sudo systemctl start share-campus-net.service

✅ 最終效果

  • 🟢 樹莓派開機
  • 🟢 自動連線校園網(PEAP)
  • 🟢 等 Wi-Fi 真正就緒後執行共享指令碼
  • 🟢 OpenWrt 路由器透過網線獲得網路
  • 🟢 路由器負責 NAT / DHCP / 防火牆

評論



Powered by Hexo | Theme keep Volantis

本站總訪問量 總訪客數 🌎