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

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

  •  
  •   wangxiao20170401 · 254 天前 · 6969 次点击
    这是一个创建于 254 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    36 条回复    2024-03-22 14:25:36 +08:00
    huhalo
        1
    huhalo  
       254 天前 via Android
    小米系是这样的,
    ysc3839
        2
    ysc3839  
       254 天前 via Android
    @huhalo 不看内容张口就来,楼主已经说了系统是 LineageOS 20 。
    再者我手上 MIUI 国内版不开代理都能保持 FCM 连接,推送是正常的。
    salouch
        3
    salouch  
       254 天前
    @ysc3839 用的 eu 或国际版吧,cn 一锁屏就断,即使亮屏也经常收不到推送
    ysc3839
        4
    ysc3839  
       254 天前 via Android
    @salouch MIUI 14 国内开发版
    huhalo
        5
    huhalo  
       254 天前 via Android
    @ysc3839 小米就是这样的,一下就断掉,关键断了不会自己重连
    fortynine
        6
    fortynine  
       253 天前 via Android
    这就是 v2 ,答非所问
    wwxwlw
        7
    wwxwlw  
       253 天前
    我也是, 不管 mtalk.google.com 走直连还是代理, 都会一会断一下
    wwxwlw
        8
    wwxwlw  
       253 天前
    @wwxwlw 系统是 One UI 美版, 工具是 cmfa
    ShadowPower
        9
    ShadowPower  
       253 天前
    修改系统的 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  
       253 天前
    @huhalo 只有大陆版 MIUI 会这样,原因是 google 服务的后台被限制了
    wangxiao20170401
        11
    wangxiao20170401  
    OP
       253 天前
    我这比较奇怪:

    [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
       253 天前
    使用 Clash For Andoid 代理后 [1] 和 [2] 只是状态显示为 已连接,实际是无法连接的,连接时长总是显示为 00:00 ,反而直连是正常的。
    fydss
        13
    fydss  
       253 天前
    用的国际版,不开代理也是一直连上的,如果收不到通知是因为 APP 被杀后台了,这个据说是要保后台才会收到通知
    wangxiao20170401
        14
    wangxiao20170401  
    OP
       253 天前
    问题解决:

    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  
       253 天前
    @wangxiao20170401 #14 可以发一下完整的吗?
    wangxiao20170401
        16
    wangxiao20170401  
    OP
       253 天前 via Android
    ping alt5 6 7 可显示结果
    Zhzp
        17
    Zhzp  
       252 天前
    写规则让 FCM 直连即可,设置 host 可以更稳定一些
    wangxiao20170401
        18
    wangxiao20170401  
    OP
       252 天前 via Android
    @Zhzp 目前这个 2.5.12 版本设置了直连规则也还是不行,只要 FCM 被 Clash 管理,不管规则怎样设置都会出现不可用的情况
    Zhzp
        19
    Zhzp  
       251 天前
    @wangxiao20170401 你可能规则没弄对吧,我就是这样用的,没有任何问题
    wangxiao20170401
        20
    wangxiao20170401  
    OP
       245 天前
    规则应当是没有问题,因为规则没有改动,以前就这样用的
    另外也有搜索到过类似情况,可能也和系统,或系统版本有关
    wangxiao20170401
        21
    wangxiao20170401  
    OP
       245 天前
    现在改动 hosts 让 FCM 直连挺好用的 10 秒提示
    qazgp
        22
    qazgp  
       243 天前
    不知道为啥 我的红米不开 cfa 一直能收到 tg 的消息
    wangxiao20170401
        23
    wangxiao20170401  
    OP
       241 天前
    @qazgp 之前我也有这个疑问,原因是 FCM 可以直连
    Yonsan
        24
    Yonsan  
       190 天前
    你好,有几个问题想跟你咨询一下,还请解答,十分感谢:
    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  
       97 天前
    个人这里是把 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  
       97 天前
    也尝试过修改 yml 文件的 hosts ,不过似乎不能在 cfa 上生效。但是直接在 cfa 的 gui 里修改后 FCM 会直接连接到指定的 ip ,并且也能保持长期连接。不过谁也不能保证这个 ip 一直能用,而且我有好几台设备有的还没 root ,一台一台在软件里修改总归还是麻烦的
    ParadoxDB
        27
    ParadoxDB  
       97 天前
    另外补充一点,其实我使用 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  
       91 天前 via Android
    @ParadoxDB 和你遇到了一样的问题,升级 A14 后发生了变化。不清楚为啥。
    目前把你说的“允许其他应用绕过 VPN”的选项关闭了,观察中。
    ParadoxDB
        29
    ParadoxDB  
       89 天前
    @NaiveSimpleYoung 我猜和 FCM 在 A13/14 上的一些实现有关吧,这个问题我以前提交过 bug report ,最近和 google 跟进下。你可以*#*#426#*#*观察下 FCM 的连接情况。我之前说修改 hosts 不生效是因为缩进不小心搞错了,现在我同时用两套配置文件,按需使用,用指定 hosts 直连的文件有时候可以观察到 FCM 的 8 小时的稳定连接
    NaiveSimpleYoung
        30
    NaiveSimpleYoung  
       89 天前 via Android
    @ParadoxDB 我在关闭 clash 客户端中的“允许其他应用绕过 VPN”设置项后,观察了两天,每次看 FCM 连接状态发现都能保持较长时间的连接,不像之前总是断开或连接中状态。能正常使用了,我就不在乎是不是直连了。
    一个现象是现在 FCM 诊断信息里面连接地址一直是 28.0.0.78 。
    ParadoxDB
        31
    ParadoxDB  
       89 天前
    @NaiveSimpleYoung 直连说是会省电点,不过确实没太所谓。不过你的 FCM 连接地址倒是和我 A13 的时候类似,我 A14 之后,如果是通过代理连接到 FCM 会是 198.18.0.2 这样的,确实也是我 clash 配置文件中的 fake-ip 池里面设置的范围。这段时间大部分通知确实没问题,但 Gmail 的 App 总是无法收到通知(甚至是在前台的情况下),Play Store 下面的评论也有类似的情况,不知道你有没有类似的问题?似乎和 Android 版本还有 Gmail 的版本也没啥关系,反正现在设置了个 TG 机器人的转发先凑合着用吧,哈哈……
    NaiveSimpleYoung
        32
    NaiveSimpleYoung  
       88 天前 via Android
    @ParadoxDB 前段时间出现过 Gmail 收不到 telegram 验证码通知,不过本来那时候 FCM 就有频繁断开的情况。刚才我用 QQ 邮箱给 Gmail 发邮件,立即收到了通知,在 FCM 日志里看到了推送记录。
    ParadoxDB
        33
    ParadoxDB  
       81 天前 via Android
    @NaiveSimpleYoung 似乎是 ROM 的问题,之前用的 Evo X ,由于有一些问题以及严重的耗电,换成了 crDroid ,目前 Gmail 通知正常...
    saysaysay
        34
    saysaysay  
       40 天前
    @ParadoxDB 三星也这样,bypass vpn 关闭就好了。pixel 直连就行,就是手机的问题。所以不能直连的就关闭允许绕过 vpn 。
    ParadoxDB
        35
    ParadoxDB  
       37 天前
    @saysaysay 我手机用的就是 Pixel 然后设置的 Hosts+bypass vpn ,新加坡版的三星平板也用的同一套设置,也可以直连的。虽然 Android 版本不一样但只要设置了 Hosts+bypass vpn 基本都可以直连 FCM
    saysaysay
        36
    saysaysay  
       36 天前
    @ParadoxDB 我的 pixel 只要设置 fcm 直连就行,但是三星需要设置 passbook
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1349 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 17:31 · PVG 01:31 · LAX 10:31 · JFK 13:31
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.