缥缈墟

sing-box 连接成功但打不开网页怎么办?

更新于 2026-10-30 · piaomiaoxu.online

简答:sing-box 显示“已连接”不等于浏览器流量已经经过代理。最快的排查顺序是:先关闭其他代理并确认原网络正常,再验证系统代理或 TUN/VPN 是否真正接管流量,随后检查本地代理端口、DNS、路由规则和日志;如果只有部分网站打不开,优先看分流与 DNS,如果所有应用都打不开,优先看权限、端口和节点。

定义:“sing-box 连接成功但打不开网页”是指客户端或配置显示运行正常,但浏览器请求没有被正确接管,或请求在 DNS 解析、路由、节点连接、TLS 握手等环节失败。

先试这一步:用影响范围判断故障位置

本文是面向 Windows、macOS、iOS 和 Android 的 sing-box 通用排查指南,菜单名称会因客户端版本和图形界面不同而变化。sing-box 的图形客户端覆盖 Windows、Android、iOS 和 macOS,但具体权限入口应以当前客户端页面为准;本文不覆盖某个第三方客户端的专属菜单,也不把“已连接”当作实际网页可用性的证明。可先对照 sing-box 图形客户端与平台支持说明。

先判断是哪一类问题
现象优先检查最短验证方法
所有网页和应用都打不开原网络、节点、代理端口、系统代理或 TUN/VPN 权限关闭 sing-box 后确认普通网络可用,再重新启动并检查代理接管
只有部分网站打不开route.rules、DNS 规则、直连/代理出站、IPv4/IPv6切换全局或明确代理模式,再测试同一域名
浏览器打不开,其他应用可以浏览器代理设置、扩展、缓存或 QUIC用无痕窗口或另一浏览器,并检查浏览器是否单独设置了代理
客户端测速成功但网页失败测速只验证了某个节点或连接,不代表网页 DNS、路由和 TLS 都正常使用浏览器代理测试或 curl 进行实际 HTTP 请求

先做的三项操作:关闭其他 VPN、系统代理、加速器和浏览器代理扩展;备份当前配置;确认没有把订阅令牌、节点密码或私人地址直接贴到日志中。

按固定顺序排查:备份、代理接管、端口、日志

  1. 确认版本和配置来源。记录当前 sing-box 内核版本、图形客户端版本,以及配置是本地文件还是远程订阅。配置字段会随版本变化,尤其是 TUN、DNS 和路由字段;不要把其他版本的示例直接覆盖到现有配置。
  2. 备份后做最小化测试。复制配置文件或导出当前配置,先不要同时修改 DNS、MTU、TUN 和规则。若客户端提供“测试配置”或“检查配置”入口,先执行检查;检查通过只代表格式或启动阶段通过,不代表网页一定可用。
  3. 确认流量是否被接管。桌面系统先看系统 HTTP/SOCKS 代理是否已启用,端口是否与 sing-box 的入站端口一致。sing-box 的 mixed 入站可以同时提供 SOCKS 和 HTTP 服务,也支持启动时设置系统代理,但是否启用取决于配置中的 set_system_proxy 或客户端实现。官方 mixed 入站字段说明。
  4. 移动端确认 VPN 权限。Android 和 iOS 如果使用 TUN/VPN 模式,需要在系统弹窗中允许 VPN 权限,并确认当前 VPN 开关仍处于运行状态。若权限被撤销、系统省电策略停止后台进程,客户端可能显示运行但流量未持续接管。
  5. 检查端口是否一致。如果你手动给浏览器设置了代理,核对地址通常应为本机回环地址和配置中实际监听的端口;不要照抄别人的端口号。若日志显示端口已被占用,关闭其他代理软件后重启 sing-box,再重新验证。
  6. 提高日志级别并重现一次。只在排查期间把日志级别提高到 debug 或更详细级别,打开一个明确的网页,记录对应时间附近的报错,然后恢复为原级别。官方日志配置支持 trace、debug、info、warn、error 等级别。sing-box 日志配置说明。

验证标准:至少完成一次真实网页请求或命令行请求,不要只依据客户端状态、节点延迟或测速结果判断成功。

错误关键词怎么分流:DNS、超时、TLS 还是认证

