254 lines
5.1 KiB
Markdown
254 lines
5.1 KiB
Markdown
|
|
# 校园网宽带绕过多设备监测认证(OpenWrt版)
|
|||
|
|
|
|||
|
|
## 简介
|
|||
|
|
|
|||
|
|
本项目用于在 OpenWrt 路由器上实现校园网宽带认证,支持多设备共享上网,绕过校园网的多设备监测限制。
|
|||
|
|
|
|||
|
|
## 功能特性
|
|||
|
|
|
|||
|
|
- ✅ 自动认证登录校园网
|
|||
|
|
- ✅ 支持自定义 MAC 地址(绕过多设备监测)
|
|||
|
|
- ✅ 开机自动启动
|
|||
|
|
- ✅ 断线自动重连
|
|||
|
|
- ✅ 完善的日志记录
|
|||
|
|
- ✅ 外部配置文件支持
|
|||
|
|
|
|||
|
|
## 环境要求
|
|||
|
|
|
|||
|
|
- OpenWrt 系统
|
|||
|
|
- Python 3.x
|
|||
|
|
- Python requests 库
|
|||
|
|
- 网络接口(如 eth1、br-lan 等)
|
|||
|
|
|
|||
|
|
## 安装方法
|
|||
|
|
|
|||
|
|
### 方法一:一键安装(推荐)
|
|||
|
|
|
|||
|
|
1. 将项目文件上传到 OpenWrt 路由器的任意目录(如 `/tmp/drcom`)
|
|||
|
|
|
|||
|
|
2. 进入项目目录:
|
|||
|
|
```bash
|
|||
|
|
cd /tmp/drcom
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
3. 运行安装脚本:
|
|||
|
|
```bash
|
|||
|
|
chmod +x install.sh
|
|||
|
|
./install.sh
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
4. 编辑配置文件:
|
|||
|
|
```bash
|
|||
|
|
vi /etc/drcom/config.json
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
5. 启动服务:
|
|||
|
|
```bash
|
|||
|
|
/etc/init.d/drcom-login start
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 方法二:手动安装
|
|||
|
|
|
|||
|
|
1. 安装依赖:
|
|||
|
|
```bash
|
|||
|
|
opkg update
|
|||
|
|
opkg install python3 python3-light python3-requests
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
2. 创建目录:
|
|||
|
|
```bash
|
|||
|
|
mkdir -p /etc/drcom
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
3. 复制文件:
|
|||
|
|
```bash
|
|||
|
|
cp drcom_login_fixed.py /usr/bin/drcom_login.py
|
|||
|
|
chmod +x /usr/bin/drcom_login.py
|
|||
|
|
cp drcom-login /etc/init.d/drcom-login
|
|||
|
|
chmod +x /etc/init.d/drcom-login
|
|||
|
|
cp config.json /etc/drcom/config.json
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
4. 编辑配置:
|
|||
|
|
```bash
|
|||
|
|
vi /etc/drcom/config.json
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
5. 启用并启动服务:
|
|||
|
|
```bash
|
|||
|
|
/etc/init.d/drcom-login enable
|
|||
|
|
/etc/init.d/drcom-login start
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 配置说明
|
|||
|
|
|
|||
|
|
编辑 `/etc/drcom/config.json` 文件:
|
|||
|
|
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"username": "250450328", // 校园网账号
|
|||
|
|
"password": "your_password", // 校园网密码
|
|||
|
|
"server_ip": "172.17.8.2", // 认证服务器IP
|
|||
|
|
"server_port": 801, // 认证服务器端口
|
|||
|
|
"interface": "eth1", // 网络接口名称
|
|||
|
|
"fixed_mac": "a0:ad:9f:0a:4d:86" // 固定MAC地址(可选,留空则自动获取)
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 如何查找网络接口名称
|
|||
|
|
|
|||
|
|
在路由器上运行以下命令查看网络接口:
|
|||
|
|
```bash
|
|||
|
|
ip addr show
|
|||
|
|
```
|
|||
|
|
或者
|
|||
|
|
```bash
|
|||
|
|
ifconfig
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
找到连接校园网的接口名称(通常是 eth1、wan、br-wan 等)
|
|||
|
|
|
|||
|
|
### 如何设置固定 MAC 地址
|
|||
|
|
|
|||
|
|
固定 MAC 地址可以绕过校园网的多设备数量限制。建议使用:
|
|||
|
|
- 已认证设备的 MAC 地址
|
|||
|
|
- 随机的有效 MAC 地址(格式:XX:XX:XX:XX:XX:XX)
|
|||
|
|
|
|||
|
|
如果不需要固定 MAC,将 `fixed_mac` 留空即可。
|
|||
|
|
|
|||
|
|
## 服务管理
|
|||
|
|
|
|||
|
|
### 启动服务
|
|||
|
|
```bash
|
|||
|
|
/etc/init.d/drcom-login start
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 停止服务
|
|||
|
|
```bash
|
|||
|
|
/etc/init.d/drcom-login stop
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 重启服务
|
|||
|
|
```bash
|
|||
|
|
/etc/init.d/drcom-login restart
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 查看状态
|
|||
|
|
```bash
|
|||
|
|
/etc/init.d/drcom-login status
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 启用开机自启
|
|||
|
|
```bash
|
|||
|
|
/etc/init.d/drcom-login enable
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 禁用开机自启
|
|||
|
|
```bash
|
|||
|
|
/etc/init.d/drcom-login disable
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 日志查看
|
|||
|
|
|
|||
|
|
### 查看最新日志
|
|||
|
|
```bash
|
|||
|
|
tail -f /var/log/drcom-login.log
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 使用日志管理脚本
|
|||
|
|
```bash
|
|||
|
|
chmod +x log-manager.sh
|
|||
|
|
./log-manager.sh view # 查看日志
|
|||
|
|
./log-manager.sh follow # 实时跟踪日志
|
|||
|
|
./log-manager.sh error # 只看错误信息
|
|||
|
|
./log-manager.sh success # 只看成功信息
|
|||
|
|
./log-manager.sh clear # 清空日志
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 卸载方法
|
|||
|
|
|
|||
|
|
运行卸载脚本:
|
|||
|
|
```bash
|
|||
|
|
chmod +x uninstall.sh
|
|||
|
|
./uninstall.sh
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 常见问题
|
|||
|
|
|
|||
|
|
### 1. 认证失败
|
|||
|
|
|
|||
|
|
**原因**:账号密码错误或服务器 IP 错误
|
|||
|
|
|
|||
|
|
**解决**:
|
|||
|
|
- 检查配置文件中的账号密码是否正确
|
|||
|
|
- 使用抓包工具确认认证服务器的真实 IP 和端口
|
|||
|
|
- 查看日志:`tail -f /var/log/drcom-login.log`
|
|||
|
|
|
|||
|
|
### 2. 无法获取 IP 地址
|
|||
|
|
|
|||
|
|
**原因**:网络接口名称错误
|
|||
|
|
|
|||
|
|
**解决**:
|
|||
|
|
- 运行 `ip addr show` 查看正确的接口名称
|
|||
|
|
- 修改配置文件中的 `interface` 参数
|
|||
|
|
|
|||
|
|
### 3. Python 模块缺失
|
|||
|
|
|
|||
|
|
**原因**:requests 库未安装
|
|||
|
|
|
|||
|
|
**解决**:
|
|||
|
|
```bash
|
|||
|
|
opkg install python3-requests
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 4. 断线后不自动重连
|
|||
|
|
|
|||
|
|
**原因**:procd 的 respawn 功能未启用
|
|||
|
|
|
|||
|
|
**解决**:
|
|||
|
|
- 检查 `/etc/init.d/drcom-login` 脚本是否包含 `USE_PROCD=1`
|
|||
|
|
- 重启服务:`/etc/init.d/drcom-login restart`
|
|||
|
|
|
|||
|
|
### 5. 如何获取认证服务器信息
|
|||
|
|
|
|||
|
|
1. 在电脑上使用浏览器的开发者工具(F12)
|
|||
|
|
2. 访问校园网登录页面
|
|||
|
|
3. 查看网络请求中的登录接口
|
|||
|
|
4. 记录服务器 IP、端口和请求参数
|
|||
|
|
|
|||
|
|
## 注意事项
|
|||
|
|
|
|||
|
|
1. ⚠️ 请确保遵守校园网使用规定
|
|||
|
|
2. ⚠️ 建议固定 MAC 地址使用已认证设备的 MAC
|
|||
|
|
3. ⚠️ 定期查看日志确保服务正常运行
|
|||
|
|
4. ⚠️ 如果校园网升级认证系统,可能需要更新脚本
|
|||
|
|
|
|||
|
|
## 文件说明
|
|||
|
|
|
|||
|
|
| 文件名 | 说明 |
|
|||
|
|
|--------|------|
|
|||
|
|
| `drcom_login_fixed.py` | 主程序(认证核心逻辑) |
|
|||
|
|
| `drcom-login` | OpenWrt 启动脚本(init.d) |
|
|||
|
|
| `config.json` | 配置文件模板 |
|
|||
|
|
| `install.sh` | 一键安装脚本 |
|
|||
|
|
| `uninstall.sh` | 卸载脚本 |
|
|||
|
|
| `log-manager.sh` | 日志管理脚本 |
|
|||
|
|
|
|||
|
|
## 许可证
|
|||
|
|
|
|||
|
|
本项目仅供学习和研究使用,请勿用于非法用途。
|
|||
|
|
|
|||
|
|
## 技术支持
|
|||
|
|
|
|||
|
|
如遇到问题,请检查:
|
|||
|
|
1. 日志文件:`/var/log/drcom-login.log`
|
|||
|
|
2. 网络连接状态
|
|||
|
|
3. 配置文件是否正确
|
|||
|
|
|
|||
|
|
## 更新日志
|
|||
|
|
|
|||
|
|
- v1.0 - 初始版本
|
|||
|
|
- 支持基础认证功能
|
|||
|
|
- 支持自定义 MAC 地址
|
|||
|
|
- 支持开机自启和断线重连
|