Use MM registration/packet-service events as the recovery trigger instead of public egress probes, so re-register heals with zero cellular traffic. Wait for wwan IPv4 after settle, coalesce bursts, and keep ip-monitor + poll as fallbacks.
90 lines
3.7 KiB
Plaintext
90 lines
3.7 KiB
Plaintext
# =============================================================================
|
||
# cellular-proxy — 轻量「代理出口 = 数据流量」
|
||
# 512MB 友好;无 frp;本机/局域网 HTTP+SOCKS;中文 Web 面板
|
||
#
|
||
# 语义(请按这个理解):
|
||
# · 系统默认路由仍可走 WiFi
|
||
# · 只要客户端走本代理,出口一律绑数据网卡(运营商流量)
|
||
# · 不做「部分域名走 WiFi、部分走数据」的应用层分流
|
||
#
|
||
# 复制:cp config/settings.conf.example config/settings.conf
|
||
# =============================================================================
|
||
|
||
# ---- 安装路径 ----
|
||
INSTALL_DIR=/opt/cellular-proxy
|
||
LOG_DIR=/var/log/cellular-proxy
|
||
|
||
# ---- 数据网卡(代理出口强制绑定)----
|
||
# 留空则自动探测 wwan/usb/enx 等;建议手动填准
|
||
CELLULAR_IFACE=
|
||
# 元数据:数据侧当前源 IPv4(generate/watch 会更新;默认不写入 sing-box)
|
||
CELLULAR_SOURCE_IP=
|
||
# 是否把源 IP pin 进 sing-box inet4_bind_address
|
||
# false(默认,推荐):只 bind_interface=网卡名 → WWAN 重拨换私网 IP 时通常无需 regenerate
|
||
# true:额外写 inet4_bind_address(需 watch/rebind 同步,否则易 stale → SOCKS rep=0x01)
|
||
BIND_SOURCE_IP=false
|
||
# 数据网卡不存在则不启动(推荐 true,避免代理静默从 WiFi 出)
|
||
REQUIRE_CELLULAR_IFACE=true
|
||
# 自动探测关键词(逗号分隔)
|
||
CELLULAR_IFACE_PATTERNS=wwan,wwp,usb,enx,ppp,cdc
|
||
# 后台监控(推荐开):网卡改名/掉线/无 IPv4 时自动 rebind;默认开启 long-running watch
|
||
ENABLE_CELLULAR_WATCH=true
|
||
# watch 轮询兜底间隔秒(事件驱动 ip monitor + ModemManager 日志为主)
|
||
WATCH_INTERVAL_SEC=60
|
||
# 以 ModemManager 日志为「重拨/重注册」标准(零公网流量,只读本机 journal)
|
||
# 命中 home→searching / attached→detached / bearer 断连等后:settle → 等 IPv4 → generate/restart
|
||
WATCH_MM_EVENTS=true
|
||
WATCH_MM_UNIT=ModemManager
|
||
# 事件后先等几秒再查数据面(避免刚 detached 就 generate)
|
||
WATCH_MM_SETTLE_SEC=5
|
||
# 等待 wwan IPv4 / MM home 的最长时间
|
||
WATCH_MM_READY_TIMEOUT_SEC=90
|
||
WATCH_MM_READY_POLL_SEC=2
|
||
# 同一轮抖动合并窗口(searching→registering→home 只恢复一次)
|
||
WATCH_MM_COALESCE_SEC=20
|
||
|
||
# ---- 代理监听(局域网其它设备用 0.0.0.0)----
|
||
# mixed = 同一端口同时支持 HTTP 代理 与 SOCKS5
|
||
PROXY_LISTEN_HOST=0.0.0.0
|
||
PROXY_MIXED_PORT=7890
|
||
|
||
# 代理鉴权(局域网强烈建议设置;留空=无鉴权)
|
||
# 7890 代理鉴权(空=无密码)。也可用: cpxy auth --user u --pass p 或面板 UI
|
||
PROXY_USER=
|
||
PROXY_PASS=
|
||
|
||
# ---- 中文 Web 面板(内置静态页 + Clash API)----
|
||
PANEL_LISTEN_HOST=0.0.0.0
|
||
PANEL_PORT=9090
|
||
# 面板密钥(浏览器里填;务必修改)
|
||
PANEL_SECRET=please-change-me
|
||
|
||
# 是否启用内置 DNS(推荐 true;DNS 查询也从数据出口出,减少漏到 WiFi)
|
||
ENABLE_DNS=true
|
||
|
||
# 日志:info / warn / error / debug(低内存建议 warn)
|
||
LOG_LEVEL=warn
|
||
|
||
# ---- sing-box ----
|
||
# auto = 优先 Gitea 预置包(整包/分片),失败再走 GitHub 代理
|
||
# gitea | github | local | auto
|
||
SING_BOX_SOURCE=auto
|
||
SING_BOX_VERSION=1.11.7
|
||
SING_BOX_BIN=
|
||
# Gitea 预置包 Release(publish-binaries-to-gitea.sh 上传)
|
||
GITEA_BASE=https://gitea.chickliu.fun
|
||
GITEA_OWNER=Hermes
|
||
GITEA_REPO=cellular-proxy
|
||
# 默认 tag: bin-v{SING_BOX_VERSION}
|
||
SING_BOX_RELEASE_TAG=
|
||
# 维护端从 GitHub 拉包、安装端回退 GitHub 时使用;置空则直连
|
||
GITHUB_PROXY=https://git.86482425.xyz
|
||
|
||
# 进程内存上限(MB,0=不限制)。512MB 设备建议 64~96
|
||
MEMORY_MAX_MB=96
|
||
|
||
# ---- 验证 ----
|
||
EGRESS_CHECK_URL=https://ifconfig.me
|
||
# 可选:填数据侧公网 IP 后,verify 会严格比对
|
||
EXPECTED_CELLULAR_PUBLIC_IP=
|