一个用于宁夏大学校园网锐捷认证的 Linux 通用脚本,支持自动重连和多运营商,现已支持OpenWrt。
- 🖥️ 通用性 - 适用于各种 Linux 系统,包括 OpenWrt/LEDE 路由器系统
- 🔄 自动重连 - 智能监测网络状态,断线时自动尝试重新连接
- 🌐 多运营商 - 支持校园网、中国电信、中国联通、中国移动
- 🛑 下线支持 - 提供便捷的下线操作
- 📊 日志管理 - 智能控制日志大小,支持不同级别的日志记录
- 🔌 兼容性 - 提供标准 bash 版本和 OpenWrt 兼容版本
本项目提供两个版本的脚本:
- 标准版本 -
ruijie_nxu.sh:适用于大多数 Linux 系统,基于 bash shell - OpenWrt版本 -
ruijie_nxu_openwrt.sh:专为 OpenWrt/LEDE 系统优化,使用 ash shell(BusyBox)
根据您的系统环境选择合适的版本:
- 如果您在普通 Linux 桌面或服务器上使用,请选择标准版本
- 如果您在 OpenWrt 路由器上使用,请选择 OpenWrt 版本
首先确保脚本具有执行权限:
# 标准Linux系统
sudo chmod 755 ruijie_nxu.sh
# OpenWrt系统
chmod 755 ruijie_nxu_openwrt.sh脚本的基本语法如下:
# 标准Linux系统
sudo ./ruijie_nxu.sh <服务提供商> <用户名> <密码> [action] [log_level]
# OpenWrt系统
./ruijie_nxu_openwrt.sh <服务提供商> <用户名> <密码> [action] [log_level]| 参数 | 说明 | 可选值 | 默认值 |
|---|---|---|---|
| 服务提供商 | 网络服务提供商 | campus(校园网)、chinanet(电信)、chinaunicom(联通)、chinamobile(移动) | 无(必填) |
| 用户名 | 您的上网账号 | - | 无(必填) |
| 密码 | 您的账号密码 | - | 无(必填) |
| action | 执行的操作 | 留空(正常连接)、logout(下线) | 留空 |
| log_level | 日志记录级别 | ERROR、WARN、INFO、DEBUG | INFO |
脚本会每隔 5 秒检测一次网络状态,如果检测到断线会自动尝试重连。
# 连接校园网
sudo ./ruijie_nxu.sh campus username password
# 连接中国电信
sudo ./ruijie_nxu.sh chinanet username password
# 使用DEBUG级别记录详细日志
sudo ./ruijie_nxu.sh campus username password "" DEBUG
# 只记录错误信息
sudo ./ruijie_nxu.sh campus username password "" ERROR
# 注销校园网连接
sudo ./ruijie_nxu.sh campus username password logout# 连接校园网
./ruijie_nxu_openwrt.sh campus username password
# 连接中国电信并使用INFO级别日志
./ruijie_nxu_openwrt.sh chinanet username password "" INFO
# 在后台长期运行(推荐)
/usr/bin/ruijie_nxu_openwrt.sh campus username password "" INFO &
# 注销校园网连接
./ruijie_nxu_openwrt.sh campus username password logout对于BleachWrt等精简版OpenWrt系统:
-
特殊适配:脚本已针对缺少
stat命令的系统进行了适配,可以使用ls -l或wc -c替代获取文件大小 -
后台持续运行:使用以下方式确保脚本在后台持续运行
nohup /usr/bin/ruijie_nxu_openwrt.sh campus username password "" INFO > /dev/null 2>&1 &
-
检查脚本运行状态:
ps | grep ruijie_nxu_openwrt | grep -v grep
脚本支持四种日志级别,可以根据需要进行选择:
| 日志级别 | 说明 | 使用场景 |
|---|---|---|
ERROR |
只显示致命错误信息 | 只关注可能导致程序崩溃的严重问题 |
WARN |
显示警告和错误信息 | 关注可能存在的问题和错误 |
INFO |
显示一般信息、警告和错误 | 日常使用(默认级别) |
DEBUG |
显示所有详细的调试信息 | 故障排查和开发调试 |
脚本使用强制清理机制确保日志文件严格控制在限制范围内:
- 日志默认保存在
/var/log/ruijie_nxu.log(如无法访问,自动切换到/tmp/ruijie_nxu.log) - 日志文件大小严格限制在 1MB 以内,提前在达到80%时触发清理
查看完整的更新日志了解项目的详细变更历史。
您可以将此脚本设置为开机自启,确保网络连接自动恢复:
- 创建服务文件:
sudo nano /etc/systemd/system/ruijie-nxu.service- 添加以下内容:
[Unit]
Description=NXU Ruijie Network Authentication
After=network.target
[Service]
ExecStart=/bin/bash /path/to/ruijie_nxu.sh <服务提供商> <用户名> <密码> "" INFO
Restart=always
RestartSec=30
[Install]
WantedBy=multi-user.target
- 启用并启动服务:
sudo systemctl enable ruijie-nxu.service
sudo systemctl start ruijie-nxu.service- 将脚本上传到路由器,一般放置在
/usr/bin/目录下:
scp ruijie_nxu_openwrt.sh root@192.168.1.1:/usr/bin/- 确保脚本有执行权限:
chmod 755 /usr/bin/ruijie_nxu_openwrt.sh- 编辑
/etc/rc.local文件(在系统启动时运行):
vi /etc/rc.local- 在
exit 0行之前添加:
/usr/bin/ruijie_nxu_openwrt.sh <服务提供商> <用户名> <密码> "" INFO &- 保存文件并退出。这样路由器启动后就会自动运行认证脚本。
欢迎提交问题报告和功能建议!如果您想贡献代码,请提交 Pull Request。
本项目采用 MIT 许可证 - 详情请参见 LICENSE 文件。
-
脚本无法执行 (not found)
- 确认脚本路径正确
ls -la /usr/bin/ruijie_nxu_openwrt.sh - 确认脚本有执行权限
chmod 755 /usr/bin/ruijie_nxu_openwrt.sh - 检查脚本第一行是否为
#!/bin/sh - 直接使用绝对路径运行
/usr/bin/ruijie_nxu_openwrt.sh
- 确认脚本路径正确
-
日志文件权限问题
- 默认日志保存在
/var/log/ruijie_nxu.log,请确保此路径存在且可写 - 如果无法创建目录,脚本会自动切换到
/tmp/ruijie_nxu.log - 如果仍有问题,可手动修改脚本中的
log_file变量到其他可写位置
- 默认日志保存在
-
日志管理问题
- 如果日志文件不断增长没有被清理,检查是否有权限执行
tail和cat命令 - 对于BleachWrt等精简系统:脚本已适配使用
ls -l或wc -c替代stat命令 - 确认
/tmp目录有足够空间创建临时文件 - 手动触发日志清理:
tail -n 400 /var/log/ruijie_nxu.log > /tmp/ruijie.tmp && cat /tmp/ruijie.tmp > /var/log/ruijie_nxu.log - 执行
sync命令确保文件系统缓存被刷新 - 如遇顽固问题,可尝试重命名或删除日志文件:
rm /var/log/ruijie_nxu.log,脚本会自动创建新文件
- 如果日志文件不断增长没有被清理,检查是否有权限执行
-
curl 命令失败
- 确认已安装 curl:
opkg update && opkg install curl - 检查基本网络连接:
ping 8.8.8.8
- 确认已安装 curl:
-
脚本启动后自动退出
- 尝试使用DEBUG级别运行,获取更多信息:
./ruijie_nxu_openwrt.sh <服务提供商> <用户名> <密码> "" DEBUG
- 尝试使用DEBUG级别运行,获取更多信息:
查看脚本输出日志,可以帮助排查问题:
cat /var/log/ruijie_nxu.log或根据您修改后的日志路径查看对应文件。