三星/安卓使用透明代理模块(Surfing)无法拨打电话的解决方案

Chongxi admin

0. 引

相信各位折腾root情况下透明代理模块时,都可能会遇到一个非常棘手的问题:

手机网络数据一切正常,但无法拨打或接听电话,短信收发也出现异常

第一反应可能是信号问题,但通常会发现信号是满格的。这其实是一个由代理软件和系统底层VoLTE服务冲突导致的典型问题。


1. 问题分析

现在的HD通话是这样实现的

在LTE/NR网络下,通话和短信并非通过传统电路,而是依赖于IMS服务,我们熟知的VoLTE就是其最常见的应用

IMS服务本身也是通过IP数据包与运营商的核心网络进行通信的。而Surfing这类透明代理模块,为了实现全局代理,其默认的TUN 模式会在系统层面创建一个虚拟网卡,强制接管设备上几乎所有的网络流量

VoLTE/IMS的信令流量也被这个虚拟网卡接管后,这些对延迟和路由极为敏感的数据包被错误地进行了代理、重定向或分流,就会导致IMS服务注册失败或频繁掉线使电话无法正常拨打

不是信号问题,而是VoLTE信令被透明代理劫持了


2. 解决方案

本质上就是让通话相关的核心服务流量,绕过透明代理,直接与运营商网络通信

注意缩进!

yaml对缩进有非常非常极端的要求,少一个空格多一个空格都会导致整个炸锅,敢多space他就敢跟你爆了

2.1 方案一 Samsung用户优先尝试

这是最简单直接的方法,让代理排除受影响的App

需要排除的包名列表 (主要针对三星 OneUI):

1
2
3
4
5
6
7
8
9
10
com.qti.qcc                  # 高通IMS/VoLTE 调度核心
com.sec.imsservice # 三星IMS服务(VoLTE/VoWiFi)
com.sec.epdg # VoWiFi ePDG隧道服务
com.samsung.android.messaging # 系统官方短信
com.samsung.android.dialer # 拨号器
com.samsung.android.incallui # 通话界面
com.samsung.android.app.telephonyui # 通话UI资源
com.samsung.android.smartcallprovider # 来电识别
com.samsung.android.intellivoiceservice # 智能语音降噪
com.android.settings

(注:非三星手机可根据自身情况,尝试排除 com.android.imsservice 等原生IMS服务包名)

2.1.1 操作流程(以surfing为例)

  • 使用 MT管理器 等工具,打开 Clash 配置文件,路径通常为:/data/adb/modules/box4magisk/config.yaml
  • 找到 tun: -> exclude-package: 部分(约是137~146行)
  • 取消这些包名前面的 # 注释,如下图所示
  • 保存配置文件,然后重启

此方法对大部分三星手机有效。如果操作后问题依旧,或者您的手机并非三星也遇到了类似问题,请直接尝试方案二

2.2 方案二:切换至 Tproxy

如果方案一无效,或者您想追求一个更稳定、更彻底的解决方案,那么将代理模式从 TUN 切换到 Tproxy 是最佳选择,这绝对是最通用的方案

2.2.1 为什么是Tproxy?

  • TUN 模式是应用层逻辑,可以当作全盘接管,排除法有时不够彻底,不严谨的话,可以理解为VPN那种全盘接管
  • Tproxy 模式配合 iptables 在更底层的内核层面工作,可以实现更精确的流量控制。模块通常会预设好规则,从一开始就绕过系统内部和运营商的通信流量,只代理用户App的流量,从根源上避免了冲突
  • 更何况,Surfing用的是Mihomo内核,真想玩TUN建议使用sing-box,后者在TUN做的优化更好,可以说是代理业界天花板

2.2.2 具体操作

修改Clash配置文件,启用Tproxy监听

  • 打开 /data/adb/modules/box4magisk/config.yaml
  • 关闭TUN
    1
    2
    3
    tun:
    enable: false #把这里改成false
    # ... 其他设置保持不变
  • 启用Tproxy 在TUN和DNS模块中间增加以下内容
    1
    2
    3
    tproxy:
    enable: true
    port: 1536 # 注意:此端口号必须与 tproxy-port 和模块脚本使用的端口一致,Surfing默认1536,视你的配置跟随变动,端口在文件顶部的`tproxy-port`
  • 重启

3. 结

本篇主要是提供具体的解决方案,关于这部分的代理知识后续可以单独分篇来讲(又挖坑)

  • 标题: 三星/安卓使用透明代理模块(Surfing)无法拨打电话的解决方案
  • 作者: Chongxi
  • 创建于 : 2025-11-08 00:10:04
  • 更新于 : 2026-01-03 03:01:44
  • 链接: https://blog.chongxi.us/2025/11/07/SurfingIssueOnSamsung/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。