ofoNET 发布页

Surge Ponte 教程:Mac 服务端连接 iPhone 的配置与排错

更新于 2026-10-24 · ofonet.online

简答:Surge Ponte 需要用 Surge Mac 作为服务端、iPhone 或 iPad 作为客户端,并登录同一 iCloud。先在 Mac 开启 Ponte,再按 NAT 检测结果选择直连、代理中继或端口转发,最后用 sgponte 主机名或 DEVICE 规则测试。

定义:Surge Ponte 是 Surge Mac 与 iOS 设备之间建立的端到端加密私有网络,用于远程访问 Mac 服务或经 Mac 转发访问家庭内网。

先看结论:Mac、iPhone 和网络条件分别负责什么

如果你搜索“Surge Ponte 教程”是因为想在外出时访问家里的 Mac、NAS、Home Assistant、网页服务或 SSH,最重要的判断是:Mac 才能作为 Ponte 服务端,iPhone 和 iPad 主要作为客户端。官方文档说明,Surge Mac 可以同时承担服务端和客户端角色,而 Surge iOS 只能作为客户端使用。设备信息与加密密钥通过 iCloud 同步,连接本身保持端到端加密;是否经过代理,取决于你选择的连接方式。

官方资料:Surge Ponte 指引、Surge Ponte 官方手册。

Surge Ponte 配置角色与连接方式速查
项目MaciPhone/iPad你需要确认的条件
角色服务端,也可作为客户端客户端设备登录同一 iCloud,或使用官方支持的设备共享方式
访问 Mac 自身服务提供服务,例如网页、文件共享或 SSH通过 <设备名>.sgponte 访问Mac 上的服务确实监听对应端口
访问家庭内网作为跳板访问 NAS、家庭 DNS 或其他内网设备使用 DEVICE:<设备名> 策略转发Mac 能正常访问目标内网地址,规则顺序正确
直连穿透需要 Full Cone NAT 或可用的 IPv6 直连条件自动尝试连接路由器、防火墙和运营商网络允许相关流量
代理 NAT 穿透选择支持 UDP 中继的代理可按网络情况配置客户端侧代理代理本身不能处于未正确配置的 NAT 或防火墙之后
静态端口转发在有公网 IP 时手动配置路由器自动使用已配置的服务端你能管理路由器、端口和防火墙

开始前准备:先确认设备、账号和服务端条件

  1. 准备一台运行 Surge Mac 的 Mac。它是本教程的 Ponte 服务端核心。Mac 需要保持开机、联网,并且 Surge 处于能够工作的状态。
  2. 准备一台运行 Surge iOS 的 iPhone 或 iPad。它用于从外部网络连接 Mac 或家庭内网。若设备列表无法同步,先检查两端是否登录了同一个 iCloud。
  3. 确认 Mac 上的目标服务已经运行。例如,访问网页服务前,要先知道服务监听的端口;访问文件共享前,要先在 macOS 的“系统设置—通用—共享”中开启文件共享。
  4. 确认家庭内网网段。例如 NAS 位于 192.168.1.20,家庭网段可能是 192.168.1.0/24。如果外出网络也使用相同网段,可能产生地址冲突;官方建议家庭内网尽量使用不常见的子网。
  5. 准备可选的 UDP 中继代理。如果 NAT 检测不是 Full Cone NAT,或者直连经常失败,需要使用支持 UDP 转发或 UDP 中继的代理。Surge 官方指引列出了 Snell、Shadowsocks、Trojan、SOCKS5 和 WireGuard 等可选类型,但具体支持情况仍以 Surge 当前界面检测结果为准。

不要先急着写规则。先确认 Mac 本地能访问目标服务,再进行 Ponte 配置;否则远程失败时无法区分是服务本身、Mac 防火墙还是 Ponte 通道问题。

Mac 端开启 Surge Ponte:按向导完成服务端配置

  1. 打开 Surge Mac,在侧边栏进入“概览”。
  2. 打开“Surge Ponte”开关并点击下一步。
  3. 等待 Surge 测试当前网络的 NAT 类型。不要跳过这一步,因为后面的连接方式选择依赖检测结果。
  4. 如果结果为 Full Cone NAT,可以选择直连穿透,也可以改用代理 NAT 穿透或静态端口转发。
  5. 如果结果属于其他 NAT 类型,优先选择支持 UDP 中继的代理;如果你拥有公网 IP 且能配置路由器,也可以选择静态端口转发。
  6. 为当前 Mac 设置设备名称,例如 MyMacMini。名称只能使用字母、数字、下划线和连字符,并且后续规则中的设备名要保持一致。
  7. 等待 Surge 完成设备注册,然后在 iPhone 或 iPad 上打开 Surge Ponte 页面查看该 Mac。