日志和现象对应处理方向
关键词或现象更可能的位置处理方法
DNS、resolve、no such host、server misbehavingDNS 服务器、DNS 规则或 DNS 流量没有被正确接管检查 dns.servers、dns.rules 和最终 DNS 服务器;先用同一域名测试不同网络
connection refused、无法连接本地端口代理端口未监听、端口填错或被其他程序占用核对入站地址和端口,关闭冲突软件后重启;不要把远端节点端口误填到浏览器代理设置
timeout、i/o timeout节点不可达、路由不通、网络丢包或协议不兼容换一个节点并换一个网络交叉测试;若只有某个协议失败,先回退到已知可用配置
TLS handshake、certificate、connection reset目标连接、时间校准、TLS 参数或中间网络设备确认系统日期时间正确,检查服务器名、TLS 配置和日志上下文;不要仅凭一次失败判断节点永久不可用
authentication failed、unauthorized账号、密码、密钥或订阅内容重新核对凭据和配置是否完整,必要时重新导入;分享日志前遮挡认证信息

sing-box 将 DNS 服务器、DNS 规则和 DNS 最终服务器分开配置;DNS 配置中的 final 用于指定默认 DNS 服务器,未设置时会使用列表中的第一个服务器。DNS 配置说明。因此,单纯修改系统 DNS 不一定能解决 TUN 模式下的解析问题。

只有部分网站打不开:检查分流、DNS 与 TUN

  1. 先切换到明确的全局代理测试。如果全局代理下网页恢复,而规则模式下失败,故障重点就在 route.rules、规则集、直连出站或 DNS 分流,不要先修改 MTU。
  2. 核对最终出站。路由规则可以按域名、域名后缀、IP 网段、网络类型、应用包名等条件匹配,并通过动作决定后续处理。某个域名如果命中了直连规则,节点本身正常也不会替它代理。路由规则匹配字段说明。
  3. 检查 DNS 规则是否与路由目标一致。域名解析成功但访问仍失败时,检查 DNS 服务器是否能解析目标域名,以及解析结果是否被错误的规则或 IPv6 优先策略影响。可临时测试 prefer_ipv4,但修改前先保存原配置,验证后决定是否恢复。
  4. 检查 TUN 的 DNS 处理方式。在支持的版本中,TUN 的 dns_mode 可以是 disabled、native 或 hijack;启用 auto_route 时,默认 DNS 处理行为可能与未启用时不同。Windows 的严格路由还会影响非 TUN 接口的 DNS 行为。TUN、auto_route 与 dns_mode 说明。
  5. 确认没有路由循环。桌面 TUN 配置可检查 route.auto_detect_interface 或默认网卡设置,避免 sing-box 自己的出站连接再次进入 TUN。官方路由文档说明,自动检测默认网卡可用于避免 TUN 下的路由循环。路由配置说明。

每次只改一个变量:先切换规则模式,再测试 DNS,再测试 TUN。每次修改后都重新启动客户端并打开同一个网页,这样才能知道是哪项改变产生了结果。

Windows、macOS、iOS、Android 分平台检查

平台差异速查
平台重点检查恢复方式
Windows系统代理开关、TUN/VPN 权限、其他代理软件、IPv6 和防火墙提示关闭 TUN 或系统代理,恢复原网络代理设置后重新启动
macOS系统网络代理、网络扩展/VPN 权限、Wi-Fi 与有线接口、浏览器单独代理退出 sing-box 并在系统网络设置中关闭其代理或 VPN 配置
iOSVPN 配置授权、当前配置是否启用、蜂窝网络权限、低数据模式和 Wi-Fi 切换关闭 VPN 配置,切换一次 Wi-Fi/蜂窝网络后重新授权
AndroidVPN 授权、省电限制、分应用路由、始终开启 VPN 和其他 VPN 冲突停止其他 VPN,取消电池限制或恢复原设置,再重新启动 sing-box

Apple 平台的 sing-box 图形客户端要求 iOS 15.0 或更高版本、macOS 13.0 或更高版本;实际可用入口仍以当前客户端和系统显示为准。Apple 平台客户端要求。如果只是浏览器打不开,优先排查浏览器自己的代理设置;如果所有应用都打不开,优先排查系统 VPN/TUN 权限和节点连接。

