Skip to content

xunchahaha/OpenWrt-Network-Watchdog

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 

Repository files navigation

OpenWrt-Network-Watchdog

Intelligent Network Watchdog for OpenWrt/Kwrt. Auto-reconnect & Captive Portal Login (Curl) with dynamic IP support. 专为 OpenWrt/Kwrt 打造的网络看门狗,支持断网重连与校园网自动认证。


OpenWrt/Kwrt 校园网自动重连 & 认证看门狗 (Network Watchdog)

🚀 专为校园网环境设计的 OpenWrt/Kwrt 网络保活工具。

解决了校园网环境下的两大痛点:

  1. 断电/断网后无法自动重连:每天早上来电后,路由器不会自动重拨。
  2. IP 变动导致认证失效:重连后获取了新的内网 IP,但认证服务器还记录着旧 IP,导致无法上网。

本工具包含一个Windows 一键生成器,可以根据你抓取的登录数据,自动生成适配动态 IP 的保活脚本。


📂 仓库结构

  • simple_watchdog.sh: [基础版] 仅包含断网重连功能 (无自动认证)。
  • generator_tool/: [进阶版] 包含 Windows 自动脚本生成工具,用于生成带认证功能的脚本。
  • README.md: 使用说明文档。

🛠️ 第一步:选择适合你的方案

你的需求 推荐方案 说明
仅需自动重连 方案 A (基础版) 适用于不需要网页认证,或认证长期有效的环境。
需要自动网页认证 方案 B (进阶版) 适用于每次断网/重启后都需要重新登录校园网账户的环境。

📖 方案 A:基础版 (无自动认证)

如果你的网络只需要执行 ifup 就能恢复,请使用此方案。

  1. 下载仓库中的 simple_watchdog.sh
  2. 使用文本编辑器打开,修改 INTERFACE="wwan" 为你实际的逻辑接口名称。
  3. 上传到路由器 /root/ 目录。
  4. 跳转到 部署与定时任务 章节。

🚀 方案 B:进阶版 (支持 Curl 自动认证)

此方案会自动检测网络,断网后自动重拨,并自动抓取当前最新的 IP/MAC 地址发送认证请求。

1. 抓取认证 Curl 命令 (关键步骤)

我们需要获取你的登录请求数据。

  1. 准备环境:确保你的设备连接到校园网,且处于未认证状态(打开网页会跳转登录页)。
  2. 开启抓包
    • 使用 Chrome 或 Edge 浏览器打开登录页。
    • F12 打开开发者工具,点击顶部 Network (网络) 标签。
    • ⚠️ 重要:勾选 Preserve log (保留日志)
  3. 执行登录:输入账号密码并点击登录。
  4. 复制命令
    • 在 Network 列表中找到登录请求(通常名为 login.do, auth, login 等,类型为 POST)。
    • 右键点击该请求 -> Copy -> Copy as cURL (Bash)
    • (注意:请选择 Bash 格式,不要选 cmd)

2. 生成自动化脚本

由于 Curl 命令包含大量特殊字符,手动修改容易出错。请使用仓库提供的生成器:

  1. 进入 generator_tool 文件夹。
  2. 双击运行 生成自动认证脚本.bat
  3. 按照提示操作:
    • 输入逻辑接口名(如 wwan)。
    • 输入物理接口名(如 phy0-sta0,可通过路由器的 ifconfig 命令查看)。
    • 粘贴 刚才抓取到的 Curl 命令。
    • 输入 Curl 命令中包含的旧内网 IP(用于脚本定位替换位置)。
  4. 工具将在当前目录下生成一个 network_watchdog.sh 文件。

💻 部署与定时任务 (所有方案通用)

无论使用方案 A 还是 B,生成好脚本后,都需要上传到路由器并设置定时运行。

1. 上传脚本

使用 WinSCP 或 SSH 将脚本 (simple_watchdog.sh 或生成的 network_watchdog.sh) 上传到路由器的 /root/ 目录。

2. 设置权限

SSH 登录路由器,赋予脚本执行权限:

# 如果是方案 B
chmod +x /root/network_watchdog.sh

# 如果是方案 A
chmod +x /root/simple_watchdog.sh

3. 添加定时任务 (Crontab)

设置每分钟检查一次网络。

  1. 编辑 Crontab:

    crontab -e
  2. 在文件末尾添加一行(按 i 进入编辑,粘贴后按 Esc 输入 :wq 保存):

    # 每分钟执行一次看门狗
    */1 * * * * /root/network_watchdog.sh

    (注:请将脚本文件名替换为你实际上传的文件名)

  3. 重启 Cron 服务使配置生效:

    /etc/init.d/cron restart

❓ 常见问题 (FAQ)

Q: 怎么知道脚本有没有在工作? A: SSH 连接路由器,输入 logread | grep Network_Watchdog 查看日志。

Q: 为什么认证失败,提示“未获取到 IP”? A: 这是一个常见错误。通常是因为脚本中的 PHYSICAL_IF(物理接口名)填错了。

  • 逻辑接口 (Logical):OpenWrt 后台设置的接口名(如 wwan),用于执行重启命令。
  • 物理接口 (Physical):实际的硬件网卡名(如 phy0-sta0, wlan0, eth1),用于获取 IP 地址。
  • 解决方法:SSH 输入 ifconfig,找到那个显示了校园网内网 IP 的接口名字,填入生成器中。

Q: 脚本里的 223.5.5.5 是什么? A: 这是阿里云的公共 DNS,用于测试网络是否通畅。你也可以改成 114.114.114.1148.8.8.8


📜 免责声明

本工具仅供学习和技术交流使用。请勿用于非法用途,作者不承担任何因使用本工具导致的后果。

About

Intelligent Network Watchdog for OpenWrt/Kwrt. Auto-reconnect & Captive Portal Login (Curl) with dynamic IP support. 专为 OpenWrt/Kwrt 打造的网络看门狗,支持断网重连与校园网自动认证。

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors