外观
免费代理软件是否安全?官方安装包、权限与隐私问题说明
直接结论:免费代理软件的风险分成两层。软件层看安装包从哪里来、拿到了什么权限、更新由谁推送;服务层看流量经过谁的机器、对方保留什么记录。开源让代码可以被审查,前提是你装上的文件确实来自项目官方发布页,并且哈希与签名都对得上。权限决定一次入侵能走多远,TUN 加管理员的组合会把影响范围从单个浏览器扩大到整台设备。本文只给核验方法,不给任何服务背书。
核验日期阅读24 分钟编辑免梯指数编辑部方法说明,不构成对任何具体服务的可用性承诺。
软件风险与服务风险要分开算
问“免费代理软件安全吗”的人,心里通常压着四个不同的问题。安装包有没有被换过。软件会不会偷看本机文件。服务方能不能看到我访问了什么。出了事由谁负责。四个问题的答案来自四个不同的证据源,混在一起问,得到的答案只能是“看情况”。
| 风险层 | 谁在决定 | 典型表现 | 可核验的证据 | 使用者能做的动作 | 数据性质 |
|---|---|---|---|---|---|
| 安装包完整性 | 下载渠道 | 图标相同,进程多一个 | SHA-256 比对,代码签名主体 | 只从官方发布页取文件 | 工程事实 |
| 本机权限 | 操作系统授权模型 | 常驻服务、虚拟网卡、开机启动 | 服务列表、系统扩展、权限清单 | 按需提权,用完撤销 | 平台机制 |
| 传输与出口 | 客户端配置与服务端 | 出口地区与宣称不符 | 出口地址查询、握手日志 | 核对订阅与出口归属 | 可复核事实 |
| 服务端日志 | 服务运营方 | 无法从本机验证 | 隐私条款、主体信息、留存说明 | 不把敏感操作放上去 | 条款值 |
| 账号与支付 | 注册与计费流程 | 强制手机号、自动续费 | 注册页字段、扣费条款 | 最小化提交,隔离身份 | 条款值 |
| 更新通道 | 客户端实现 | 升级后行为变化 | 更新域名、签名校验、发布说明 | 关自动更新,手动核验 | 工程事实 |
这张表最实用的地方在于动作列。第一、二、六行,使用者能直接控制,检查成本只有几分钟。第三、四、五行,使用者只能观察和选择,无法改动对方的实现。换客户端对服务端日志没有影响,换服务也解决不了本机以管理员权限运行的陌生进程。
时间维度同样要分开。安装那一刻的风险集中在下载、校验、授权三步,判据明确。运行期间的风险是分散的,更新、订阅刷新、DNS 变更、系统升级都可能改变行为。只讲安装不讲运行期的教程,容易让人以为装完就结束了。
开源客户端不等于安全服务
这句话经常被误读成“开源没用”。它的准确含义是,开源解决可审查性,服务安全解决运营方的行为,两者不在同一个层面。
源码公开带来三个好处。转发逻辑、DNS 处理、更新检查、日志写入都能在代码里找到对应实现;部分项目提供可复现构建,第三方可以独立编译并比对产物;公开仓库的提交记录构成一条可追溯的维护轨迹。
三个好处都有前提。你装的文件与仓库代码对应,构建过程没有被注入额外步骤,维护者账号与发布流程没有被攻破。任何一个前提不成立,源码可读就只剩下心理安慰的作用。
官方构建与第三方构建
同一个仓库可以产出很多种安装包。项目自己发布的构建,由项目的持续集成流程生成,产物与标签对应。发行版仓库重新编译的构建,由发行版维护者签名,默认配置、依赖版本与补丁可能不同。第三方打包站重新压缩的构建,签名与哈希全部失效,中间加过什么无法判断。三者谈不上安全等级高低,差别在信任对象,出问题时能回溯到谁。
客户端可以指向任何服务器
代理客户端本身不绑定服务。装上客户端之后,导入谁的订阅,流量就经过谁的机器。“我用的软件是开源的”与“我的流量经过可信的机器”之间没有推导关系。
订阅是这条链上最容易更换也最不透明的一环。客户端不验证服务器是否诚实,只验证参数能不能完成握手。握手成功只说明两端讲同一种协议,与对方是否记录、是否转售、是否篡改内容无关。选客户端看来源与权限,选服务看条款与出口,两件事分开评估。
一条请求要经过哪些手
把数据路径画出来,才能知道每个环节的可见范围。下面这张图包含四类路径,正常请求、DNS 查询、订阅拉取与更新检查。多数安全讨论只画第一条,漏掉后三条,而泄漏与后门通常发生在后三条上。
text
本机
[应用请求]
│
├── 读取系统代理 ──► [127.0.0.1:本地端口] ──► [内核进程] ──┐
│ │
└── 不读系统代理 ──► [物理网卡] ──► [本地网络] ──┐ │
│ │
[路由表] ──► [TUN 虚拟网卡] ────────────────────────┼────────┤
│ │
▼ ▼
[入口服务器] ──► [出口 IP] ──► [目标站点]
DNS 路径
[应用] ──► [系统解析器] ──┬──► [运营商 DNS] 明文,本地网络可见
├──► [内核 DNS] fake-ip 或转发,取决于规则
└──► [DoH 或 DoT 端点] 加密,但仍要确认走哪条出口
维护路径
[客户端] ──► [订阅地址] 文本内含账号令牌,拉取即消耗额度
[客户端] ──► [更新地址] 决定下一次运行的是哪份代码图里有四条边值得单独说。系统代理只对读取设置的应用生效,浏览器通常读,命令行工具、部分游戏、自带网络栈的应用经常不读,这些流量会从物理网卡直接出去。TUN 改的是路由表,匹配到的流量进入虚拟网卡,覆盖范围大,代价是权限高,配置出错时整机断网。
DNS 那条边最容易漏。即使所有网页都走了代理,解析请求仍可能从本地发出,运营商能看到你查了哪些域名。维护路径的两条边不承载业务流量,却决定软件未来会做什么,订阅泄露等于账号泄露,更新地址被劫持等于把执行权交出去,两者出问题时都不会有界面提示。
官方发布页要读出什么
一个规范的发布页至少包含五块内容,版本标签、发布说明、资产列表、校验和、签名文件。五块都读懂,才有资格说“我从官方下载的”。
版本标签与资产
标签标识这一次发布,通常包含版本号或日期。发布说明里最该看的是配置字段变化与权限变化,前者会让旧配置失效,后者会改变软件的可见范围。“Latest”标记按时间与标签生成,与稳定性无关,日常使用选正式版本。
资产是编译好的文件,按系统与架构分开,命名通常含项目名、版本、系统、架构、扩展名。容易选错的有三类,把 x86_64 的包装到 ARM 设备上,把桌面包装到服务器上,把安装版当成便携版。架构选错的表现是直接无法启动,或被转译后行为异常。Apple 芯片的 Mac、部分 Windows 平板、多数手机与路由器都属于 ARM,下载前先确认。
校验和回答完整性问题
发布者把安装包的 SHA-256 写进一个文本文件,下载后自己算一遍,两个值一致,说明文件内容与发布者声明的一致。输出是 64 位十六进制字符,比对时注意多余空格与换行。校验和文件必须与安装包来自同一个发布页,从论坛、网盘拿到的校验和没有意义,替换安装包的人可以顺手改掉它。部分项目还会对校验和文件本身签名,这时先验签再比对,攻击者要同时改两个文件才能通过。
校验和只回答完整性,不回答发布者是谁,也不回答代码是否安全。文件在发布者本地被感染,哈希照样是对的。
代码签名回答发布者问题
代码签名把文件内容与一个证书绑定。验证通过,说明文件由持有该私钥的一方签出,且签名之后没有被修改。
| 平台 | 常见形式 | 验证命令 | 需要确认的点 |
|---|---|---|---|
| Windows | Authenticode,可带时间戳 | Get-AuthenticodeSignature 或 signtool verify /pa | 签名主体、证书链、时间戳是否存在 |
| macOS | Developer ID 签名加公证 | codesign -dv --verbose=4、spctl -a -vv | 签名主体、公证票据、是否被 Gatekeeper 接受 |
| Android | APK 签名证书,v2 或 v3 方案 | apksigner verify --print-certs | 证书指纹、签名方案、是否被重签 |
| Linux | GPG 分离签名或仓库元数据签名 | gpg --verify | 公钥指纹、签名者身份 |
Windows 的签名验证要区分两种策略。普通验证会接受由任何受信任根签发的证书,严格验证要求证书链能追到受信任的根,并且用途是代码签名。带时间戳的签名在证书过期后仍然有效,因为签名时刻在有效期内。没有时间戳的签名,证书一过期就会显示无效,这类项目需要重新签名并发布。
macOS 的门槛有两层。第一层是签名,证明应用来自登记的开发者。第二层是公证,苹果会扫描提交的构建并检查已知恶意内容。两层都过,Gatekeeper 才会在首次打开时放行。被 spctl 拒绝的构建需要手动放行,放行等于关掉这层保护。
Android 的签名模型与桌面不同。APK 由开发者自签名,没有公共 CA 参与,系统只校验后续更新是否使用同一把钥匙。证书指纹必须与项目官方公布的指纹比对,一致才能确认没有被人重签。Linux 依赖公钥分发,GPG 签名有效只说明签名者持有对应私钥,还要确认公钥指纹确实来自项目文档。指纹对不上,说明手里这把钥匙不是项目方的那一把。
签名不能证明的事
签名不证明代码没有漏洞。一个签名有效的版本可以有远程执行漏洞,也可以收集它声明之外的数据。签名也不覆盖运行后的行为,装上之后下载的配置、规则集、更新包,都可能来自别的地址。
把签名当成“安全认证”是最常见的误读。它的准确定位是来源证明,与哈希一起回答“这份文件是谁发的、有没有被改过”。这份文件做了什么,要靠权限观察与行为检查来回答。
下载与安装的八步检查
下面八步按执行顺序排列,每步给出判据。全过不代表软件绝对安全,只代表来源、完整性与授权范围都有证据。任何一步不通过,就停在原地处理。
- 确认官网地址。从项目文档或仓库主页进入官网,核对域名拼写与证书。判据是官网给出的仓库链接与你要下载的仓库一致,两处信息能互相印证。
- 从仓库进入 Releases。不要用搜索结果的推广位,也不要用聚合站的内链。判据是地址栏域名属于项目托管平台,页面标题包含仓库名与版本标签。
- 核对资产与设备。系统、架构、安装方式三项都要对上。判据是文件名里的架构标记与设备一致,例如 ARM 设备不要选 x86_64 资产。
- 下载校验和文件。同一个发布页里找
.sha256、checksums.txt或类似文件。判据是校验和文件的发布时间与安装包同批,内容里包含你下载的文件名。 - 计算并比对 SHA-256。Windows 用
Get-FileHash .\file.exe -Algorithm SHA256,macOS 用shasum -a 256 file.dmg,Linux 用sha256sum file.AppImage。判据是 64 位摘要完全一致,不一致就删除重下,重下仍不一致就放弃。 - 验证代码签名。Windows 用
Get-AuthenticodeSignature看主体与时间戳,macOS 用codesign与spctl看签名与公证,Android 用apksigner verify --print-certs看证书指纹。判据是主体与项目公布的一致,证书在签名时刻有效。 - 安装时只给必要权限。安装过程要求关闭杀毒软件、安装根证书、添加浏览器扩展、索取通讯录或无障碍权限,都属于超出功能需要的请求。判据是每一项授权都能对应到一个具体功能,说不清用途就拒绝。
- 首次运行看三件事。本地端口监听在哪个地址,系统代理或路由表被改成什么,客户端向哪些域名发起请求。判据是端口只在回环地址、代理指向本机、外连域名属于项目或订阅方。
八步里有三步最容易被跳过,第四、六、八步。跳过第四步的人常常只比文件大小,而大小可以被伪造成一致。跳过第六步的人把“官网下载”当成结论,忽略了官网也可能被仿冒。跳过第八步的人装完就开始用,错过了唯一一次在低风险状态下观察行为的机会。
留证据与留退路是八步之外的两件事。把发布页地址、版本标签、资产文件名、SHA-256 记进一条笔记并附上日期,怀疑文件被换过时可以复算;保留上一个可用版本的安装包与配置,升级出问题时不至于在现场重新下载。
权限对照表:十个授权位置
权限讨论容易停在“要不要给管理员”这一层。更有用的问题是,这个授权让软件能碰到什么,什么时候生效,怎么撤销,撤销后有没有残留。下表按授权位置列出十种常见情形,其中 Android 无障碍服务一行属于过度授权的对照项。
| 授权位置 | 授权形式 | 授权后可触及的范围 | 生效条件 | 撤销与残留 | 数据性质 |
|---|---|---|---|---|---|
| Windows 系统代理 | 写当前用户注册表键 | 读取该设置的应用的 HTTP 与 HTTPS 请求 | 开启系统代理开关,无需提权 | 关闭开关即恢复,异常退出可能残留 | 平台机制,作用域为单个用户 |
| Windows 服务模式 | 安装并启动系统服务 | 全部用户流量、开机自启、独立于登录会话 | 安装时一次 UAC 确认 | 停止并删除服务,检查启动类型 | 平台机制,服务账户权限高于普通用户 |
| Windows TUN 驱动 | 创建虚拟网卡并改路由 | 路由表匹配到的全部流量,含 UDP | 管理员授权,或由服务代为创建 | 退出时恢复路由,崩溃可能残留默认路由 | 平台机制,依赖 wintun 驱动 |
| macOS 系统代理 | 修改网络服务设置 | 读取系统代理的应用请求,按网络服务生效 | 无需提权,切换网络后需重设 | 关闭即恢复,多网络服务需逐个检查 | 平台机制,作用域为单个网络服务 |
| macOS 系统扩展 | 安装 helper 或网络扩展 | utun 网卡、路由、DNS 配置 | 管理员授权并在系统设置中允许 | 在系统设置中移除扩展,重启后确认 | 平台机制,需开发者签名与公证 |
| Android VpnService | 系统弹窗逐次授权 | 进入隧道的应用流量,可按应用筛选 | 每次建立隧道前确认 | 断开或撤销授权,卸载即清除 | 平台机制,同时仅一个 VPN 应用生效 |
| Android 无障碍服务 | 辅助功能授权 | 读取屏幕内容、模拟点击、观察输入 | 在设置中手动开启,默认关闭 | 关闭开关,检查是否被其他应用重新开启 | 平台机制,代理功能不需要此项 |
| iOS 网络扩展 | 安装 VPN 配置并授权 | 系统级隧道覆盖的流量,范围由配置决定 | 首次连接时确认,可设按需启动 | 删除 VPN 配置,检查描述文件 | 平台机制,需应用具备对应授权 |
| Linux 网络能力 | root 或 CAP_NET_ADMIN | 创建 tun、修改路由与防火墙规则 | 以相应权限启动进程 | 停止进程并收回能力,检查残留规则 | 平台机制,能力可单独授予 |
| OpenWrt 透明代理 | root 权限的插件 | 全屋流量、防火墙、DNS 转发 | 安装插件并启用 | 卸载插件,恢复防火墙与 DNS | 平台机制,影响面覆盖所有接入设备 |
表中“范围”一列描述授权上限,实际能碰到多少还取决于配置。系统代理只影响读取该设置的进程,TUN 里判定直连的域名仍走本地网络。撤销一列描述正常路径,异常退出与强制关机都可能留下残留,所以撤销之后要复查,不能只看界面状态。“数据性质”一列统一标注平台机制,后半句写作用域或限制;作用域以账户或网络服务计,生效条件以授权动作计。权限由系统决定,不由服务条款决定。
权限与功能要对得上
判断一次授权是否合理,用一条简单的对照。系统代理只需要写设置的权限,不需要管理员。TUN 需要创建网卡与改路由,确实需要更高权限。分应用代理需要在 VPN 授权里选择应用,不需要无障碍。DNS 接管在客户端内配置解析策略,不需要安装根证书。
出现下面任意一项,就属于功能与权限不匹配。只做系统代理却要求管理员常驻。只浏览网页却要求无障碍服务。要求安装根证书来解释“加速”。要求读取通讯录、短信、通话记录。要求关闭系统完整性保护或杀毒软件。
根证书这一项要单独说。安装受信任的根证书,等于允许持有对应私钥的一方为任意域名签发证书,HTTPS 的锁标不再有意义。代理软件的正常功能不需要它,个人使用场景也没有对应用途。
四个系统的权限差异
同一个客户端在四个系统上能做的事不一样,差异来自操作系统的授权模型,与开发者偏好无关。理解差异,才能判断某个功能在你的设备上是否可能实现。
Windows:用户级设置与服务级能力
系统代理写在当前用户的注册表里,键位于 Internet Settings 之下,普通用户即可修改,作用域是登录会话,切换用户后不跟随。多数浏览器与部分下载工具读这个键,游戏、命令行工具、自带网络栈的应用经常不读。
TUN 需要创建虚拟网卡并修改路由表,两种实现路径,每次启动请求管理员权限,或安装以服务方式运行的内核。后者体验更好,代价是服务长期存在且权限更高。判断残留看三处,服务列表有没有对应项,启动类型是自动还是手动,路由表有没有指向虚拟网卡的默认路由。
macOS:网络服务、扩展与公证
系统代理按网络服务保存,有线、无线、雷雳网桥各有一套设置,换一个网络可能需要重新确认。命令行工具读环境变量,不读系统代理,这是桌面端常见的“浏览器能开、终端不能”的原因。
TUN 依赖 utun 网卡,需要 helper 或系统扩展。macOS 要求开发者签名、公证、用户在系统设置中明确允许,系统升级后扩展可能被停用。这一层保护减少了静默安装,也带来升级后功能失效的常见故障。
Android:VpnService 是唯一的全量入口
Android 通过 VpnService 建立隧道。应用请求授权时系统弹出连接请求对话框,用户确认后隧道建立。系统同时只允许一个 VPN 应用处于活动状态,第二个应用启动会把第一个顶掉,这解释了“装了两个客户端,只有一个在工作”。
VpnService 授权覆盖流量,不覆盖文件、通讯录、短信。安装 APK 时先看权限清单,再看应用实际申请了什么,两者不一致就值得警惕。分发方式也有影响,官方 Release 的 APK 由开发者自签名,应用商店版本可能被商店重签,升级时签名不一致,系统会拒绝覆盖安装。
iOS:配置描述文件与按需规则
iOS 通过 Network Extension 运行隧道,应用需要具备对应授权,安装时写入一份 VPN 配置。配置可以设置按需启动规则,删除应用不一定删除配置,需要在设置里单独检查。
iOS 不允许侧载,正常设备上装应用只有商店与测试分发两条路,测试分发有名额与有效期。网页上“下载一个描述文件即可使用”的做法,装进去的只是一份配置,没有应用本体。
iOS 的权限粒度比 Android 粗,隧道一旦建立,覆盖范围由配置决定,用户能调的是按需规则与分应用设置,而分应用能力取决于应用是否实现。这也是 iOS 上“某个应用就是不走代理”的常见原因。
系统代理与 TUN 的接管范围
接管范围决定哪些流量进了隧道,权限大小决定出问题时影响多大。两个维度要分开看。
| 维度 | 系统代理 | TUN 虚拟网卡 | 移动端 VPN 权限 |
|---|---|---|---|
| 生效对象 | 读取系统代理设置的应用 | 路由表匹配到的流量 | 进入隧道的应用,可按名单筛选 |
| UDP 覆盖 | 多数不接管 | 可以接管 | 可以接管 |
| DNS 处理 | 取决于应用自身 | 可在内核内统一处理 | 由配置决定 |
| 所需授权 | 写当前用户或网络服务的设置 | 管理员、服务或系统扩展 | 系统弹窗逐次确认 |
| 故障影响 | 单个应用或浏览器 | 整台设备可能断网 | 全部或选定应用断网 |
| 回滚方式 | 关闭开关 | 恢复路由与 DNS | 断开连接或删除配置 |
三种方式的差别体现在覆盖面与代价,速度不是主要变量。系统代理适合临时使用与共用电脑,退出后设置恢复,不留常驻组件。TUN 适合需要接管全部应用、UDP 与统一 DNS 策略的场景,代价是提权与更高的故障影响面。移动端 VPN 权限介于两者之间,覆盖面接近全量,授权由系统弹窗把关。
VPN 权限到底授了什么
Android 的 VpnService 与 iOS 的 Network Extension,授的都是建立系统级隧道的能力。授权之后,进入隧道的流量由客户端处理,客户端因此能看到目标地址、连接时间与流量体积。它看不到应用内部的数据,除非它终止 TLS,而终止 TLS 需要安装根证书。
有人以为给了 VPN 权限,聊天记录就被看光了。实际可见范围是连接元数据与未加密内容,HTTPS 内容仍由应用与站点端到端加密。风险在于元数据已经足够做画像,加上 DNS 查询,能还原出大部分访问行为。
接管范围怎么验证
不用抓包也能做基础验证。开启接管后访问一个显示出口地址的页面,记录结果;关闭接管后再访问一次,比较两次结果。相同说明流量没有进隧道,不同说明生效。再换一个不读取系统代理的应用重复一次,就能看出实际覆盖。DNS 是否走内核,用系统工具查一个域名,再到客户端日志里找对应记录,有记录说明走了内核,没有说明请求从系统解析器直接出去了。
DNS 由谁解析
DNS 发生在连接建立之前,内容是一串域名,路径可能完全绕开代理。
text
应用查 example.com
│
├─ 系统解析器 ──► 运营商 DNS 明文,本地网络可见,可能被污染
├─ 内核 DNS ────► fake-ip 或转发 先给假地址,按域名分流,再解析真实地址
└─ 应用内置 DoH ► 指定端点 加密,但仍要看这条连接走哪个出口三条路径的风险不同。走运营商 DNS,查询内容对本地网络可见,结果可能被篡改,表现是域名解析到错误地址。走内核 DNS,解析策略由配置决定,fake-ip 让域名成为分流依据,代价是部分应用会缓存假地址。走应用内置 DoH,查询被加密,但这条连接可能绕开代理直接发出,运营商仍能看到你连了哪个 DoH 端点。
判断是否存在泄漏,看三件事。系统解析器指向哪里,客户端是否劫持了 53 端口,应用是否自带解析。任何一件没处理,域名就可能从本地漏出去。处理顺序是先统一解析入口,再验证,再处理例外。
订阅来源
订阅是一段文本,里面写着服务器地址、端口、凭据。它同时是配置来源与账号凭据,安全性取决于你从哪里拿到它。
三种常见载荷各有风险。Base64 链接列表可读性差,容易被塞进额外节点。Clash YAML 结构清晰,但可以内嵌规则与脚本字段。sing-box JSON 表达能力强,同样能携带超出预期的字段。共同点是,客户端解析订阅时通常不询问,直接写入配置。
第三方转换站要特别小心。把订阅链接粘到网页上,对方就拿到了完整节点列表与凭据,部分实现还会记录来源地址与时间。需要转换时优先用客户端内置功能,或在本机运行转换工具。
订阅链接按密码管理。截图遮住链接,不要写进公开笔记,不要在多个陌生设备上反复导入。怀疑泄露就重置,重置后检查用量与在线设备。这一条比任何客户端设置都有效。
更新通道与供应链
更新是软件生命周期里权限最大的一步。它决定下一次运行的是哪份代码,而用户通常只看到一个提示。
自动更新的风险集中在三处。更新包从哪里下载,下载后是否验证签名,能不能回滚。三者都清楚,自动更新可以接受。更新地址指向第三方域名、更新包没有签名、无法回滚,出现任意一条就该改成手动更新。
手动更新的代价是时间,收益是可控。每次升级前读发布说明,重点看破坏性变更、权限变化、依赖变化。升级前备份配置,升级后先验证本地端口与一条已知可用的线路。
供应链风险不只来自客户端。规则集、GeoIP 数据库、订阅转换脚本,都可能从远端拉取。一个远程规则集可以改变分流结果,把本该走隧道的域名判成直连。检查方法是看客户端拉取了哪些远程资源,能否改成本地文件。
发布方一侧的风险同样存在。维护者账号被盗后发布带后门版本的事件真实发生过,项目被转让后新维护者改变行为的情况也存在。使用者能做的是固定版本、比对哈希、关注安全公告、延迟几天再升级。
恶意安装包与假官网识别
恶意安装包很少长得可疑。它通常有完整的页面、漂亮的截图、和正版几乎一样的图标,差别在域名的一个字母、下载按钮指向的地址、安装包里多出来的一个进程。
高风险渠道有五类。搜索引擎的付费推广位,落地页可以做得与官网一致。聚合下载站,安装包被重新打包,附带启动器与主页锁定。网盘与聊天群文件,没有发布者身份,任何人都能替换。所谓绿色版、破解版、汉化版,签名与哈希全部失效。浏览器扩展商店的山寨条目同样要防。
识别方法从域名开始。项目文档里给出的官网地址是唯一参照,拼写、连字符数量、顶级域名都要对上。其次是下载链接,把鼠标停在按钮上看最终地址,跳出官方域名就停止。第三看安装要求,索要关闭杀毒软件、安装根证书、添加计划任务,都属于超出功能需要的动作。
装上之后看三处。进程与签名,一个界面加一个内核是常见结构,多出无签名的常驻进程值得查。证书列表,多出未知根证书意味着有人能解密 HTTPS。启动项与服务,代理软件通常只需要一个自启入口。
日志、匿名与不可承诺的边界
客户端日志默认记录目标域名、连接时间、命中规则、出口地址。它对排障有用,对隐私是负担。把日志贴到公开社区前,删掉域名、IP、订阅地址与账号标识,删除不彻底等于公开自己的访问清单。
服务端能记录的东西更多,连接时间、流量体积、并发设备数、认证标识。即使内容加密,这些元数据也足够做时间相关性分析。同一条线路在深夜持续传输,配合目标站点的登录记录,身份关联并不困难。
账号体系会进一步打破匿名。同一个邮箱注册多个服务,同一个支付方式订阅多次,出口 IP 换多少次都无法消除关联。所以边界要写清楚。代理解决可达性与链路机密性,不隐藏“你使用了该服务”这一事实,也不承诺匿名。声称绝对匿名的免费方案不值得信任,因为承诺本身没有可验证的依据。
账号与支付最小化
注册环节是信息收集的第一道口。只填必要字段,能用邮箱就不要手机号。需要手机号接收验证码的服务,通常会把号码与账号长期绑定,后续找回、风控、营销都依赖它。
支付环节看三件事。是否要求绑定支付方式并自动续费,取消路径是否写明,扣费触发条件是否写明。任意一件含糊,就不值得为一次试用交出支付信息。虚拟卡、限额卡、独立账户可以减少暴露,但要注意服务条款是否允许。账号注销后数据保留多久,能否导出与删除,也该在付款前问清,找不到答案时按可能长期保留处理。
决策树:这台设备要不要装
text
要在一台设备上使用免费代理软件
├─ 第 1 层 设备上有没有账号、支付或工作资料
│ ├─ 有
│ │ ├─ 第 2 层 能否只用系统代理,不提权
│ │ │ ├─ 能
│ │ │ │ └─ 第 3 层 安装包来源可否核验
│ │ │ │ ├─ 可核验 ──► 结论 A 系统代理,敏感应用排进直连
│ │ │ │ └─ 不可核验 ► 结论 B 放弃安装,敏感操作换设备
│ │ │ └─ 不能,必须开 TUN
│ │ │ ├─ 第 3 层 能否接受提权与断网风险
│ │ │ │ ├─ 能 ──► 结论 C 提权安装,用完立即撤销
│ │ │ │ └─ 不能 ► 结论 D 换设备,或改用浏览器隔离环境
│ ├─ 没有
│ │ ├─ 第 2 层 设备是否与他人共用
│ │ │ ├─ 共用
│ │ │ │ └─ 第 3 层 能否退出后清理干净
│ │ │ │ ├─ 能 ──► 结论 E 便携版,退出后恢复设置
│ │ │ │ └─ 不能 ► 结论 F 不装,避免留下凭据
│ │ │ └─ 专用 ──► 第 3 层 订阅来源是否明确 ──► 结论 G 可装,仍走八步检查
└─ 已经装过来源不明的版本
└─ 第 2 层 是否以管理员或 root 运行过
├─ 是 ──► 第 3 层 是否登录过重要账号 ──► 结论 H 断网清理,改密并撤销会话
└─ 否 ──► 结论 I 卸载并清理残留,观察一周树的分支按后果排序。设备上有账号与支付资料时,先问能不能不提权,因为提权把单点失败放大到整机。共用设备先问能不能清理,因为凭据残留的代价高于省下的安装时间。已经装过可疑版本的分支放在最后,处理顺序是先断外连再清理。
核验记录与时间成本
核验要留下别人能复做的记录,五项齐全就能复现。
| 记录项 | 采集方式 | 格式或单位 | 复现条件 | 数据性质 |
|---|---|---|---|---|
| 访问时间 | 系统时钟 | 日期,注明时区 | 当天内可复现 | 事实 |
| 发布页地址 | 浏览器地址栏 | URL | 从官方仓库进入 | 事实 |
| 资产文件名 | 发布页 | 文件名,含架构 | 与版本标签对应 | 事实 |
| SHA-256 | 系统命令 | 64 位十六进制 | 下载后立即计算 | 事实 |
| 授权记录 | 系统设置与服务列表 | 项,含启动类型 | 安装后与更新后各看一次 | 平台机制 |
时间成本可以写成公式。
text
月维护时间 = 更新次数 × 单次更新时间 + 故障次数 × 单次排查时间
年化成本 = 月维护时间 × 12 × 时薪按测算假设举一例,每月更新两次、每次十分钟,故障两次、每次二十分钟,合计一小时,时薪按 60 元计算,月成本约 60 元。这是测算,不是实测,也不是报价,换一个时薪结论就变。把时间算进来,才能和付费方案公平比较。核验口径与证据格式的完整说明在资源检测的方法一节。
常见问题
从 GitHub 下载的安装包就一定安全吗
不一定。GitHub 只保证托管,不保证仓库的代码质量与发布流程。判断依据是仓库归属、发布者身份、校验和与签名是否齐全。维护者账号被盗后发布带后门版本的事件真实发生过,下载量与收藏数都不能当作安全证据。仓库转让、项目改名后旧仓库仍在更新,也要留意。
客户端开源,为什么还要担心安全
开源解决的是代码可审查,不解决安装包是否被替换、服务端是否记录、更新通道是否被劫持。你装的文件可能来自第三方打包站,代码与仓库对不上;你导入的订阅可能指向别人的服务器;你的更新可能从非官方地址拉取。三件事都不在源码覆盖范围内。开源的价值在于让核验成为可能,前提是你真的核验了发布物。
系统代理和 TUN 哪个更安全
两者谈不上安全等级高低,差别在接管范围与权限代价。系统代理只影响读取设置的应用,不需要提权,退出后容易恢复。TUN 覆盖路由表匹配到的流量,能接管 UDP,需要管理员、服务或系统扩展,配置出错时整台设备断网。安全性取决于来源是否可核验、权限是否只在需要时存在。
手机授予 VPN 权限,聊天记录会被看到吗
通常不会。VPN 权限让客户端处理进入隧道的流量,它能看到目标地址、连接时间与流量体积,HTTPS 内容仍由应用与站点端到端加密。要看到明文,需要终止 TLS,而那需要安装根证书并让系统信任它。真正的风险在元数据,访问了哪些域名、什么时候访问、传了多少数据,这些足够做画像。把 VPN 权限理解成交出连接清单更准确。
代理软件要求安装根证书,要不要同意
正常代理功能不需要根证书。安装受信任的根证书,等于允许持有对应私钥的一方为任意域名签发证书,HTTPS 的锁标失去意义,客户端可以看到并修改明文内容。只有企业内容审查类场景才会要求这一项,个人使用场景没有对应用途。遇到这类要求,先问它对应哪个功能,答不上来就拒绝,已经装上的到证书列表里删除。
订阅链接泄露会有什么后果
订阅链接通常包含账号令牌,拿到链接就能拉取节点列表并消耗额度,部分服务还会把它与支付信息关联。泄露路径包括截图、剪贴板同步、公开求助帖、云笔记分享、第三方转换站。后果轻则额度被用掉,重则账号被关联到他人的行为。处理方式是尽快重置链接,检查用量与在线设备,之后按密码的标准管理它。
自动更新应该开还是关
看三个条件。更新包从官方地址下载,下载后验证签名,出问题能回滚。三条都满足,自动更新可以接受,它让漏洞修复更及时。任意一条不满足,改成手动更新。手动更新的代价是时间,收益是每次升级前能读发布说明,确认权限与配置字段有没有变化。
怎么判断一个官网是不是假的
三条线索。域名与项目文档里给出的地址是否一致,注意拼写、连字符与顶级域名。下载按钮最终指向哪里,跳出官方域名就停止。安装包能不能用官方公布的哈希与签名核对,对不上就放弃。搜索结果排序不能作为依据,推广位与聚合站常常排在前面。页面做得像不像没有判断价值,域名归属与文件来源才有。
免费代理软件能保证匿名吗
不能。加密解决传输机密性,不隐藏“你使用了该服务”这一事实。服务端能看到连接时间、流量体积与认证标识,出口之后的连接由对方发起。账号体系、支付方式、浏览器指纹都能把多个身份连起来。声称绝对匿名的方案不值得信任,因为承诺没有可验证的依据。需要匿名的人面对的是另一套威胁模型,超出代理软件的能力范围。
已经装过来源不明的版本怎么办
先断网,保留样本与哈希,再结束进程、卸载程序。然后清理残留,服务、计划任务、启动项、浏览器扩展、未知根证书逐项检查,恢复系统代理、hosts 与浏览器主页。接着在另一台设备上修改重要账号的密码,撤销活跃会话,检查登录记录与支付授权。最后做一次完整扫描,确认没有持久化项。清理完再装官方版本,不要在旧环境上覆盖安装。
来源与更新记录
本文的判断来自公开规范、平台开发者文档与开源项目官方仓库,第三方打包站与论坛转帖不作为来源。
| 来源 | 用途 | 链接 |
|---|---|---|
| RFC 1928,SOCKS5 | 本地代理握手 | rfc-editor.org/rfc/rfc1928 |
| RFC 8446,TLS 1.3 | 传输加密与握手字段 | rfc-editor.org/rfc/rfc8446 |
| RFC 1035,DNS | 解析流程与端口 | rfc-editor.org/rfc/rfc1035 |
| RFC 8484,DoH | 加密 DNS 查询 | rfc-editor.org/rfc/rfc8484 |
| Microsoft Authenticode | 代码签名与验证 | learn.microsoft.com |
| Apple 开发者文档 | Network Extension 与公证 | developer.apple.com |
| Android VpnService | 隧道授权与生命周期 | developer.android.com |
| NIST SSDF | 供应链安全实践 | csrc.nist.gov |
| Mihomo、Xray-core、sing-box、v2rayNG 仓库 | 发布页结构与签名方式 | github.com |
| 日期 | 变更 | 说明 |
|---|---|---|
| 2026-10-24 | 初版发布 | 建立两层风险模型、权限对照表与八步检查 |
| 2026-11-07 | 计划复核 | 复核授权说明、仓库链接与签名命令 |
版本号不写进正文,需要时以项目发布页为准。页面里的数字都标注为测算假设。
继续往下走,免费代理软件专题按平台拆开安装与排障,开源客户端与免费服务器的区别解释发布页怎么读,第一次配置的人从新手帮助开始,软件与服务收费的分界见免费梯子。