如果你使用代理 NAT 穿透,服务端代理必须通过 Surge 的检测。官方文档特别提醒,代理服务器不能位于未正确配置的 NAT 或防火墙之后;只支持 TCP 而不支持 UDP 的代理,不能满足 Ponte 的 UDP 中继要求。

Surge 的官方手册还说明,Ponte 的大部分设备记录、密钥和端口信息由 iCloud 与应用数据管理,通常不需要手动编辑配置文件。只有在需要指定客户端或服务端代理策略时,才可能涉及 [Ponte] 配置段。

iPhone 或 iPad 端连接:先发现设备,再做最小测试

  1. 在 iPhone 或 iPad 上打开 Surge,进入 Surge Ponte 页面。
  2. 确认列表中出现刚才命名的 Mac。设备名称不一致时,先回到 Mac 端检查设备名称和 iCloud 登录状态。
  3. 先测试 Mac 自身服务,而不是直接测试复杂的家庭内网规则。假设 Mac 上有一个 HTTP 服务监听 8080 端口,可访问 http://mymacmini.sgponte:8080/。
  4. 如果测试成功,再测试家庭内网设备,例如 NAS、Home Assistant 或家庭网页服务。
  5. 每次只改变一个变量:先换网络,再换代理,再调整规则。这样更容易定位是移动网络、UDP、NAT 还是规则匹配问题。

<设备名>.sgponte不是公开 DNS 域名,而是 Surge 在 Ponte 网络中动态处理的设备主机名。官方手册说明,它也可以对应到 DEVICE:<设备名> 策略,因此适合访问服务端 Mac 上的服务。

如果你访问的是 Mac 本机服务,先确认服务监听地址和端口。例如服务只监听 127.0.0.1,官方指引说明通过 Ponte 设备主机名仍可访问;但如果服务根本没有启动,或者端口被防火墙拦截,Ponte 本身不会替你修复应用层问题。

访问家庭内网:DEVICE 规则、DNS 映射和规则顺序

访问 Mac 自身服务使用设备主机名;访问 Mac 所在家庭网络里的其他设备,则使用 DEVICE:<设备名> 作为策略。最简单的网段规则如下:

IP-CIDR,192.168.30.0/24,DEVICE:MyMacMini

把示例中的网段换成你的家庭内网,把 MyMacMini 换成 Mac 端实际设备名。规则应放在更宽泛的直连、代理或兜底规则之前,否则请求可能先被其他规则匹配,导致没有经过 Ponte。

如果只想访问一台设备,可以缩小范围,例如:

IP-CIDR,192.168.1.20/32,DEVICE:MyMacMini

如果你希望通过域名访问家庭设备,可以在 Surge Mac 配置 DNS 映射,例如把 nas.myhome 映射到 192.168.1.20,然后在客户端使用:

DOMAIN-SUFFIX,myhome,DEVICE:MyMacMini

这条域名规则要放在会触发解析的 IP 类规则之前。官方指引解释了原因:客户端本身无法直接解析该家庭域名,如果先触发普通 IP 规则,可能无法按预期交给 Ponte 设备处理。

常见远程访问目标与推荐写法
目标访问方式示例优先检查
Mac 网页服务设备主机名加端口http://mymacmini.sgponte:8080/Mac 服务是否启动、端口是否监听
Mac 文件共享系统文件 App 连接服务器macbook.sgpontemacOS 文件共享和账号权限
NASIP-CIDR 或 DNS 映射nas.myhomeMac 能否访问 NAS、规则是否命中
Home Assistant单 IP 或域名规则192.168.1.50/32服务端口、家庭 DNS、内网地址
SSH目标 IP 交给 DEVICE 策略ssh 192.168.1.30SSH 服务、端口、防火墙和账号

