Skip to content

网络代理运维与排查

网络代理的稳定性取决于整条链路,而不是单个进程。运维时要同时关注配置、凭据、证书、日志、连接数、带宽、DNS、客户端兼容和远端出口可达性。

运行维护对象

对象维护内容风险
配置服务端配置、订阅模板、规则集改错后批量客户端不可用
凭据密码、token、UUID、订阅 URL泄露后被滥用
证书TLS 证书、私钥、续期任务过期后客户端连接失败
日志Nginx、代理核心、Docker、systemd 日志磁盘被打满或泄露敏感信息
资源CPU、内存、连接数、带宽、磁盘高峰期不稳定
客户端内核版本、订阅格式、规则语法升级后字段不兼容

日志增长

代理服务的日志容易增长,尤其是访问日志、连接日志、容器标准输出和错误重试日志。生产环境至少要做三类限制:

Docker 日志限制

yaml
logging:
  driver: json-file
  options:
    max-size: "20m"
    max-file: "5"

这能限制单个容器 JSON 日志体积,避免长时间运行后占满磁盘。

systemd journal 限制

ini
SystemMaxUse=1G
MaxRetentionSec=14day

这些配置通常写在 journald 配置中,用来限制 journal 总占用和保留时间。

Nginx 日志轮转

如果入口网关使用 Nginx,访问日志和错误日志要进入 logrotate。保留周期取决于排障需要,不应无限保留。

日志里不要记录完整订阅 URL、密钥、token、敏感请求参数。需要排障时,可以临时提高日志级别,问题结束后恢复。

容量关注点

指标说明异常表现
CPU加密、解密、TLS、压缩会消耗 CPU延迟升高、连接超时
内存连接表、缓冲区、日志队列占用内存进程被系统杀掉
连接数长连接和并发请求都会占连接新连接失败
带宽出口网络决定实际吞吐下载慢、抖动大
磁盘日志和备份持续增长服务异常、系统不可写

容量评估不要只看空闲内存和磁盘。代理服务更常见的瓶颈是带宽、连接数、CPU 加密开销和日志策略。

凭据轮换

凭据包括节点密码、UUID、订阅 URL token、管理后台账号、入口网关证书私钥等。轮换时要避免一次性让所有客户端失效。

推荐流程:

  1. 新增一套凭据,不立即删除旧凭据。
  2. 生成新订阅。
  3. 通知客户端更新订阅。
  4. 观察旧凭据连接数下降。
  5. 删除旧凭据。
  6. 保存变更记录和回滚方案。

如果协议或服务端不支持多凭据并存,就要安排维护窗口,并提前说明客户端需要更新。

证书维护

使用 TLS 入口时,证书是关键依赖。要维护:

  • 证书申请方式。
  • 自动续期任务。
  • 续期后 reload 入口服务。
  • 证书文件权限。
  • 线上证书到期时间监控。

只看证书文件更新,不代表入口服务已经加载新证书。续期后应验证线上端口实际返回的证书。

版本升级

升级前先看三个兼容性:

  1. 客户端内核是否还支持旧订阅字段。
  2. 服务端协议实现是否有破坏性变更。
  3. 入口网关配置语法是否变化。

升级建议分层进行:先升级一个测试客户端,再升级服务端旁路节点,最后推广到生产订阅。不要同时升级客户端、服务端、规则和 DNS。

排查闭环

按层排查能减少猜测:

层级观察点常用判断
应用接入Clash Verge 连接页是否出现记录没记录说明流量没进客户端
规则命中连接记录命中的规则和策略组命中错误说明 rules 或 DNS 有问题
节点连接延迟测试和内核日志失败说明客户端到远端有问题
入口网关访问日志和错误日志502/超时说明网关到后端异常
远端服务认证日志、连接日志认证失败说明凭据或协议不一致
出口访问远端到目标的连通性失败说明出口网络或目标限制

每次只改一个变量。比如只切换节点、只改 DNS、只改规则,避免同时修改导致无法定位原因。

常见现象

订阅能更新,但节点不可用

控制面正常,数据面异常。检查节点参数、端口、密码、TLS、SNI、传输路径、服务端进程和入口网关。

节点可用,但某个应用不走代理

先看连接页。如果没有连接记录,检查系统代理、TUN、应用自身代理设置。如果有连接记录,检查规则命中和 DNS。

全局模式可用,规则模式不可用

通常是规则或 DNS 问题。检查目标域名是否命中预期规则,是否被提前命中直连规则,是否在解析阶段丢失了域名信息。

浏览器可用,命令行不可用

命令行工具不一定读取系统代理。可以为单个命令设置:

bash
HTTPS_PROXY=http://127.0.0.1:7890 curl https://api.example.org

如果有内网地址,要同时配置 NO_PROXY,避免内部服务被错误送进代理。

一段时间后服务变慢

检查连接数、CPU、带宽和日志。长连接堆积、日志写满、自动测速目标异常、DNS 失败重试都会造成服务变慢。

变更检查清单

上线或改配置前检查:

  • 是否备份当前配置。
  • 是否没有把真实凭据写入公开文件。
  • 是否能回滚订阅。
  • 是否验证服务端配置语法。
  • 是否验证客户端能更新订阅。
  • 是否验证一个直连目标和一个代理目标。
  • 是否观察日志没有持续错误。

总结

网络代理运维的核心是分层观察。先确认流量进客户端,再确认规则命中,再确认节点连接,再确认远端出口。日志、凭据、证书和容量是长期稳定的底座,任何一项失控都会把“偶发问题”变成“系统性故障”。

别急,先让缓存热一下。