Skip to content
 
 

Repository files navigation

塔台

塔台是一款原生 SwiftUI iOS App,用来在设备本地管理机场订阅和自有节点,使用 Self-Configuration 分流规则,并生成 Surge、Clash、Shadowrocket、Loon、Quantumult X 和 Hiddify 配置。

开发交接

当前能力

  • 添加、启用、更新和删除 HTTPS 订阅
  • 添加 SS、SSR、VMess、VLESS、Trojan、Hysteria 2、AnyTLS、SOCKS5 自有节点;Snell 粘贴 Surge 配置行添加
  • 首页节点与订阅都可展开查看地址、协议、地区和测试方式
  • 节点行使用服务器 IP 的离线国家识别结果显示地区 Logo,并列出协议、传输、TLS 与 UDP 能力
  • 首页使用自绘的点阵世界地图,优先按服务器 IP 的离线国家结果聚合节点;IP 暂不可解析时才参考节点名称
  • 展开地图或订阅时自动进行真实 ICMP 延迟测试,也可单独或批量重测
  • 读取常见 Base64 节点订阅和 Clash YAML,包括仅含 HTTP(S)/SOCKS 的 Base64 列表与 Clash 嵌套 WebSocket 选项
  • 内置 Self-Configuration:覆盖 AI、YouTube、全球流媒体、Telegram、Google、Apple、Microsoft、国内外流量与广告过滤
  • 内置 ACL4SSR 默认、精简、全分组三套规则,按配置原有的策略组结构还原
  • 输入链接导入 subconverter 远程配置(.ini),下载到本机后离线使用,可刷新或删除
  • 生成 Surge / Clash / Shadowrocket / Loon / QuanX / Hiddify 完整配置
  • 在导出前预览配置,并明确显示目标客户端不兼容而跳过的节点
  • Surge、Clash、Shadowrocket、Loon、Egern、Hiddify 支持点击主按钮后通过 URL Scheme 一键打开并导入
  • 主导入按钮固定在标签栏上方,滚动预览时仍可随时操作
  • Quantumult X 和 Hiddify 通过系统分享接收本地配置文件

隐私设计

转换、规则匹配和 IP 国家查询全部在设备上完成。App 不调用第三方订阅转换或 IP 地理位置服务,也不会上传用户节点。域名节点只通过系统 DNS 解析地址,随后查询 App 内置的离线数据库。

规则联网的边界:内置的 Self-Configuration 和三个 ACL4SSR 快照随 App 打包,完全离线;只有你主动「导入规则链接」或刷新已导入方案时才会联网下载,下载内容保存在本机,之后生成配置不再联网。

写入磁盘的三类文件都使用 iOS 完整文件保护:Application Support 中的订阅快照、分享用的临时配置文件,以及分享用的临时二维码 PNG。后两类还会在再次生成时清理超过 5 分钟的旧文件,不会在 tmp 中长期堆积明文凭据。

打开添加面板时,塔台会按产品设定自动请求一次系统剪贴板权限;只有识别到支持的订阅或节点链接才会自动填入。也可以随时点击“从剪贴板粘贴”手动读取。

延迟测试优先向节点地址发送 ICMP Echo。部分机场或网络会屏蔽 ICMP,此时塔台会退回节点端口握手,并在界面明确标成“端口”,不会把它伪装成 ICMP 延迟。测试结果只保存在本次运行内。

Surge、Clash、Shadowrocket 和 Loon 的配置导入 Scheme 都需要客户端可读取的 URL。塔台会在导入时启动一个仅绑定到 127.0.0.1 的临时服务,并在 45 秒后自动关闭,所以配置不会上传到互联网。临时地址不用于后续自动刷新;规则或节点变化后,需要回到塔台再次一键导入。

Quantumult X 官方公开的 URL Scheme 只能添加或替换远程资源(server_remote / filter_remote / rewrite_remote),策略组不在其中,因此没有完整本地配置导入接口。塔台对 QuanX 保留系统文件分享,避免导入一份引用了不存在策略组的配置。

规则来源

规则结构来自 ClashConnectRules/Self-Configuration,配置版本 fb658cc85802。模板引用的规则提供者已固定到明确版本并转换为本地 .list 快照,来源、版本、规则数量与 SHA-256 记录在 Tower/Resources/SelfConfiguration/manifest.json,使用这套规则时运行时不联网。

