Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CMCC - 光猫监控与服务拉起工具

用于监测光猫网络状态,并在光猫上自动拉起自定义服务端的工具。

功能说明

监控光猫的网络连接状态,当检测到网络恢复或故障时,通过 Telnet 连接到光猫执行自定义命令,用于启动或恢复光猫上的服务端程序。

运行逻辑

启动程序
  ↓
解析命令行参数
  ↓
加载配置文件 (config.json)
  ↓
立即执行一次恢复流程
  ├─ 1. 等待网络在线
  ├─ 2. 启用光猫 Telnet 服务
  └─ 3. 通过 Telnet 执行自定义命令
  ↓
判断是否为守护模式 (-d)
  ├─ 否 → 退出程序
  └─ 是 → 进入监控循环
       ↓
  根据 --mode 选择监控方式
  ├─ NET 模式:监控网络接口状态变化 (每 1 秒)
  │   └─ 检测到接口 UP → 执行恢复流程
  ├─ DHCP 模式:检测 DHCP 服务器响应 (每 10 秒)
  │   └─ DHCP 检查失败 → 执行恢复流程
  └─ TELNET 模式:检测 Telnet 端口连通性 (每 10 秒)
      └─ 连续 3 次连接失败 → 执行恢复流程

命令行参数

./cmcc [选项]

选项:
  --iface <IFACE>      监控的网络接口 (默认: eth0)
  -d, --daemon         守护进程模式,持续监控
  -c, --config <PATH>  配置文件路径 (默认: config.json)
  --mode <MODE>        监控模式: net, dhcp, telnet (默认: net)
  --debug              启用详细调试日志
  -h, --help           显示帮助信息
  -V, --version        显示版本信息

参数说明

  • --iface: 指定要监控的网络接口名称(如 eth0, enp0s3 等)
  • -d, --daemon: 启用后程序将持续运行并监控,否则只执行一次恢复后退出
  • -c, --config: 指定配置文件路径,包含光猫地址、账号密码和执行命令
  • --mode: 选择监控模式
    • net: 监控网络接口状态文件 /sys/class/net/{iface}/operstate
    • dhcp: 发送 DHCP 请求检测 DHCP 服务器响应
    • telnet: 尝试连接 Telnet 端口 (23) 检测服务可用性
  • --debug: 输出详细的调试日志,便于排查问题

配置文件

创建 config.json 文件:

{
  "address": "192.168.1.1",
  "user": "root",
  "pass": "admin",
  "cmd": "echo hello",
  "telnet_url": "http://192.168.1.1/cgi-bin/telnetenable.cgi"
}

配置项说明

字段 说明
address 光猫的 IP 地址
user Telnet 登录用户名
pass Telnet 登录密码
cmd 要在光猫上执行的命令(如启动服务端程序)
telnet_url 启用光猫 Telnet 服务的 HTTP 接口地址

使用示例

一次性执行

只执行一次恢复流程后退出:

./cmcc -c config.json

持续监控模式

监控网络接口状态

./cmcc -d --mode net --iface eth0 -c config.json

当网络接口从 down 变为 up 时,自动在光猫上拉起服务。

监控 DHCP 服务

./cmcc -d --mode dhcp --iface eth0 -c config.json

每 10 秒检查 DHCP 服务器,如果无响应则执行恢复。

监控 Telnet 服务

./cmcc -d --mode telnet -c config.json

每 10 秒检查光猫 Telnet 端口,连续失败 3 次后执行恢复。

调试模式

./cmcc -d --mode net --iface eth0 -c config.json --debug

工作流程

恢复流程详细步骤

  1. 网络在线检查: 循环检测公网连通性,确保本机可以访问互联网
  2. 启用 Telnet: 通过 HTTP 请求 telnet_url 启用光猫的 Telnet 服务
  3. Telnet 连接: 连接到光猫的 23 端口
  4. 协议协商: 处理 Telnet IAC 协议协商
  5. 登录认证: 发送用户名和密码完成登录
  6. 执行命令: 执行配置文件中的 cmd 命令
  7. 退出连接: 命令执行完成后关闭连接

监控模式对比

模式 检测频率 触发条件 适用场景
NET 1 秒 接口状态变为 UP 监测物理链路恢复
DHCP 10 秒 DHCP 服务器无响应 监测网络协议层
TELNET 10 秒 连续 3 次端口不通 监测 Telnet 服务可用性

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages