{"id":19893782,"url":"https://github.com/255doesnotexist/ysunetlogin_openwrt","last_synced_at":"2025-10-30T18:46:38.476Z","repository":{"id":256998482,"uuid":"857052302","full_name":"255doesnotexist/ysunetlogin_openwrt","owner":"255doesnotexist","description":"一个久经考验的燕山大学校园网自动认证 OpenWrt 端方案。","archived":false,"fork":false,"pushed_at":"2024-09-13T18:15:02.000Z","size":7,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-09-18T23:08:56.296Z","etag":null,"topics":["netlogin","openwrt","ruijie","yanshan-university"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/255doesnotexist.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-09-13T17:51:55.000Z","updated_at":"2025-09-17T04:45:14.000Z","dependencies_parsed_at":"2024-09-14T08:41:49.578Z","dependency_job_id":"921c0e17-e0cb-4b34-acf5-d95ad5feb483","html_url":"https://github.com/255doesnotexist/ysunetlogin_openwrt","commit_stats":null,"previous_names":["255doesnotexist/ysunetlogin_openwrt"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/255doesnotexist/ysunetlogin_openwrt","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/255doesnotexist%2Fysunetlogin_openwrt","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/255doesnotexist%2Fysunetlogin_openwrt/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/255doesnotexist%2Fysunetlogin_openwrt/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/255doesnotexist%2Fysunetlogin_openwrt/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/255doesnotexist","download_url":"https://codeload.github.com/255doesnotexist/ysunetlogin_openwrt/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/255doesnotexist%2Fysunetlogin_openwrt/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":281862814,"owners_count":26574703,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-30T02:00:06.501Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["netlogin","openwrt","ruijie","yanshan-university"],"created_at":"2024-11-12T18:31:04.266Z","updated_at":"2025-10-30T18:46:38.434Z","avatar_url":"https://github.com/255doesnotexist.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 燕山大学校园网 OpenWrt 自动认证方案\n\n这个项目提供了一个为燕山大学校园网设计的 OpenWrt 自动认证解决方案。它能够自动处理校园网的认证过程，使您的设备保持持续在线状态。\n\n## 功能特性\n\n- 自动进行校园网认证\n- 持续监控网络状态，在需要时重新认证\n- 处理认证失败情况，包括重启网络适配器和路由器\n- 智能处理学校自动断网时间\n- 记录认证过程和结果\n- 自动管理日志文件大小\n- 通过修改 TTL 值来绕过校园网多设备限制\n\n## 安装指南\n\n1. 将 `netlogin.py`、`auth.sh` 和 `daemon.sh` 文件上传到您的 OpenWrt 设备的 `/etc/storage/` 目录。\n\n2. 确保您的 OpenWrt 设备已安装 Python。\n\n3. 给予脚本执行权限：\n   ```\n   chmod +x /etc/storage/auth.sh /etc/storage/daemon.sh\n   ```\n\n## 配置说明\n\n### 配置 auth.sh\n\n1. 打开 `auth.sh` 文件进行编辑：\n   ```\n   vi /etc/storage/auth.sh\n   ```\n\n2. 在文件中找到以下行，并替换相应的信息：\n   ```bash\n   result=$(python \"/etc/storage/netlogin.py\" \"你的学号\" \"你的校园网密码\" \"运营商编号\")\n   ```\n   \n   将 \"你的学号\" 替换为您的学号，\"你的校园网密码\" 替换为您的校园网密码，\"运营商编号\" 替换为相应的数字：\n   - 0: 校园网\n   - 1: 中国移动\n   - 2: 中国联通\n   - 3: 中国电信\n\n3. 保存并退出文件。\n4. 如果您的 OpenWrt 设备重置网络适配器的方式不一致（如 18.06 以上的高版本系统），可能需要您重新编写一部分脚本。\n\n### 配置 daemon.sh\n\n1. 打开 `daemon.sh` 文件进行编辑：\n   ```\n   vi /etc/storage/daemon.sh\n   ```\n\n2. 根据需要调整以下参数：\n   - `start_hour` 和 `end_hour`：设置学校自动断网的时间段（默认配置即已适合燕山大学校园网环境）\n   - `max_attempts`：设置最大重试次数\n\n3. 配置其中含绝对路径的脚本文件路径（可选）：\n   ```shell\n   python /etc/storage/netlogin.py logout\n   /etc/storage/auth.sh # 将此处和上方替换为你认证脚本的位置\n   ```\n\n4. 保存并退出文件。\n\n### 设置定时任务\n\n为了确保脚本定期运行，我们需要设置 cron 任务：\n\n1. 打开 crontab 进行编辑：\n   ```\n   crontab -e\n   ```\n\n2. 添加以下行来每1分钟运行一次 daemon 脚本：\n   ```\n   */1 * * * * /etc/storage/daemon.sh\n   ```\n\n3. 保存并退出。\n\n## 使用方法\n\n配置完成后，`daemon.sh` 脚本将每1分钟自动运行一次，检查网络状态并在需要时进行认证。您可以查看 `/tmp/network_check.log` 文件来检查网络状态和认证结果。\n\n## 脚本说明\n\n### auth.sh\n这个脚本负责执行实际的认证过程。它调用 `netlogin.py` 进行认证，并在失败时重启网络适配器再次尝试。\n\n### daemon.sh\n这个脚本是主要的守护进程，它负责：\n- 检查当前时间是否在学校自动断网时间段内\n- 定期检查网络连接状态\n- 在需要时调用 `auth.sh` 进行认证\n- 如果多次认证失败，将重启路由器\n- 管理日志文件大小\n\n## 故障排除\n\n- 如果遇到认证问题，请检查您的学号、密码和运营商编号是否正确。\n- 确保 `netlogin.py`、`auth.sh` 和 `daemon.sh` 文件都存在且有正确的执行权限。\n- 检查 `/tmp/auth.log` 和 `/tmp/network_check.log` 文件以获取详细的错误信息。\n- 如果脚本在自动断网时间段内未按预期工作，请检查 `daemon.sh` 中的 `start_hour` 和 `end_hour` 设置。\n\n## 贡献\n\n欢迎提交问题报告和改进建议。如果您想贡献代码，请提交 pull request。\n\n## 许可证\n\n本项目采用 GPL（GNU General Public License）开源许可证。您可以自由地使用、修改和分发本软件，但必须保持开源并使用相同的许可证。详细信息请参阅 [GNU GPL v3](https://www.gnu.org/licenses/gpl-3.0.en.html)。\n\n## 免责声明\n\n本项目仅供学习和研究使用。使用本脚本可能违反校园网使用规定，使用者需自行承担风险。作者不对使用本脚本导致的任何问题负责。","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F255doesnotexist%2Fysunetlogin_openwrt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F255doesnotexist%2Fysunetlogin_openwrt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F255doesnotexist%2Fysunetlogin_openwrt/lists"}