连接失败排查:按设备、NAT、UDP、规则四层定位

  1. 设备列表看不到 Mac:检查两端 iCloud 账号、网络连接和 Surge 登录状态;确认 Mac 端 Ponte 已开启,并等待设备同步完成。
  2. NAT 检测不是 Full Cone NAT:不要反复只尝试直连。改用支持 UDP 中继的代理,或在确有公网 IP 的情况下配置静态端口转发。
  3. 代理检测失败:确认代理支持 UDP 转发,且代理服务器没有被未配置的 NAT 或防火墙挡住。代理类型名称能被选择,不等于当前节点一定符合 Ponte 要求,应以 Surge 的合格检测为准。
  4. 设备显示在线但访问超时:先测试 Mac 自身的 sgponte 主机名,再测试家庭内网 IP。若前者成功、后者失败,重点检查 Mac 到家庭设备的路由、防火墙和目标服务。
  5. 规则没有生效:查看请求日志中命中的策略,确认确实命中了 DEVICE:MyMacMini,而不是 DIRECT、REJECT 或其他代理组。规则顺序尤其要检查域名规则是否位于相关 IP 类规则之前。
  6. UDP 丢包或连接不稳定:先确认服务是否真的依赖 UDP,再检查服务端代理和客户端网络是否允许 UDP。官方资料指出,客户端也可以配置代理来帮助应对某些网络环境下的 UDP 流量封锁,但这不是所有场景的必选项。
  7. 同一局域网能用,外网不能用:同 LAN 时 Ponte 会自动优先使用局域网连接,因此本地成功不能证明 NAT 穿透或代理中继正常。请关闭 Wi-Fi,使用移动网络重新测试。
  8. 网段冲突:如果你在酒店、公司或移动热点中也使用相同的 192.168.x.x 网段,访问可能被本地路由抢先处理。可重新规划家庭网段,或用更精确的规则和 DNS 映射减少冲突。

官方发布说明还提到,Ponte 可以同时启用多种穿透模式和多条代理线路,并自动选择连接通道;因此排障时不要只盯着某一种通道,先确认当前客户端和服务端版本、代理条件以及日志中的实际命中情况。

一个可复用的最小配置流程

  1. 在 Mac 上确认本地服务或家庭设备能正常访问。
  2. 开启 Surge Mac 的 Ponte,完成 NAT 检测并命名设备。
  3. 在 iPhone 或 iPad 上确认设备出现。
  4. 先用 <设备名>.sgponte:端口 测试 Mac 自身服务。
  5. 再添加单个内网 IP 的 IP-CIDR,/32,DEVICE:<设备名> 规则。
  6. 查看请求日志中的实际策略命中,再扩展到整个内网段。
  7. 如果失败,按“设备同步—NAT—UDP—规则—目标服务”的顺序逐层排查,不要同时修改多个设置。

这套顺序的好处是每一步都有明确判定标准:设备能否发现、通道能否建立、Mac 能否访问目标、规则是否命中,以及目标服务是否响应。完成基础链路后,再考虑 DNS 映射、多个网段或客户端侧代理。

常见问题

Surge Ponte 必须使用同一个 iCloud 账号吗?

同一 iCloud 账号是官方文档描述的自动注册方式。官方手册也提到设备可以通过确认码共享给其他 iCloud 账号,具体入口以当前 Surge 界面为准。

Surge Ponte 一定需要代理吗?

不一定。Full Cone NAT 或满足条件的直连通道可以不使用代理;如果 NAT 类型不适合直连,通常需要支持 UDP 中继的代理,或者使用公网 IP 配置静态端口转发。

为什么 iPhone 能看到 Mac,但访问 NAS 失败?

先确认 Mac 本身能访问 NAS,再检查是否使用了 DEVICE 规则、规则是否命中,以及家庭网段是否与当前外部网络冲突。可以先用单个 IP 的 /32 规则测试。

sgponte 主机名是公共 DNS 域名吗?

不是。官方手册将它描述为由 Surge 处理的 Ponte 设备主机名,格式通常为 <code><设备名>.sgponte</code>,用于访问对应设备或转交 DEVICE 策略。

Ponte 连接失败时,先查规则还是先查 NAT?

先确认设备能否互相发现,再看 NAT 或代理通道,随后确认 Mac 到目标内网的连通性,最后检查规则命中。这样可以避免把网络通道问题误判成规则问题。

相关阅读

参考资料

  1. Surge Ponte 指引(kb.nssurge.com)
  2. Surge Ponte 官方手册(manual.nssurge.com)
  3. Surge Mac 6.0 Release Note(kb.nssurge.com)
  4. Surge iOS Release Notes(kb.nssurge.com)