Loon
Loon 是一款功能全面的 iOS 代理客户端,由开发者 @Loon0x00 开发,在 App Store 售价 2.99 美元。它以丰富的插件生态、完善的脚本支持和直观的图形界面著称,在 iOS 代理工具中处于中高端定位——功能深度介于 Shadowrocket 和 Quantumult X 之间,兼顾了易用性和可定制性。
基本信息
| 项目 | 信息 |
|---|---|
| 平台 | iOS 12.0 及以上 / iPadOS |
| 价格 | $2.99(一次性购买) |
| 开发者 | Loon0x00 |
| App Store | 下载地址 |
| 内核 | 自有内核 |
| 更新频率 | 较活跃,跟进新协议支持 |
关于购买
Loon 仅在非中国区 App Store 上架,需要切换到其他地区(如美国、香港)的 Apple ID 才能搜索和购买。
核心特性
- 协议支持全面:支持 Shadowsocks、VMess、VLESS(含 Reality)、Trojan、Hysteria 2、TUIC、WireGuard 等主流协议
- 插件系统(Plugin):Loon 独有的插件机制,可以一键安装社区分享的功能模块,包含节点订阅解析、脚本规则、重写规则等,使用门槛低于手动编写脚本
- 脚本支持:支持 JavaScript 脚本对 HTTP/HTTPS 请求和响应进行处理,适合有进阶定制需求的用户
- 定时任务:支持通过 Cron 表达式设置定时脚本任务,无需手动触发
- 多订阅节点管理:支持同时管理多个机场订阅,节点可按订阅来源分组显示
- MitM(HTTPS 解密):搭配脚本和重写规则,对 HTTPS 流量进行处理
- TUN 透明代理:通过系统 VPN 接口接管全部流量,实现真正的透明代理
- DNS 模块:支持 DoH、DoT,以及 FakeIP 和直连两种 DNS 工作模式
协议支持
| 协议 | 支持状态 | 备注 |
|---|---|---|
| Shadowsocks(AEAD) | 支持 | — |
| Shadowsocks 2022 | 支持 | 需要较新版本 |
| VMess | 支持 | 支持 WebSocket、gRPC 等传输层 |
| VLESS | 支持 | 支持 Reality、XTLS-Vision |
| Trojan | 支持 | — |
| Hysteria 2 | 支持 | — |
| TUIC v5 | 支持 | 需要较新版本 |
| AnyTLS | 支持(TestFlight 版) | 需要通过 TestFlight 安装测试版 |
| ShadowTLS v3 | 支持 | — |
| WireGuard | 支持 | — |
| SOCKS5 | 支持 | — |
| HTTP | 支持 | — |
| SSH | 不支持 | — |
| NaiveProxy | 不支持 | — |
安装与初始设置
购买和安装
- 切换到非中国区 Apple ID(在"设置"→"App Store"→"Apple ID"中切换)
- 在 App Store 搜索"Loon",找到对应图标的应用(注意区分同名应用)
- 支付 $2.99 完成购买
- 安装完成后可切换回中国区 Apple ID,已购买的应用不受影响
首次启动
首次打开 Loon 时,系统会弹出创建 VPN 配置的权限请求,点击"允许"并通过 Face ID / Touch ID 验证。VPN 权限是 Loon 接管系统流量的必要条件。
界面概览
Loon 的主界面采用底部标签栏布局:
| 标签 | 功能 |
|---|---|
| 首页(Home) | 代理开关、当前节点状态、流量统计 |
| 代理(Proxies) | 查看和管理节点及策略组 |
| 规则(Rules) | 查看当前加载的分流规则 |
| 插件(Plugins) | 管理已安装的插件 |
| 设置(Settings) | 全局配置和高级设置 |
添加代理节点
方法一:添加订阅(机场用户推荐)
- 进入"设置"→"代理"→"节点订阅"
- 点击右上角"+"
- 填写订阅 URL(机场提供的订阅链接)
- 填写备注名称(如机场名称)
- 点击"保存"
Loon 会自动下载并解析订阅,节点会以订阅名称为分组显示在代理列表中。
支持的订阅格式:
- 通用 Base64 URI 列表
- Loon 专属格式(最完整)
- Clash / Clash Meta 格式(部分兼容)
- Surge 格式(部分兼容)
建议优先使用机场提供的 Loon 格式订阅。如果机场没有专门的 Loon 格式,可以尝试通用格式,或使用 Sub-Converter 转换。
设置自动更新:
在订阅设置中开启"自动更新",并设置更新间隔(建议 24 小时),确保节点列表保持最新。
方法二:扫描二维码导入
在"代理"页面点击右上角"+",选择"扫码",扫描包含节点 URI 的二维码直接导入单个节点。
方法三:从剪贴板导入
将节点 URI(如 vless://...、ss://...)复制到剪贴板,然后在"代理"页面点击"+",选择"从剪贴板导入"。
方法四:手动添加节点
进入"设置"→"代理",点击"+"手动填写节点参数。Loon 提供了图形化的节点配置界面,无需手写配置文件语法。
手动添加 VLESS + Reality 节点示例:
- 进入"设置"→"代理"→"+"
- 类型选择"VLESS"
- 填写以下参数:
- 地址:服务器 IP
- 端口:443
- UUID:你的 UUID
- 传输方式:TCP
- 流控(Flow):xtls-rprx-vision
- 加密方式:none
- 安全性:reality
- 公钥(Public Key):Reality 公钥
- Short ID:配置的 shortId
- SNI:如 www.apple.com
- 指纹(Fingerprint):chrome
- 填写节点名称后保存
手动添加 Hysteria 2 节点示例:
- 类型选择"Hysteria 2"
- 填写地址、端口、密码、SNI
- 上行/下行带宽根据实际线路填写(单位 Mbps)
- 保存
策略组配置
Loon 支持创建多种策略组(Policy Group)来组织节点:
策略组类型
| 类型 | 说明 |
|---|---|
| 选择(Select) | 手动从列表中选择一个出站 |
| URL 测试(URL Test) | 自动选择延迟最低的节点 |
| 可用性(Fallback) | 使用第一个可用的节点,前一个不可用时自动切换 |
| 负载均衡(Load Balance) | 将请求分散到多个节点 |
| SSID | 根据当前 Wi-Fi 的 SSID 自动切换出站 |
在图形界面中创建策略组
- 进入"设置"→"策略组"
- 点击"+"创建新的策略组
- 选择策略类型
- 将所需节点添加到策略组中(可直接选择订阅分组,动态包含订阅中的所有节点)
- 配置测速 URL 和间隔(对于 URL Test 和 Fallback 类型)
节点筛选(Filter)
Loon 支持在策略组中通过正则表达式筛选节点:
在策略组设置中,可以填写正则表达式来匹配节点名称,只有名称符合表达式的节点才会被加入该组。例如:
香港|HK|Hong Kong:匹配所有香港节点日本|JP|Japan:匹配所有日本节点^(?!.*?(倍率|高倍)).*:排除名称中包含"倍率"或"高倍"的节点
这个功能使得从大量节点中快速组建地区分组变得非常简便。
配置文件
Loon 使用纯文本格式的配置文件,结构类似 Surge,由多个 [Section] 块组成。
完整配置文件结构
[General]
# 全局设置
[Proxy]
# 手动添加的代理节点
[Remote Proxy]
# 远程订阅(机场)
[Proxy Group]
# 策略组定义
[Rule]
# 分流规则
[Remote Rule]
# 远程规则集
[Rewrite]
# URL 重写规则
[Remote Rewrite]
# 远程重写规则集
[Script]
# 脚本配置
[Plugin]
# 插件配置
[MITM]
# HTTPS 解密配置
[General] 块常用配置
[General]
# HTTP 代理端口
proxy-port = 7890
# SOCKS5 代理端口
socks5-port = 7891
# 是否允许局域网其他设备使用代理
allow-wifi-access = false
# Wi-Fi 接入代理端口(当 allow-wifi-access = true 时生效)
wifi-proxy-port = 7890
wifi-socks5-proxy-port = 7891
# 测速 URL
proxy-test-url = http://www.gstatic.com/generate_204
# 连接测速超时时间(秒)
test-timeout = 5
# 解析域名的 IP 策略
interface-mode = auto
# DNS 服务器
dns-server = system, 119.29.29.29, 223.5.5.5
# 加密 DNS
doh-server = https://doh.pub/dns-query, https://dns.alidns.com/dns-query
# Fake IP DNS 范围
fake-ip-range = 198.18.0.1/16
# 跳过代理的地址
skip-proxy = 192.168.0.0/24, 10.0.0.0/8, 172.16.0.0/12, 127.0.0.1, localhost, *.local
# 不包含路由的地址(TUN 模式)
tun-excluded-routes = 192.168.0.0/16, 10.0.0.0/8, 172.16.0.0/12
[Proxy] 块节点语法
手动节点的配置语法示例:
Shadowsocks:
SS节点 = Shadowsocks, your.server.ip, 8388, aes-256-gcm, your-password
VMess + WebSocket + TLS:
VMess节点 = vmess, your.domain.com, 443, aes-128-gcm, your-uuid, transport=ws, path=/ws-path, host=your.domain.com, tls=true
VLESS + Reality:
VLESS节点 = VLESS, your.server.ip, 443, uuid=your-uuid, transport=tcp, flow=xtls-rprx-vision, over-tls=true, tls-name=www.apple.com, reality-public-key=your-public-key, reality-short-id=a1b2c3d4, client-fingerprint=chrome
Trojan:
Trojan节点 = trojan, your.domain.com, 443, your-password, over-tls=true, tls-name=your.domain.com, skip-cert-verify=false
Hysteria 2:
HY2节点 = Hysteria2, your.domain.com, 443, password=your-password, sni=your.domain.com, up-mmbps=100, down-mmbps=300
WireGuard:
WG节点 = wireguard, 162.159.192.1, 2408, self-ip=172.16.0.2, private-key=wg-private-key, peer-public-key=bmXOC+F1FxEMF9dyiK2H5/1SUtzH0JuVo51h2wPfgyo=, mtu=1280
[Remote Proxy] 订阅配置
[Remote Proxy]
机场名称 = https://your-airport.com/subscribe?token=xxx, parser-enable = true
parser-enable = true 启用内置解析器,可以解析多种格式的订阅内容。
[Proxy Group] 策略组配置
[Proxy Group]
# 手动选择总代理
Proxy = select, 自动测速, HK组, JP组, US组, DIRECT
# 自动测速(从所有订阅节点中选延迟最低的)
自动测速 = url-test, node-count = -1, url = http://www.gstatic.com/generate_204, interval = 300, tolerance = 50
# 香港节点组(通过正则筛选)
HK组 = url-test, node-filter = 香港|HK|Hong Kong, url = http://www.gstatic.com/generate_204, interval = 300
# 日本节点组
JP组 = url-test, node-filter = 日本|JP|Japan, url = http://www.gstatic.com/generate_204, interval = 300
# 流媒体专用组
流媒体 = select, node-filter = 美国|US|United States
node-count = -1 表示包含所有可用节点;node-filter 通过正则匹配节点名称,自动动态包含符合条件的节点。
[Rule] 分流规则
[Rule]
# 广告过滤
DOMAIN-SUFFIX, googlesyndication.com, REJECT
DOMAIN-KEYWORD, adservice, REJECT
# 局域网直连
IP-CIDR, 192.168.0.0/16, DIRECT, no-resolve
IP-CIDR, 10.0.0.0/8, DIRECT, no-resolve
IP-CIDR, 172.16.0.0/12, DIRECT, no-resolve
# 国内域名直连
DOMAIN-SUFFIX, cn, DIRECT
DOMAIN-SUFFIX, baidu.com, DIRECT
DOMAIN-SUFFIX, qq.com, DIRECT
DOMAIN-SUFFIX, taobao.com, DIRECT
# 国外域名代理
DOMAIN-SUFFIX, google.com, Proxy
DOMAIN-SUFFIX, youtube.com, Proxy
DOMAIN-SUFFIX, github.com, Proxy
# GeoIP 规则
GEOIP, CN, DIRECT
# 默认规则
FINAL, Proxy
[Remote Rule] 远程规则集
[Remote Rule]
# 广告过滤规则集
https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Loon/Advertising/Advertising.list, policy=REJECT, tag=广告过滤, enabled=true
# 国内直连规则集
https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Loon/China/China.list, policy=DIRECT, tag=国内直连, enabled=true
# 代理规则集
https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Loon/Proxy/Proxy.list, policy=Proxy, tag=代理, enabled=true
推荐规则集来源:blackmatrix7/ios_rule_script 提供了专门针对 Loon 格式的完整规则集。
插件系统
插件(Plugin)是 Loon 最具特色的功能之一,也是它区别于其他 iOS 客户端的重要差异点。
什么是插件
插件是一种将订阅规则、重写规则、脚本、MitM 主机名等多种配置打包在一起的复合模块。安装一个插件,相当于同时添加了该插件包含的所有配置,而无需手动逐条添加。这大大降低了使用进阶功能的门槛。
典型的插件用途:
- 广告过滤(包含 MitM + 重写规则)
- 解锁特定流媒体服务的地区限制
- 净化特定 App 的广告和追踪请求
- 提供特定服务的优化配置
安装插件
- 进入"插件"标签页
- 点击右上角"+"
- 在 URL 字段填入插件的
.plugin文件链接 - 或者在 Safari 中打开插件链接,选择用 Loon 打开后自动安装
推荐的插件来源:
- blackmatrix7 的 Loon 插件集:涵盖广告过滤、流媒体解锁等常见需求
- DivineEngine 插件集
- fmz200 插件集
关于插件的安全风险
安装插件时,该插件可能包含 MitM 主机名配置和脚本。安装插件前,请确认来源可信。恶意插件可能通过 MitM 解密和脚本处理截获你的敏感请求。只安装来自知名社区贡献者的插件,不要安装来源不明的插件链接。
插件的启用和禁用
安装的插件可以随时在"插件"标签页中单独启用或禁用,无需删除。临时不需要某个插件时,直接点击开关关闭即可。
插件格式
Loon 的插件是一个纯文本文件,扩展名为 .plugin,内容包含 [Rewrite]、[Script]、[MITM] 等配置块的组合:
#!name = 示例插件
#!desc = 这是一个示例插件的描述
#!openUrl = https://example.com
[Rule]
DOMAIN-SUFFIX, example-ad.com, REJECT
[Rewrite]
^https://api\.example\.com/ads url reject
[Script]
http-response ^https://api\.example\.com/user/info script-path=modify.js, requires-body=true, tag=修改用户信息
[MITM]
hostname = api.example.com
#!name 和 #!desc 是插件的元信息,会显示在 Loon 的插件列表中。
DNS 配置
推荐的 DNS 配置
在配置文件的 [General] 块中:
[General]
# 系统 DNS(作为 fallback)
dns-server = system
# 国内加密 DNS
doh-server = https://doh.pub/dns-query, https://dns.alidns.com/dns-query
# 使用 Fake IP 模式
fake-ip-addr = 198.18.0.1/16
# 跳过 Fake IP 解析的域名
fake-ip-filter = *.lan, localhost, *.local, *.msftconnecttest.com, *.msftncsi.com, time.*.apple.com, +.ntp.org
或者在"设置"→"DNS"中通过图形界面配置:
- 打开"启用 Fake IP"
- 在 DNS 服务器中添加
https://doh.pub/dns-query和https://dns.alidns.com/dns-query - 在境外 DNS 中添加
https://1.1.1.1/dns-query - 在"Fake IP Filter"中添加不需要 Fake IP 的域名
Fake IP 模式说明
Loon 的 Fake IP 模式工作原理与 Mihomo 类似:为每个域名返回一个假 IP,当应用使用假 IP 发起连接时,Loon 根据真实域名进行规则匹配,走代理的流量在节点端进行 DNS 解析,走直连的流量在本地进行真实 DNS 解析。
这种模式有效防止 DNS 泄露,并提升了规则匹配的精度。
脚本功能
Loon 支持通过 JavaScript 脚本对 HTTP/HTTPS 请求进行处理,功能与 Quantumult X 类似,但在某些细节上有所不同。
脚本类型
| 类型 | 说明 |
|---|---|
http-request | 在请求发送前触发,可修改请求头和请求体 |
http-response | 在响应到达时触发,可修改响应头和响应体 |
script-idle | 定时任务,无触发 URL,由 Cron 调度 |
network-changed | 网络切换时触发 |
脚本配置语法
在配置文件的 [Script] 块中:
[Script]
# HTTP 响应脚本
http-response ^https://api\.example\.com/user script-path=scripts/modify_user.js, requires-body=true, timeout=60, tag=修改用户响应
# HTTP 请求脚本
http-request ^https://api\.example\.com/config script-path=scripts/add_header.js, timeout=10, tag=添加请求头
# 定时任务(每天凌晨 1 点执行)
cron "0 1 * * *" script-path=scripts/daily_task.js, tag=每日任务
脚本文件的存储位置:
脚本文件通过 iCloud Drive 或远程 URL 引用。将 .js 文件上传到 iCloud Drive 的 Loon 文件夹,或直接使用 HTTPS 远程链接。
脚本示例
// http-response 脚本示例
// 修改 JSON 响应体中的 vip 字段
const body = $response.body;
let json;
try {
json = JSON.parse(body);
} catch (e) {
$done({});
return;
}
if (json && json.data && json.data.user) {
json.data.user.vip = true;
json.data.user.vip_level = 1;
}
$done({ body: JSON.stringify(json) });
在 [Script] 中引用该脚本并配合 MitM 使用:
[Script]
http-response ^https://api\.example\.com/user/profile script-path=https://raw.githubusercontent.com/example/scripts/main/modify.js, requires-body=true, tag=修改用户信息
[MITM]
hostname = api.example.com
关于 requires-body
requires-body=true 表示该脚本需要访问响应体内容。处理 JSON 数据时通常需要开启此选项。注意,开启后 Loon 需要先缓冲完整的响应体再执行脚本,对于大响应体可能有轻微延迟影响。
MitM 配置
要使脚本和重写规则能处理 HTTPS 流量,需要先配置并启用 MitM。
生成和安装根证书
- 进入"设置"→"HTTPS 解密"(或 MitM)
- 点击"生成新证书"
- 点击"安装证书",系统会打开 Safari 引导下载证书描述文件
- 在 iOS "设置"→"通用"→"VPN 与设备管理"中安装描述文件
- 前往 iOS "设置"→"通用"→"关于本机"→"证书信任设置",开启对该证书的完全信任
- 回到 Loon 开启 MitM 总开关
配置 MitM 主机名
在配置文件的 [MITM] 块中指定需要解密的域名:
[MITM]
ca-p12 = 证书的Base64数据
ca-passphrase = 证书密码
# 需要解密的域名,支持通配符
hostname = api.example.com, *.example.net, -*.apple.com
- 前缀表示排除该域名,即使在通配符范围内也不解密。例如 *.example.com, -secure.example.com 表示解密 example.com 的所有子域名,但排除 secure.example.com。
MitM 安全注意事项
安装 MitM 根证书后,Loon 理论上可以解密所有已配置域名的 HTTPS 流量。请务必:
- 只对确实需要处理的域名启用 MitM
- 不使用脚本时可以关闭 MitM 总开关
- 定期清理不再使用的 MitM 域名
- 不安装来源不明的插件所携带的 MitM 配置
重写规则
本地重写规则
[Rewrite]
# 拒绝广告请求
^https?://ad\.example\.com reject
# 302 跳转
^https://old\.example\.com https://new.example.com 302
# 修改 URL 中的参数(正则替换)
^https://api\.example\.com/v1/(.*) https://api.example.com/v2/$1
# 通过脚本处理请求体
^https://api\.example\.com/data url script-response-body scripts/modify.js
重写动作类型
| 动作 | 说明 |
|---|---|
reject | 拒绝请求,返回 200 空响应 |
reject-200 | 拒绝请求,返回 200 状态码 |
reject-img | 拒绝请求,返回 1x1 透明图片 |
reject-dict | 拒绝请求,返回空 JSON 对象 |
302 | 临时重定向 |
307 | 临时重定向(保留方法) |
url script-request-body | 用脚本处理请求体 |
url script-response-body | 用脚本处理响应体 |
url script-echo-response | 用脚本生成完整响应 |
header-add | 添加请求头字段 |
header-del | 删除请求头字段 |
header-replace | 替换请求头字段 |
定时任务
[Script]
# Cron 表达式格式:分 时 日 月 星期
# 每天上午 8:30 执行签到
cron "30 8 * * *" script-path=https://raw.githubusercontent.com/example/scripts/main/checkin.js, tag=每日签到, enabled=true
# 每小时刷新一次数据
cron "0 * * * *" script-path=scripts/refresh.js, tag=每小时刷新, enabled=true
# 每周一凌晨 2 点执行
cron "0 2 * * 1" script-path=scripts/weekly_task.js, tag=每周任务, enabled=true
定时任务脚本在 iOS 后台执行,受系统后台刷新机制约束,执行时间可能不完全精确。
完整配置文件模板
以下是一个可直接使用的 Loon 基础配置文件模板,适合使用机场订阅的用户:
[General]
proxy-port = 7890
socks5-port = 7891
allow-wifi-access = false
dns-server = system, 119.29.29.29, 223.5.5.5
doh-server = https://doh.pub/dns-query
fake-ip-addr = 198.18.0.1/16
fake-ip-filter = *.lan, localhost, *.local, *.msftconnecttest.com, *.msftncsi.com, time.*.apple.com, +.ntp.org
skip-proxy = 192.168.0.0/24, 10.0.0.0/8, 172.16.0.0/12, 127.0.0.1, localhost, *.local
tun-excluded-routes = 192.168.0.0/16, 10.0.0.0/8, 172.16.0.0/12
proxy-test-url = http://www.gstatic.com/generate_204
test-timeout = 5
[Proxy]
# 此处添加手动节点,机场用户通常无需手动填写
[Remote Proxy]
# 机场订阅,请将下方 URL 替换为实际订阅链接
# 我的机场 = https://your-airport.com/subscribe?token=xxx, parser-enable=true
[Proxy Group]
Proxy = select, 自动选择, DIRECT
自动选择 = url-test, node-count = -1, url = http://www.gstatic.com/generate_204, interval = 300, tolerance = 50
Final = select, Proxy, DIRECT
[Rule]
IP-CIDR, 192.168.0.0/16, DIRECT, no-resolve
IP-CIDR, 10.0.0.0/8, DIRECT, no-resolve
IP-CIDR, 172.16.0.0/12, DIRECT, no-resolve
IP-CIDR, 127.0.0.0/8, DIRECT, no-resolve
GEOIP, CN, DIRECT
FINAL, Final
[Remote Rule]
https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Loon/Advertising/Advertising.list, policy=REJECT, tag=广告过滤, enabled=true
https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Loon/China/China.list, policy=DIRECT, tag=国内直连, enabled=true
https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Loon/Proxy/Proxy.list, policy=Proxy, tag=代理, enabled=true
[Rewrite]
[Remote Rewrite]
https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rewrite/Loon/Advertising/Advertising.conf, tag=广告重写, enabled=true
[Script]
[Plugin]
[MITM]
导入配置文件
方法一:通过 URL 导入
- 进入"设置"→"配置文件"
- 点击"下载配置文件"
- 填入配置文件的直链 URL
- 下载完成后选择"使用"
方法二:通过 iCloud Drive 导入
将 .conf 格式的配置文件上传到 iCloud Drive,然后在"设置"→"配置文件"中选择"从 iCloud Drive 导入"。
方法三:通过 Safari 打开链接
在 Safari 中访问配置文件直链,如果文件格式正确,iOS 会提示使用 Loon 打开,点击后自动导入配置。
代理模式
在主界面顶部可以快速切换三种代理模式:
| 模式 | 说明 |
|---|---|
| 规则(Rule) | 按配置文件中的规则分流,日常使用推荐 |
| 全局(Global) | 所有流量均走当前选中的节点 |
| 直连(Direct) | 所有流量直连,代理暂停 |
与其他 iOS 客户端的对比
| 对比维度 | Loon | Shadowrocket | Quantumult X | Stash | Surge |
|---|---|---|---|---|---|
| 价格 | $2.99 | $2.99 | $7.99 | 免费(内购) | 较贵 |
| VLESS + Reality | 支持 | 支持 | 不支持 | 支持 | 支持 |
| Hysteria 2 | 支持 | 支持 | 不支持 | 支持 | 支持 |
| AnyTLS | 支持(TF版) | 暂不支持 | 不支持 | 支持(TF版) | 支持 |
| 插件系统 | 有(特色功能) | 无 | 无 | 无 | 模块(功能相似) |
| 脚本能力 | 强 | 中 | 极强 | 有限 | 极强 |
| 定时任务 | 支持 | 不支持 | 支持 | 不支持 | 支持 |
| 节点 Filter | 支持(正则) | 有限 | 支持(正则) | 有限 | 支持 |
| 机场订阅兼容 | 高 | 高 | 中(需QX格式) | 高(Clash格式) | 高 |
| 入门难度 | 中 | 低 | 高 | 低 | 高 |
| macOS 支持 | 否 | 否 | 否 | 是 | 是 |
| 适合人群 | 进阶iOS用户 | 入门用户 | 脚本爱好者 | Clash用户 | 专业用户 |
选择 Loon 的理由:
- 价格和 Shadowrocket 相同($2.99),但功能更丰富
- 需要使用插件来实现广告净化、流媒体解锁等功能,且希望安装简便(一键安装插件优于手动配置脚本)
- 需要定时任务功能(签到等)
- 需要通过正则表达式对订阅节点进行灵活筛选和分组
- 希望比 Shadowrocket 拥有更强的分流规则控制,但不需要 QX 那样极致的脚本能力
不选择 Loon 的情形:
- 只需要简单代理功能(Shadowrocket 更简单)
- 主要使用 Clash Meta 格式订阅(Stash 兼容性更好)
- 需要极致的脚本能力(Quantumult X 或 Surge)
- 同时需要 macOS 支持(只有 Stash 和 Surge 两端均支持)
常见使用技巧
节点延迟批量测试
在"代理"标签页,点击右上角的刷新/测速图标,可以对当前订阅下的所有节点同时进行延迟测试,快速找出可用且延迟最低的节点。
使用 Widget 快速切换
为 Loon 添加 iOS 主屏幕 Widget,可以在不打开应用的情况下快速查看当前状态和切换代理模式。在 iOS 小组件编辑界面搜索"Loon"即可添加。
查看实时连接日志
在主界面下方的"请求"区域,可以实时看到所有连接记录。点击某条记录可以查看详细信息,包括该请求匹配了哪条规则、走了哪个出站、延迟是多少。
导出分享节点
长按"代理"列表中的某个节点,可以生成节点 URI 或二维码,方便在其他设备上导入或分享给他人。
使用 SSID 策略组自动切换
创建一个 SSID 类型的策略组,可以根据当前连接的 Wi-Fi 名称自动选择不同的出站:
[Proxy Group]
SSID策略 = ssid, default=Proxy, cellular=Proxy, "HomeWiFi"=DIRECT, "WorkWiFi"=Proxy
default 是未知 SSID 时的默认出站,cellular 是蜂窝数据时的出站,引号内的是特定 SSID 名称对应的出站。
常见问题排查
Q:订阅导入成功但节点数量很少,部分节点没有显示?
可能原因:
- 节点使用了 Loon 不支持的协议(如 NaiveProxy),这类节点会被跳过
- 订阅格式不完全兼容,尝试启用
parser-enable=true选项使用内置解析器 - 如果机场提供了专门的 Loon 格式订阅链接,优先使用该链接
Q:开启代理后,国内应用速度变慢?
说明部分国内流量被错误路由到代理。解决方法:
- 切换到"规则"模式而非"全局"模式
- 在"请求"日志中找到该应用的请求,查看匹配了哪条规则
- 添加对应的直连规则,或在远程规则集中找到包含该域名的国内直连规则集并启用
Q:插件安装后需要重启代理才能生效吗?
通常需要重新开关代理(关闭后重新打开),使插件中的规则、重写配置和 MitM 主机名完全生效。如果插件包含脚本,还需要确认 MitM 总开关已开启且证书已正确安装。
Q:脚本执行失败,日志中提示"Script Error"?
排查步骤:
- 确认相关域名已在 MitM 的 hostname 中,且 MitM 已启用
- 检查脚本 URL 是否可访问(尝试在浏览器中直接打开脚本 URL)
- 查看详细的错误信息(在日志中点击具体的错误记录)
- 确认脚本中的 API 调用(如
$response.body)与触发类型匹配(response 脚本使用$response,request 脚本使用$request)
Q:定时任务配置正确,但不按时执行?
iOS 的后台执行受系统调度影响,定时任务无法保证精确执行。建议检查:
- 在"设置"→"通用"→"后台 App 刷新"中,确认 Loon 已被允许后台刷新
- 关闭低电量模式(低电量模式会严格限制后台活动)
- 不要在 iOS 任务管理器中频繁"划走"Loon,这会导致系统将其标记为频繁被终止的应用,从而减少后台刷新机会
Q:Loon 和 Quantumult X 脚本兼容吗?
Loon 和 QX 都使用 JavaScript 脚本,但 API 有差异:
- Loon 使用
$loon和$persistentStore等 API - QX 使用
$request、$response、$prefs等 API
多数社区脚本会同时兼容 Loon 和 QX(在脚本内部判断运行环境后调用对应 API),但也有部分脚本只针对某一客户端编写。使用前请查看脚本说明,确认其支持 Loon。
Q:如何在不重新导入配置的情况下修改已有订阅的设置(如更新间隔)?
在"设置"→"代理"中,找到已添加的订阅,左滑选择"编辑",即可修改订阅的 URL、备注、更新间隔等参数,无需删除重新添加。
Q:配置文件可以从 Surge 格式直接迁移到 Loon 吗?
Loon 和 Surge 的配置格式有相当大的相似性,但并不完全兼容。简单的规则部分(DOMAIN-SUFFIX、IP-CIDR、GEOIP 等)通常可以直接使用;但节点语法、策略组语法、脚本 API 等存在差异,需要手动调整。不建议将 Surge 配置直接在 Loon 中使用,应按照 Loon 的格式重新配置。
安全注意事项
- 只从 App Store 官方渠道下载 Loon,不要安装非官方来源的修改版本
- 谨慎安装第三方插件:插件可以包含 MitM 主机名和脚本,恶意插件可能截获敏感请求。只安装来自知名社区贡献者和可信仓库的插件
- 不要随意信任来源不明的 MitM 根证书
- 保护好订阅链接,订阅链接是你的服务凭证,不要上传到公开仓库或分享给不信任的人
- 定期检查已安装的 VPN 描述文件和证书,确保没有未经授权的配置
相关资源
- Loon App Store 页面:apps.apple.com/app/loon/id1373567447
- blackmatrix7 Loon 规则集和插件:github.com/blackmatrix7/ios_rule_script
- fmz200 Loon 插件集:github.com/fmz200/wool_scripts
延伸阅读
- Shadowrocket — 价格相同但更简单易用的 iOS 入门选择
- Quantumult X — 脚本能力更强但价格更高的进阶选择
- Stash — 基于 Mihomo 内核,Clash Meta 格式订阅兼容性最佳
- Surge — iOS 和 macOS 平台功能最全面的顶级代理工具
- 代理软件总览 — 回到软件总览页面