需要更新快照时运行 python3 Scripts/update_self_configuration_rules.py。脚本会读取固定版本的 Self-Configuration 模板,下载其声明的规则提供者并原子替换本地资源。

ACL4SSR

acl4ssr-sub.github.io 提供的默认、精简、全分组三份配置同样随 App 打包,固定在 ACL4SSR/ACL4SSR06ff293e 版本,资源位于 Tower/Resources/ACL4SSR/,来源与 SHA-256 记录在 ACL4SSR_manifest.json。更新用 python3 Scripts/update_acl4ssr_rules.py

这三份配置各自声明了自己的策略组(精简 5 组、默认 11 组、全分组 29 组),塔台按原样还原,其中的地区组沿用配置里的节点名正则。内置 Self-Configuration 预设仍使用离线 IP 国家库分组,两套机制互不干扰。

ACL4SSR 与 Self-Configuration 都含有 Apple.listMicrosoft.listTelegram.list,而 Xcode 会把资源拍平到 bundle 根目录,所以 ACL4SSR 的全部资源都带 ACL4SSR_ 前缀。不要移除这个前缀,否则两套规则会互相覆盖。

导入自己的规则

规则页的「导入规则链接」支持 subconverter 的远程配置(.ini)。塔台只接受 HTTPS 地址,会下载配置和它引用的全部规则列表并保存到本机(完整文件保护),之后生成配置不再联网。已导入的方案可以随时刷新或删除。

IP 国家库

离线国家数据来自 sapics/ip-location-dbgeo-whois-asn-country,版本 2.3.2026061719,依据 CC0 许可随 App 打包。Scripts/update_ip_country_db.py 可下载指定版本并重新生成紧凑的 IPv4/IPv6 二进制索引,来源说明位于 Tower/Resources/IPCountry/NOTICE.txt

运行

  1. 使用 Xcode 26 或更新版本打开 Tower.xcodeproj
  2. 选择 iOS 17 或更新版本的模拟器/设备。
  3. 运行 Tower Scheme。

测试覆盖订阅解析、Clash YAML 嵌套字段、IP 优先国家地区聚合、网络延迟链路、本地规则资源、一键导入 Scheme,以及七种配置生成器。Loon 的 VMess/VLESS/Trojan/Hysteria 2 参数按其节点文档生成;Surge 的 TLS 与 WebSocket 参数按其代理策略文档生成。

已知边界

  • Shadowsocks 的 SIP003 插件只支持 simple-obfs(obfs/obfs-local)。v2ray-plugin 等其余插件会被明确拒绝并计入“跳过”,不会伪装成可用的裸 SS 节点导入。
  • Snell 只有 Surge 和 Shadowrocket 全版本支持,Clash/Stash 仅到 v3,Hiddify(sing-box)反过来只支持 v4 以上,Loon 和 Quantumult X 不支持——不支持的目标会计入“跳过”。
  • Hiddify 运行的是 sing-box 内核,因此导出的是 sing-box JSON;sing-box 自身在 App Store 没有独立客户端,所以这个格式以实际运行它的 App 命名。
  • 机场厂商自定义的非标准节点字段可能需要增加兼容适配。
  • 如果目标客户端未安装或没有接管对应 Scheme,塔台会自动退回系统分享。
  • Quantumult X 是否直接出现在分享列表中,取决于其声明的文件类型;未出现时可先存到“文件”再从客户端导入。
  • 当前未连接安装了 Surge、Shadowrocket、Loon、Quantumult X 的真机做最终接收测试;生成格式与兼容跳过逻辑已有自动测试。

许可证

源码以 MIT 发布。

Tower/Resources/ 下随 App 打包的规则列表和 IP 数据库来自第三方,保留各自原有条款,不适用 MIT

资源 来源 许可证
ACL4SSR 规则 ACL4SSR/ACL4SSR CC BY-SA 4.0
Self-Configuration 规则 ClashConnectRules/Self-Configuration 上游未声明
IP 国家库 sapics/ip-location-db CC0 1.0

详见 THIRD-PARTY-NOTICES.md。若你是上述规则的作者且希望移除,请提 issue,我会立即删除对应资源并改为运行时按需下载。

塔台只在本机把订阅转换成各客户端的配置文件,不含 VPN 或代理功能,不接管任何流量

About

塔台 — 原生 SwiftUI iOS App,在本机管理机场订阅与自有节点,生成 Surge / Clash / Shadowrocket / Loon / Quantumult X 配置

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages