这里讨论的是你这一端的安全:本机是否被他人接管、配置是否被篡改、 隐私是否被本地网络窥探。至于服务端线路的可信度,取决于你选择的提供商。
控制接口暴露
这是风险最高、也最容易被忽略的一项。控制接口可以读取全部连接记录,也能重载任意配置。
| 配置 | 风险等级 | 说明 |
|---|---|---|
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 配置与防泄漏实践。
加固检查清单
- 控制接口只监听
127.0.0.1,并设置了强密码; - 所有节点的
skip-cert-verify均为false; - 订阅链接未出现在任何公开位置;
- 配置文件有备份,且能看出最近一次改动;
- DNS 已加密,且抓包看不到明文查询;
allow-lan按需开启,无需时保持关闭;- 内核版本定期更新,关注安全相关更新说明。
核实 DNS 是否泄漏的具体方法,见 DNS 配置与防泄漏实践。
排错
← 返回教程列表