这里讨论的是你这一端的安全:本机是否被他人接管、配置是否被篡改、 隐私是否被本地网络窥探。至于服务端线路的可信度,取决于你选择的提供商。

控制接口暴露

这是风险最高、也最容易被忽略的一项。控制接口可以读取全部连接记录,也能重载任意配置。

配置风险等级说明
127.0.0.1:9090仅本机可访问,推荐
0.0.0.0:9090 + 无密码极高局域网内任何人可控制
0.0.0.0:9090 + 强密码仍需注意网段与防火墙
端口映射到公网极高等同于把控制权交出去
# 正确做法:只监听本地
external-controller: 127.0.0.1:9090
secret: "生成的强随机字符串"

# 生成一个强随机密钥
openssl rand -base64 32

如果需要远程管理:请通过 VPN 或 SSH 隧道访问,而不是把端口直接暴露。若必须走公网,应在前面加一层带 HTTPS 与身份验证的反向代理。

配置文件来源

配置文件里可以定义节点、规则,也可以定义脚本与外部资源引用。 来自不明来源的配置,理论上可以把你所有流量导向指定服务器。

  • 只使用可信来源的订阅,避免在公开场合复制粘贴来路不明的配置;
  • 定期查看 proxies 中是否出现陌生的服务器地址;
  • 留意规则集中是否出现异常的 REJECT 或指向未知组的规则;
  • 对配置文件做版本管理,改动前后可以对比差异。
# 快速统计配置中的服务器地址
grep -E '^\s+server:' config.yaml | sort -u

# 对比两次订阅的差异
diff -u old-config.yaml new-config.yaml | head -n 60

传输层校验

证书校验是防止中间人攻击的基础,不要为了省事而关闭它。

proxies:
  - name: "节点"
    type: trojan
    server: example.com
    port: 443
    password: "xxx"
    sni: example.com
    skip-cert-verify: false     # 必须保持 false
    alpn: ["h2", "http/1.1"]

如果确实遇到自签名证书导致连接失败,正确做法是把证书导入系统信任链, 而不是长期关闭校验。

订阅链接保护

订阅链接等同于账号密码。任何人都可以用它获取你的节点、消耗你的流量,甚至看到你的套餐信息。

  • 不要在公开论坛、截图、群聊中粘贴完整链接;
  • 不要把链接写进会分享出去的配置文件或脚本;
  • 更新订阅时优先使用官方客户端,避免把链接交给第三方转换站点;
  • 怀疑泄露时,立即在服务商处重置 token。

DNS 与流量隐私

  • 使用加密 DNS(DoH / DoT),避免解析记录被本地网络看到;
  • 开启 TUN 模式并配置 dns-hijack,防止程序绕过内核自带 DNS;
  • 关闭不必要的 IPv6,避免部分流量从 IPv6 通道泄漏出去;
  • 不要把 allow-lan 长期开着,除非确实需要共享给其他设备。

具体配置见 DNS 配置与防泄漏实践

加固检查清单

  1. 控制接口只监听 127.0.0.1,并设置了强密码;
  2. 所有节点的 skip-cert-verify 均为 false
  3. 订阅链接未出现在任何公开位置;
  4. 配置文件有备份,且能看出最近一次改动;
  5. DNS 已加密,且抓包看不到明文查询;
  6. allow-lan 按需开启,无需时保持关闭;
  7. 内核版本定期更新,关注安全相关更新说明。

核实 DNS 是否泄漏的具体方法,见 DNS 配置与防泄漏实践

排错 ← 返回教程列表