抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)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 / 防火墙

2026.4.18 补充:
最近遇到一个奇怪的状况:断电重启后,树莓派本身可以上网,但 OpenWrt 路由器却没有网络。经过排查,发现如果开机后手动执行:

1
2
3
sudo ip addr flush dev eth0
sudo ip addr add 192.168.50.1/24 dev eth0
sudo ip link set eth0 up

路由器就能正常上网。推测原因是 share-campus-net.service 启动得太快,即便设定了延迟启动,也依然会立即运行,导致网口还未完全就绪就开始共享,从而出现路由器无网的问题。

进一步检查发现,即使将 share-campus-net.service 禁用(disable),它仍会立即被触发。原因是它依赖于 dnsmasq.service。后来的解法是改用 crontab 定时任务延迟启动

  1. 先禁用 dnsmasq 和 share-campus-net.service 开机自启:
1
2
sudo systemctl disable dnsmasq.service
sudo systemctl disable share-campus-net.service
  1. 编辑 root crontab:
1
sudo crontab -e
  1. 增加延迟启动指令(例如延迟 5 分钟):
1
@reboot sleep 300 && systemctl start dnsmasq.service

这样设定后,树莓派启动并连接校园网后,路由器就能正常获取网络。

另外,如果需要确保 dnsmasq.service 在共享服务之后启动,可修改 systemd override:

1
sudo nano /etc/systemd/system/dnsmasq.service.d/override.conf

内容如下:

1
2
3
[Unit]
After=share-campus-net.service
Wants=share-campus-net.service

这样可以保证服务启动顺序正确,避免网络初始化时的冲突。

评论



Powered by Hexo | Theme keep Volantis

本站总访问量 总访客数 🌎