

魔法上网简明指南
给大忙人看的魔法上网实践指南,聚焦服务获取、客户端选择和订阅优化的最佳实践.
前言#
在当今互联网环境中, 科研所需的 models 和 datasets、开发者常用的 PyPI/npm/DockerHub、个人技术博客等优质资源往往部署于境外服务器. 因此, 掌握魔法上网已成为现代互联网用户 (尤其是程序员) 的必备技能. 一个只会用百度而无法驾驭 Google 的程序员, 其技术视野难免受限.
然而许多用户在尝试过程中常陷入困境: 魔法开启后网络异常中断、流量分流配置复杂难懂、部分软件无法使用代理……
本文旨在提供一份无需理解底层原理、开箱即用的最佳实践指南, 涵盖主流场景的解决方案与避坑要点.
魔法上网原理及服务器获取#
所谓魔法上网, 本质上是通过境外服务器作为数据中转站, 实现全球互联网的无缝访问. 其核心组件可拆解为两个要素:
- 境外服务器: 部署在境外的服务器集群, 负责代理请求与响应回传.
- 客户端: 将魔法协议转化为标准代理协议 (如 SOCKS5/HTTP) , 或通过流量劫持实现透明代理.
其中客户端比较容易获取: 除 iOS 平台基本没有免费客户端以外, Windows/macOS/Android 平台均有开源免费的客户端可供使用.
而服务器的获取则需要一定的成本, 一般来说有两种方式: 机场订阅和自建服务.
- 机场订阅: 购买别人已经搭建好的服务, 直接使用订阅链接. 开箱即用, 节点丰富, 速度一般比自建快; 但存在商家跑路风险, 高峰期可能卡顿, IP 共享可能导致触发网站风控, 而且价格一般比自建贵.
- 自建服务: 自己购买 VPS, 然后部署服务. 价格便宜, 没有跑路风险, 独享 IP; 但需要一定的技术和时间成本, 需要自行维护, 速度一般比机场慢.
建议第一次使用魔法上网的用户先使用机场订阅, 熟悉代理配置流程后再尝试自建服务.
机场推荐#
如今的机场市场竞争非常非常激烈: 价格内卷, 同行 DDoS 攻击已成常态. 在购买机场时一定要注意跑路风险, 不要选择新开的低价机场, 可以先月付观察其稳定性和声誉.
避免广告嫌疑, 这里不做具体推荐. 以下是按一个月约 200GB 流量的机场价格参考:
- 最便宜的「一元机场」: 大约 1CNY/month, 机器一般是白嫖的月抛机, 速度和稳定性都不太好, 随时跑路, 适合「临时查个资料」的极轻度用户.
- 中端机场: 平均价格 15CNY/month, 推荐首次接触魔法的新手以及轻度用户选择.
- 高端机场: 平均价格 30CNY/month, 推荐长期使用魔法上网的用户选择.
- 更高端的机场: 价格可能在 50CNY/month 以上, 不建议除了富哥以外的用户使用.
VPS 自建推荐#
如果你不想使用机场, 可以参考这个教程 ↗在你购买的 VPS 上搭建魔法服务.
VPS 服务商推荐 Racknerd 和 Bandwagon.
也可以考虑白嫖大厂的新用户额度, 例如 AWS, GCP, Azure 等等 (“一元机场”的很多机器都是这么来的).
客户端推荐#
Clash/Mihomo 系列#
作为主流的开源免费方案, Clash (及其继任者 mihomo) 内核在 Windows/macOS/Linux/Android 平台上拥有最完善的生态系统, 包括丰富的规则集、客户端和配置模板.
目前正在维护的 mihomo 客户端有: clash-verge-rev, clash-nyanpasu, FlClash, Mihomo Party 等.
其中首选 Mihomo Party ↗, 更新活跃、界面友好、对于配置文件的覆盖逻辑也相对合理, 在 Windows/macOS/Linux 上都可以使用. 而对于 Android 用户, 选择较少, 推荐使用 FlClash ↗.
Surge#
专为 iOS/macOS 设计的网络调试工具 (really?), 用户群体很大, 生态也很丰富, 但价格偏贵 ($49.99). 据说功能最强大, 稳定性最好, 推荐追求极致的用户使用.
iOS 客户端#
由于 Clash/Mihomo 内核在 iOS 上运行不稳定, 目前没有比较好的客户端. 推荐以下自研内核的客户端:
- Shadowrocket ($2.99): 轻量简洁, 新手友好, 更新及时. 推荐新手使用.
- Loon ($7.99): 界面精美, 脚本生态丰富, 功能均衡. 推荐.
- Quantumult X ($7.99): 曾经的用户不少, 但更新已趋缓.
- Surge ($49.99): 功能强大但价格较高.
SingBox#
比较新的一个内核, 有全平台支持, 但配置文件不与 Clash/Mihomo 兼容, 生态不完善, 有一定的发展潜力. 如果不想当小白鼠建议观望.
总结#
- Windows -> Mihomo Party
- macOS -> Mihomo Party / Surge
- Linux -> Mihomo Party
- Android -> FlClash
- iOS -> Shadowrocket / Loon / Surge
配置文件转换#
虽然可以直接在客户端中导入机场提供的订阅链接来实现魔法上网, 但为了获得更安全、更优雅的使用体验, 建议对订阅链接进行优化和转换. 以下以 Clash/Mihomo 为例介绍配置文件的优化与转换 (其他客户端原理类似).
Clash/Mihomo 的配置文件 ↗是一个 yaml 格式的文件, 包含以下部分:
- 代理节点: 具体的服务器信息.
- 代理组: 节点的逻辑分组.
- 分流规则: 流量转发策略.
- 通用设置: 本地代理端口、TUN 模式等基础配置.
- …
机场提供的订阅链接本质上就是一个指向完整配置文件的 URL. 理论上机场只需要提供代理节点即可 (也可以进一步提供代理组和分流规则), 最终这些配置与你本地客户端的通用配置合并得到最终的 runtime config.
然而现实情况是很多机场的订阅链接会提供一个完整的配置文件, 如果客户端的配置覆盖逻辑不够完善, 可能会覆盖用户的个性化设置 (如代理端口、TUN 模式配置等). 更严重的是, 当 allow-lan: true
时, 可能导致他人直接通过端口使用你的代理, 造成流量被盗用的安全隐患.
此外, 机场默认的分流规则往往不够优化, 可能导致访问国内网站时误走代理, 影响访问速度. 因此, 强烈建议使用转换服务来去除掉机场的配置文件中的多余的配置, 添加/替换更好的分流规则.
为此, 我自建并配置了基于 subconverter ↗ 的转换服务, 使用方法非常简单:
- 使用 URL Encoder ↗ 编码你的订阅/节点链接(如果有多个链接, 用
|
分隔), 例如https://xxx.com/subscribe?token=yyy|ss://xxxxxx
- 复制编码后的链接, 添加到这个 URL
https://sub.he7.dev/sub?target=clash&filename=Helium7&url=
后面, 例如https://sub.he7.dev/sub?target=clash&url=https%3A%2F%2Fxxx.com%2Fsubscribe%3Ftoken%3Dyyy%7Css%3A%2F%2Fxxxxxx
- 这个新的链接就是转换后的订阅链接, 你可以直接在客户端中使用.
如果你觉得麻烦, 这里有一键转换工具:
关于这个转换服务的原理和搭建方法, 可以参考还没写好.
客户端使用#
当你已经获取了订阅链接并下载了客户端后, 便可以开始实际的配置使用了. 以 Mihomo Party 为例, 只需在 Profile Management 界面 (默认位于第二行的卡片) 的输入框中粘贴订阅链接并点击导入, 即可完成基础配置.
节点选择#
在 Proxy Group 界面中, 你可以根据实际需求灵活切换不同的代理节点. 比如, 当你希望使用美国节点时, 可以选择路径 Proxy -> US01 来使用美国节点.
系统代理与虚拟网卡 (TUN) 模式#
系统代理模式能满足大多数日常应用的需求, 但某些软件如 Terminal 和 Telegram 不会自动使用系统代理. 这时候, 你可以考虑使用虚拟网卡 (TUN) 模式.
虚拟网卡模式通过在系统中创建虚拟网络接口, 能够接管所有网络流量并交由 Clash/Mihomo 进行分流处理, 从而解决某些软件的代理问题. 但需要注意的是, 这种侵入性较强的方式可能会影响到 VPN 或游戏加速器等其他网络工具的使用.
Troubleshooting#
- 确保客户端运行在 Rule 模式而非 Global 模式下. Global 模式会导致所有流量都经过代理, 不仅会加速流量消耗, 还会降低访问国内网站的速度.
- 考虑启用开机自启动功能, 这样可以避免每次手动启动的麻烦.
- 确保关闭 Allow LAN 选项, 或者设置访问密码, 以防止他人未经授权使用你的代理服务.