该项目是一个命令行客户端,用于在惠尔顿网关上进行上网认证并保持会话在线。程序会自动登录、建立 WebSocket 连接进行保活,并在超时或被踢下线后自动重试。适用于 OpenWRT 等环境作为守护进程长期运行。
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -tags netgo -trimpath -ldflags="-s -w -X main.version=dev" -o wholeton-auth ./cmd/wholeton-auth./wholeton-auth查看版本:
./wholeton-auth -v指定配置文件路径:
./wholeton-auth -c /path/to/wholeton.json程序默认读取 ~/.wholeton 作为配置文件(JSON)。可通过 -c 指定其他路径。如果文件不存在或内容无效,首次运行会进入交互式输入并自动保存到该路径。
示例配置文件见 wholeton.example.json,可直接复制后修改:
cp wholeton.example.json ~/.wholeton
chmod 600 ~/.wholeton字段说明:
host: 惠尔顿网关地址。user: 账号用户名。pass: 账号密码。ip: 客户端 IP。mac: 客户端 MAC 地址。update_secs: 重新登录间隔(秒),例如28800表示 8 小时。
在 /etc/init.d/ 目录下创建 wholeton-auth 文件
touch /etc/init.d/wholeton-auth
chmod +x /etc/init.d/wholeton-auth编辑 vi /etc/init.d/wholeton-auth 内容如下:
#!/bin/sh /etc/rc.common
START=99
STOP=10
USE_PROCD=1
PROG="/root/wholeton/wholeton-auth"
NAME="wholeton-auth"
start_service() {
procd_open_instance
procd_set_param command $PROG
procd_set_param respawn 3600 5 5
procd_set_param stdout 1
procd_set_param stderr 1
procd_set_param term_timeout 10
procd_close_instance
}
stop_service() {
echo "Stopping $NAME"
}控制进程
/etc/init.d/wholeton-auth start
/etc/init.d/wholeton-auth stop查看日志
logread -e wholeton-auth创建服务文件 /etc/systemd/system/wholeton-auth.service:
[Unit]
Description=Wholeton Auth Client
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
ExecStart=/usr/local/bin/wholeton-auth
Restart=always
RestartSec=2
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target启用并启动:
systemctl daemon-reload
systemctl enable --now wholeton-auth查看日志:
journalctl -u wholeton-auth -f