用实际请求验证,不把测速当作网页可用

  1. 先关闭 sing-box,确认普通网络可以打开一个常用网站;如果原网络本身不可用,先处理路由器、Wi-Fi 或蜂窝网络问题。
  2. 启动 sing-box,只启用一种接管方式:要么系统代理,要么 TUN/VPN。不要同时叠加多个代理软件。
  3. 浏览器中打开一个普通 HTTPS 页面,再打开一个此前失败的域名,记录是否是全部失败还是部分失败。
  4. 桌面端可用浏览器的代理设置或系统网络诊断工具验证本地代理;也可以使用 curl 对明确的本地 HTTP/SOCKS 代理进行测试。命令中的地址和端口必须替换为当前配置实际监听值,不能直接复制示例端口。
  5. 如果实际请求失败,立即查看同一时间点的 sing-box 日志,按 DNS、端口拒绝、超时、TLS 和认证关键词分流。

验证通过的最低标准是:客户端正在运行、请求确实经过当前代理入口、目标网页能完成加载,并且日志没有对应的解析或连接错误。单独的延迟、端口监听或节点测速只能作为辅助信号。

恢复与安全注意事项

  • 每次修改前保留一份能启动的配置,出现“改完更糟”时先恢复备份。
  • 订阅链接、访问令牌、节点密码、私有域名和完整日志不要公开粘贴;排查时只保留必要的错误行。
  • 不要一次同时改 DNS、规则、TUN、MTU 和协议参数,否则无法判断原因。
  • 如果升级后才出现问题,先记录客户端和内核版本,再对照对应版本的字段说明;官方文档页面会标注字段新增、弃用或移除的版本。
  • 如果换节点、换网络、切换规则模式后仍失败,保留最小复现信息:系统、客户端版本、内核版本、接管方式、错误关键词和是否所有应用受影响。

如果你只是需要一条可执行的结论:先关闭其他代理,备份配置,确认系统代理或 TUN/VPN 真正接管,再用实际网页请求配合日志定位 DNS、路由、端口或节点问题。

推荐:如果你希望在跨设备连接排查时获得线路与网络诊断支持,可了解边界云加速的相关服务,具体能力与适用范围以官网说明为准。

常见问题

sing-box 显示已连接,为什么浏览器还是打不开?

“已连接”通常只说明客户端或某个出站已经启动,不代表浏览器流量一定经过 sing-box。优先检查系统代理是否启用、代理地址和端口是否一致,或移动端 VPN/TUN 权限是否仍有效;然后用实际网页请求和日志验证。

sing-box 只有部分网站打不开,应该先换节点吗?

先不要急着换节点。先切换到明确的全局代理模式测试同一域名:如果全局模式正常,重点检查 route.rules、直连出站和 DNS 分流;如果所有模式都失败,再换节点并更换网络交叉测试。

TUN 模式开启后反而没有网络怎么办?

先关闭 TUN,恢复到系统代理或基础代理入口,确认普通网页可用,再检查 VPN/TUN 权限、auto_route、DNS 处理方式和其他 VPN 是否冲突。每次只修改一项,并保留原配置以便恢复。

DNS 能解析,但网页仍然打不开,说明 DNS 没问题吗?

不一定。解析成功只说明 DNS 环节可能正常,后续仍可能在路由、节点连接、TLS 握手或认证环节失败。应查看同一时间点日志,并区分 connection refused、timeout、TLS handshake 和 authentication failed 等关键词。

升级 sing-box 后配置还能直接使用吗?

不能默认认为完全兼容。官方配置文档会标注字段新增、弃用和移除的版本。升级前应备份配置,记录客户端和内核版本,再按对应版本文档核对 TUN、DNS、route.rules 等字段。

相关阅读

参考资料

  1. sing-box 图形客户端与平台支持
  2. sing-box mixed 入站配置
  3. sing-box 日志配置
  4. sing-box DNS 配置
  5. sing-box 路由规则
  6. sing-box TUN 配置与 DNS 处理
  7. sing-box 路由配置
  8. sing-box Apple 平台客户端要求