V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
wangxiao20170401
V2EX  ›  Android

FCM 无法保持连接,大家有办法解决吗?

  •  
  •   wangxiao20170401 · 2023-08-17 17:16:07 +08:00 · 20468 次点击
    这是一个创建于 661 天前的主题,其中的信息可能已经有所发展或是发生改变。

    系统 LineageOS 20 ,安装了 Clash For Android ,不管理 FCM 直接,还是走代理,都是在切换网络那一会有效,过会就会断开且不能重连。

    46 条回复    2025-05-25 11:59:49 +08:00
    huhalo
        1
    huhalo  
       2023-08-17 17:54:07 +08:00 via Android
    小米系是这样的,
    ysc3839
        2
    ysc3839  
       2023-08-17 19:48:25 +08:00 via Android
    @huhalo 不看内容张口就来,楼主已经说了系统是 LineageOS 20 。
    再者我手上 MIUI 国内版不开代理都能保持 FCM 连接,推送是正常的。
    salouch
        3
    salouch  
       2023-08-17 22:07:04 +08:00
    @ysc3839 用的 eu 或国际版吧,cn 一锁屏就断,即使亮屏也经常收不到推送
    ysc3839
        4
    ysc3839  
       2023-08-17 22:08:18 +08:00 via Android
    @salouch MIUI 14 国内开发版
    huhalo
        5
    huhalo  
       2023-08-17 22:48:34 +08:00 via Android
    @ysc3839 小米就是这样的,一下就断掉,关键断了不会自己重连
    fortynine
        6
    fortynine  
       2023-08-18 06:40:00 +08:00 via Android
    这就是 v2 ,答非所问
    wwxwlw
        7
    wwxwlw  
       2023-08-18 08:32:00 +08:00
    我也是, 不管 mtalk.google.com 走直连还是代理, 都会一会断一下
    wwxwlw
        8
    wwxwlw  
       2023-08-18 08:33:13 +08:00
    @wwxwlw 系统是 One UI 美版, 工具是 cmfa
    ShadowPower
        9
    ShadowPower  
       2023-08-18 09:29:35 +08:00
    修改系统的 hosts:

    108.177.125.188 mtalk.google.com
    3.3.3.3 alt1-mtalk.google.com
    3.3.3.3 alt2-mtalk.google.com
    74.125.200.188 alt3-mtalk.google.com
    74.125.200.188 alt4-mtalk.google.com
    3.3.3.3 alt5-mtalk.google.com
    3.3.3.3 alt6-mtalk.google.com
    74.125.200.188 alt7-mtalk.google.com
    3.3.3.3 alt8-mtalk.google.com
    2404:6800:4008:c07::bc mtalk.google.com
    2607:f8b0:4023:c0b::bc alt1-mtalk.google.com
    2607:f8b0:4023:1::bc alt5-mtalk.google.com
    2607:f8b0:4002:c03::bc alt7-mtalk.google.com
    ShadowPower
        10
    ShadowPower  
       2023-08-18 09:30:56 +08:00
    @huhalo 只有大陆版 MIUI 会这样,原因是 google 服务的后台被限制了
    wangxiao20170401
        11
    wangxiao20170401  
    OP
       2023-08-18 09:52:15 +08:00
    我这比较奇怪:

    [1] 开启 Clash 并将 Google FCM 设为代理"自动选择服务器" 后发现可以长时间的保持 FCM 的连接了,但是: Time connected( 连接时间) 显示为 00:00

    [2] 开启 Clash 将 Google FCM 代理设为直连后发现同 [1] 一样状态,显示已连接 Time connected( 连接时间) 显示为 00:00

    [3] 关闭 Clash 后查看 FCM 连接情况 *#*#426#*#* 发现 Time connected 可以正常显示了并且在隔 5 秒就变化一次,


    总结: 我的电信网 FCM 是可以直连的,根据 [1] 和 [2] 分析 Clash 导致无法正常连接,只要开了 Clash 不管 FCM 分组走代理还是直连模式都会导致 FCM 无法正常连接。
    wangxiao20170401
        12
    wangxiao20170401  
    OP
       2023-08-18 09:54:59 +08:00
    使用 Clash For Andoid 代理后 [1] 和 [2] 只是状态显示为 已连接,实际是无法连接的,连接时长总是显示为 00:00 ,反而直连是正常的。
    fydss
        13
    fydss  
       2023-08-18 11:34:57 +08:00
    用的国际版,不开代理也是一直连上的,如果收不到通知是因为 APP 被杀后台了,这个据说是要保后台才会收到通知
    wangxiao20170401
        14
    wangxiao20170401  
    OP
       2023-08-18 12:53:21 +08:00
    问题解决:

    Clash For Android 中设置 hosts ,让 FCM 开启 VPN 代理时 直连就可以了 (如开启 Clash 规则中设定 FCM 直连是不行的)。
    ```
    mtalk.google.com 108.177.97.188
    alt1-mtalk.google.com 142.250.141.188
    alt2-mtalk.google.com 142.250.115.188
    alt3-mtalk.google.com 64.233.171.188
    alt4-mtalk.google.com 142.250.152.188
    ....
    alt8-mtalk.google.com 142.250.112.188
    ```

    原因,并不是程序后台没有运行(开始就设置过后台保持),也不是 FCM 不能用代理连接(Wi-Fi 设代理完全没问题),问题应该是 Clash For Android 上。
    wwxwlw
        15
    wwxwlw  
       2023-08-18 13:43:50 +08:00
    @wangxiao20170401 #14 可以发一下完整的吗?
    wangxiao20170401
        16
    wangxiao20170401  
    OP
       2023-08-18 13:48:27 +08:00 via Android
    ping alt5 6 7 可显示结果
    Zhzp
        17
    Zhzp  
       2023-08-19 15:23:52 +08:00
    写规则让 FCM 直连即可,设置 host 可以更稳定一些
    wangxiao20170401
        18
    wangxiao20170401  
    OP
       2023-08-19 17:25:33 +08:00 via Android
    @Zhzp 目前这个 2.5.12 版本设置了直连规则也还是不行,只要 FCM 被 Clash 管理,不管规则怎样设置都会出现不可用的情况
    Zhzp
        19
    Zhzp  
       2023-08-20 18:10:53 +08:00
    @wangxiao20170401 你可能规则没弄对吧,我就是这样用的,没有任何问题
    wangxiao20170401
        20
    wangxiao20170401  
    OP
       2023-08-26 12:34:23 +08:00
    规则应当是没有问题,因为规则没有改动,以前就这样用的
    另外也有搜索到过类似情况,可能也和系统,或系统版本有关
    wangxiao20170401
        21
    wangxiao20170401  
    OP
       2023-08-26 12:35:31 +08:00
    现在改动 hosts 让 FCM 直连挺好用的 10 秒提示
    qazgp
        22
    qazgp  
       2023-08-28 09:17:11 +08:00
    不知道为啥 我的红米不开 cfa 一直能收到 tg 的消息
    wangxiao20170401
        23
    wangxiao20170401  
    OP
       2023-08-30 09:42:45 +08:00
    @qazgp 之前我也有这个疑问,原因是 FCM 可以直连
    Yonsan
        24
    Yonsan  
       2023-10-20 13:31:12 +08:00
    你好,有几个问题想跟你咨询一下,还请解答,十分感谢:
    1. 我是小米 13U 手机,miui14 ,root 后将 电量和性能双保,Clash 出现的问题就是息屏后就不推送,必须解锁屏幕才推送或者点 APP 后才行。后来发现 FCM 老断。

    2. CFA 中设置 hosts 的操作方法是不是就是在 履写--Hosts---右上角+---键<alt1-mtalk.google.com> 值<142.250.141.188> 然后确认。
    请问这些地址:alt4-mtalk.google.com 142.250.152.188 等,是不是要把 alt1 一直写到 alt8 ?还是随意挑几个写。
    比如从 alt1 写到 alt5~ 后面的 IP 可以随便写吗?能否重复? 比如 3.3.3.3 用在不同的里面。

    3. 让 FCM 开启 VPN 代理时 直连就可以了 (如开启 Clash 规则中设定 FCM 直连是不行的)。
    这句话怎么理解呢?意思是先把 FCM 关掉,然后再打开 CFA ,然后再看 FCM 连接上了没,是这样的吗?
    还有就是,这里如果 CFA 走直连,发现无法上网。还是只能设置为:不设置
    ParadoxDB
        25
    ParadoxDB  
       2024-01-21 22:22:22 +08:00   ❤️ 1
    个人这里是把 CFA 的"允许其他应用绕过 VPN"这一选项关闭之后,FCM 就可以正常接受 fake-ip 了,也就是 198.18.0.1/16 。如果允许绕过的话,一旦 FCM 尝试 bypass vpn ,似乎就无法连上了。然而不开代理裸连倒是可以连上,显示的 ip 是真实 ip 。推测有可能是代理的 DNS (我的 DNS 是 1111 和 8888 这种)把 FCM 的域名解析到了被墙的 ip 上,但 FCM 又尝试直连,结果就一直无法访问。
    ParadoxDB
        26
    ParadoxDB  
       2024-01-21 22:28:43 +08:00
    也尝试过修改 yml 文件的 hosts ,不过似乎不能在 cfa 上生效。但是直接在 cfa 的 gui 里修改后 FCM 会直接连接到指定的 ip ,并且也能保持长期连接。不过谁也不能保证这个 ip 一直能用,而且我有好几台设备有的还没 root ,一台一台在软件里修改总归还是麻烦的
    ParadoxDB
        27
    ParadoxDB  
       2024-01-21 22:37:48 +08:00
    另外补充一点,其实我使用 Android13 时,不管是类 Pixel 还是外行的 ONE UI ,都没有 clash 和 FCM 起冲突的现象。使用 CFA 时,FCM 连接到的地址显示是 28.0.0.2 ,挺奇怪的;关闭 CFA 后就显示真实地址了。后来我把 Pixel 7 Pro 升级到了 Android 14 ,就出现了开启 CFA 无法正常收到通知的情况。这个现象在原厂系统和 EVO X 上都有出现。A14 上如果 CFA 和 FCM 成功建立连接的话,就如上面所述,显示的是 yml 文件里设置的正常的 fake-ip 的范围。A13 和 A14 上我都用的一套配置文件,蛮奇怪的现象……
    NaiveSimpleYoung
        28
    NaiveSimpleYoung  
       2024-01-27 10:00:09 +08:00 via Android
    @ParadoxDB 和你遇到了一样的问题,升级 A14 后发生了变化。不清楚为啥。
    目前把你说的“允许其他应用绕过 VPN”的选项关闭了,观察中。
    ParadoxDB
        29
    ParadoxDB  
       2024-01-29 20:47:11 +08:00
    @NaiveSimpleYoung 我猜和 FCM 在 A13/14 上的一些实现有关吧,这个问题我以前提交过 bug report ,最近和 google 跟进下。你可以*#*#426#*#*观察下 FCM 的连接情况。我之前说修改 hosts 不生效是因为缩进不小心搞错了,现在我同时用两套配置文件,按需使用,用指定 hosts 直连的文件有时候可以观察到 FCM 的 8 小时的稳定连接
    NaiveSimpleYoung
        30
    NaiveSimpleYoung  
       2024-01-29 22:10:24 +08:00 via Android
    @ParadoxDB 我在关闭 clash 客户端中的“允许其他应用绕过 VPN”设置项后,观察了两天,每次看 FCM 连接状态发现都能保持较长时间的连接,不像之前总是断开或连接中状态。能正常使用了,我就不在乎是不是直连了。
    一个现象是现在 FCM 诊断信息里面连接地址一直是 28.0.0.78 。
    ParadoxDB
        31
    ParadoxDB  
       2024-01-29 23:43:12 +08:00
    @NaiveSimpleYoung 直连说是会省电点,不过确实没太所谓。不过你的 FCM 连接地址倒是和我 A13 的时候类似,我 A14 之后,如果是通过代理连接到 FCM 会是 198.18.0.2 这样的,确实也是我 clash 配置文件中的 fake-ip 池里面设置的范围。这段时间大部分通知确实没问题,但 Gmail 的 App 总是无法收到通知(甚至是在前台的情况下),Play Store 下面的评论也有类似的情况,不知道你有没有类似的问题?似乎和 Android 版本还有 Gmail 的版本也没啥关系,反正现在设置了个 TG 机器人的转发先凑合着用吧,哈哈……
    NaiveSimpleYoung
        32
    NaiveSimpleYoung  
       2024-01-30 14:45:03 +08:00 via Android
    @ParadoxDB 前段时间出现过 Gmail 收不到 telegram 验证码通知,不过本来那时候 FCM 就有频繁断开的情况。刚才我用 QQ 邮箱给 Gmail 发邮件,立即收到了通知,在 FCM 日志里看到了推送记录。
    ParadoxDB
        33
    ParadoxDB  
       2024-02-06 22:27:38 +08:00 via Android
    @NaiveSimpleYoung 似乎是 ROM 的问题,之前用的 Evo X ,由于有一些问题以及严重的耗电,换成了 crDroid ,目前 Gmail 通知正常...
    saysaysay
        34
    saysaysay  
       2024-03-18 09:34:47 +08:00
    @ParadoxDB 三星也这样,bypass vpn 关闭就好了。pixel 直连就行,就是手机的问题。所以不能直连的就关闭允许绕过 vpn 。
    ParadoxDB
        35
    ParadoxDB  
       2024-03-21 23:36:55 +08:00
    @saysaysay 我手机用的就是 Pixel 然后设置的 Hosts+bypass vpn ,新加坡版的三星平板也用的同一套设置,也可以直连的。虽然 Android 版本不一样但只要设置了 Hosts+bypass vpn 基本都可以直连 FCM
    saysaysay
        36
    saysaysay  
       2024-03-22 14:25:36 +08:00
    @ParadoxDB 我的 pixel 只要设置 fcm 直连就行,但是三星需要设置 passbook
    shiquda
        37
    shiquda  
       2024-05-29 16:21:02 +08:00 via Android   ❤️ 1
    考古一下,我在 cfa 的按应用分流把“设置”加入代理好像就能收到通知了
    rgxiao
        38
    rgxiao  
       362 天前
    @shiquda 请教下能详细说么, 我也是这个问题, 一直没办法解决.
    shiquda
        39
    shiquda  
       362 天前   ❤️ 1
    @rgxiao #38 就是 Clash for Android 选择按照应用分流,然后选择把“设置”这个应用设置为走代理。
    MosinVoliet
        40
    MosinVoliet  
       216 天前
    @shiquda 但是保持时间比较短,过一段时间又是非链接状态了。需要手动重启 cfa
    MosinVoliet
        41
    MosinVoliet  
       216 天前
    @ShadowPower 这得 root 吧大佬,我是澎湃 1 ,尝试将设置扔进规则里一段时间后会断连。到现在也没找到好办法
    ShadowPower
        42
    ShadowPower  
       215 天前
    @MosinVoliet 能解 BL 锁的话,试试用 magisk+fcmfix 模块
    lurui45
        43
    lurui45  
       166 天前
    考古一下,ColorOS15 ,用的 ClashMetaForAndroid 。开启的应用分流模式,关闭允许绕过 VPN ,将 FCM 服务走代理的情况下是连接 fakeIP ,但是会周期性断联,无法长时间保持。如果在代理规则中将 mtalk 域名直连,可以实现长时间保持连接,但是还是现实连接的是 fakeIP
    HancockXu
        44
    HancockXu  
       87 天前
    @wangxiao20170401 #14 感谢,解决了我的问题。
    leowood
        45
    leowood  
       17 天前
    弄了半天,小米澎湃 os2 重要弄明白了,奉献一下。clash meta ,要 talk 直连,首先规则里要有 mtalk 直连,这个一般下发规则都会含有,最关键的是分应用代理后,一定要打勾允许其他应用绕过 VPN ,也就是要开启,这样虽连接的也是伪 ip ,但就是能连上了,非常好用
    asilentman
        46
    asilentman  
       14 天前 via Android
    三星港版,不开 clash 也是 not connected ,显示 host alt5 ,但是 ping 这个域名是可以 ping 通的,不知道咋回事。。。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2412 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 15:51 · PVG 23:51 · LAX 08:51 · JFK 11:51
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.