https://github.com/255doesnotexist/ysunetlogin_openwrt
一个久经考验的燕山大学校园网自动认证 OpenWrt 端方案。
https://github.com/255doesnotexist/ysunetlogin_openwrt
netlogin openwrt ruijie yanshan-university
Last synced: 7 months ago
JSON representation
一个久经考验的燕山大学校园网自动认证 OpenWrt 端方案。
- Host: GitHub
- URL: https://github.com/255doesnotexist/ysunetlogin_openwrt
- Owner: 255doesnotexist
- Created: 2024-09-13T17:51:55.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-09-13T18:15:02.000Z (over 1 year ago)
- Last Synced: 2025-09-18T23:08:56.296Z (9 months ago)
- Topics: netlogin, openwrt, ruijie, yanshan-university
- Language: Python
- Homepage:
- Size: 6.84 KB
- Stars: 5
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 燕山大学校园网 OpenWrt 自动认证方案
这个项目提供了一个为燕山大学校园网设计的 OpenWrt 自动认证解决方案。它能够自动处理校园网的认证过程,使您的设备保持持续在线状态。
## 功能特性
- 自动进行校园网认证
- 持续监控网络状态,在需要时重新认证
- 处理认证失败情况,包括重启网络适配器和路由器
- 智能处理学校自动断网时间
- 记录认证过程和结果
- 自动管理日志文件大小
- 通过修改 TTL 值来绕过校园网多设备限制
## 安装指南
1. 将 `netlogin.py`、`auth.sh` 和 `daemon.sh` 文件上传到您的 OpenWrt 设备的 `/etc/storage/` 目录。
2. 确保您的 OpenWrt 设备已安装 Python。
3. 给予脚本执行权限:
```
chmod +x /etc/storage/auth.sh /etc/storage/daemon.sh
```
## 配置说明
### 配置 auth.sh
1. 打开 `auth.sh` 文件进行编辑:
```
vi /etc/storage/auth.sh
```
2. 在文件中找到以下行,并替换相应的信息:
```bash
result=$(python "/etc/storage/netlogin.py" "你的学号" "你的校园网密码" "运营商编号")
```
将 "你的学号" 替换为您的学号,"你的校园网密码" 替换为您的校园网密码,"运营商编号" 替换为相应的数字:
- 0: 校园网
- 1: 中国移动
- 2: 中国联通
- 3: 中国电信
3. 保存并退出文件。
4. 如果您的 OpenWrt 设备重置网络适配器的方式不一致(如 18.06 以上的高版本系统),可能需要您重新编写一部分脚本。
### 配置 daemon.sh
1. 打开 `daemon.sh` 文件进行编辑:
```
vi /etc/storage/daemon.sh
```
2. 根据需要调整以下参数:
- `start_hour` 和 `end_hour`:设置学校自动断网的时间段(默认配置即已适合燕山大学校园网环境)
- `max_attempts`:设置最大重试次数
3. 配置其中含绝对路径的脚本文件路径(可选):
```shell
python /etc/storage/netlogin.py logout
/etc/storage/auth.sh # 将此处和上方替换为你认证脚本的位置
```
4. 保存并退出文件。
### 设置定时任务
为了确保脚本定期运行,我们需要设置 cron 任务:
1. 打开 crontab 进行编辑:
```
crontab -e
```
2. 添加以下行来每1分钟运行一次 daemon 脚本:
```
*/1 * * * * /etc/storage/daemon.sh
```
3. 保存并退出。
## 使用方法
配置完成后,`daemon.sh` 脚本将每1分钟自动运行一次,检查网络状态并在需要时进行认证。您可以查看 `/tmp/network_check.log` 文件来检查网络状态和认证结果。
## 脚本说明
### auth.sh
这个脚本负责执行实际的认证过程。它调用 `netlogin.py` 进行认证,并在失败时重启网络适配器再次尝试。
### daemon.sh
这个脚本是主要的守护进程,它负责:
- 检查当前时间是否在学校自动断网时间段内
- 定期检查网络连接状态
- 在需要时调用 `auth.sh` 进行认证
- 如果多次认证失败,将重启路由器
- 管理日志文件大小
## 故障排除
- 如果遇到认证问题,请检查您的学号、密码和运营商编号是否正确。
- 确保 `netlogin.py`、`auth.sh` 和 `daemon.sh` 文件都存在且有正确的执行权限。
- 检查 `/tmp/auth.log` 和 `/tmp/network_check.log` 文件以获取详细的错误信息。
- 如果脚本在自动断网时间段内未按预期工作,请检查 `daemon.sh` 中的 `start_hour` 和 `end_hour` 设置。
## 贡献
欢迎提交问题报告和改进建议。如果您想贡献代码,请提交 pull request。
## 许可证
本项目采用 GPL(GNU General Public License)开源许可证。您可以自由地使用、修改和分发本软件,但必须保持开源并使用相同的许可证。详细信息请参阅 [GNU GPL v3](https://www.gnu.org/licenses/gpl-3.0.en.html)。
## 免责声明
本项目仅供学习和研究使用。使用本脚本可能违反校园网使用规定,使用者需自行承担风险。作者不对使用本脚本导致的任何问题负责。