FLCLASH + WireGuard + WSTUnnel Stable Configuration Practice (3): Google Play download problem solving

ๅœจ FlClash ไธญๆŸฅ็œ‹ๅฎžๆ—ถ่ฏทๆฑ‚ๆ—ฅๅฟ—๏ผŒๆ‰€ๆœ‰ Play ๅ•†ๅบ—็›ธๅ…ณ็š„่ฏทๆฑ‚ๅ…จ้ƒจ่ตฐไปฃ็†

Written by

in

Self-Hosted VPN

From LetsVPN to self-built Wireguard VPN full process review (with pit guide)

WireGuard VPN configuration optimization: domestic website direct connection, foreign traffic to go to VPN (actual measurement is effective)

Wireguard domestic direct connection + foreign tunnel configuration

Self-built VPN series Part 4 Wireguard self-built VPN accidental unavailable full replay: from normal use โ†’ suddenly no handshake โ†’ port is blocked โ†’ port change + intelligent shunt complete solution process

After deactivating self-built WireGuard from LetsVPN: Chengdu Mobile Broadband + Vultr Singapore node The measured network speed is very slow to review + pit dry goods

Self-built WireGuard solution port is frequently blocked, the ultimate minimalist solution (nanny class can be reproduced)

Wireguard handshake is normal but can’t open the network? Why do we have to CN2 GIA, with DMIT deployment & out of stock alternatives

ZgoCloud + Wstunnel + Wireguard speed up 4 times, Clash Verge Rev automatically splits and 443 port anti-sealing actual combat

Troubleshooting Transcript: Solve the DNS deadlock problem of “some websites cannot be accessed” under Clash Verge + Wstunnel + Wireguard

ZGoCloud + Wstunnel + Clash Verge Rev under Ubuntu 26.04

Under Ubuntu 26.04 Self-built VPN speed test report: ZgoCloud + Wstunnel + Wireguard solution experience and comparison guide

zgocloud + wstunnel + flclash VPN configuration under android

Complete troubleshooting and schema optimization for Google Play update exceptions on Android

Thunderbird can’t send Gmail mail after self-built VPN: Cause and Solution

Can’t update the Play Store app after self-built VPN? Don’t toss wstunnel, the problem is in the Clash diversion rules

systemd user service 203/exec error troubleshooting: wstunnel self-starting configuration record

Practical Guide to Stable Clash Verge Rev + WireGuard + Wstunnel Configuration (Part 1): Minimalist Principles and Initial Setup

Clash Verge Rev + Wireguard + WSTunnel Stable Configuration Practice (2): Minimum Correction of DNS Contaminated by Google

Help customers to remotely troubleshoot vultr Wireguard without handshake and cannot access the Internet problem (full record)

Full check record from Thunderbird connection failure to switching to Gmail API client

WSTUnnel + Ficlash Remote Troubleshooting full record under client android: from script creation to IP mismatch

FLCLASH + WireGuard + WSTUnnel Stable Configuration Practice (3): Google Play download problem solving

โš ๏ธ Experimental description (important)

This article is the third part of a series of practice, continuation(1): The principle of minimalism and the construction of the first editionAnd(2): DNS minimum correctionexperimental technical exploration.

The current configuration is still in the validation stage:

  • Not guaranteed to apply to all network environments
  • It is not recommended to directly copy for production or critical business
  • The main purpose is to verify the feasibility of ‘simple rule model + minimum DNS overwriting’

The network environment, DNS behavior and VPS line quality in different regions will have an impact on the final effect. If it runs stably in the future, this description will be removed in the final chapter, and it will be released as a reference stable plan.


1. Problems

When using flclash (the Android client of the Clash Meta core) with the self-built ZgoCloud + Wstunnel + Wireguard scheme, I have a typical problem:

  • Play Store Page: You can open and browse normally.
  • App Updates/Downloads: After clicking ‘Update’, the application has been stuck in the ‘Waiting’ state, there is no download progress, and finally fails.

At the same time, the same set of Clash Verge Rev works perfectly on a Windows computerโ€”โ€”Google access is normal, and the web version of the Play Store can also be opened. Only the Play Store app on Android phones cannot be downloaded.

The problem positioning

On this issue, I am in another blogCan’t update the Play Store app after self-built VPN? Don’t toss wstunnel, the problem is in the Clash diversion rules’There is a detailed analysis, and the core conclusion is:

The root of the problem is not in wstunnel or network link, but in that the clash shunting rules are not detailed enough.

The specific solution is to adjust the order of the rules – will geosite, google, proxy Put on geosite, private before.

The solution

3.1 Core changes

On the basis of v2 configuration, just add one row of rules and adjust its position:

YAML
rules:
  # Wstunnel ๆœๅŠกๅ™จ IP ๅผบๅˆถ็›ด่ฟž
  - IP-CIDR,154.21.196.249/32,DIRECT,no-resolve

  # ===== ๅ…ณ้”ฎ๏ผšGoogle ๆœๅŠก่ตฐไปฃ็†๏ผˆๅฟ…้กปๆ”พๅœจ GEOSITE,private ไน‹ๅ‰๏ผ‰ =====
  - GEOSITE,google,Proxy

  # ๆœฌๅœฐ/็งๆœ‰็ฝ‘็ปœ็›ด่ฟž
  - GEOSITE,private,DIRECT
  - GEOIP,private,DIRECT,no-resolve
  ...

3.2 Why put it in geosite, private before?

Measured found: geosite, google, proxy Put on geosite, private Before, the PLAY store download is back to normal; put in geosite,cn It doesn’t work afterwards.

3.3 Final Profile (V3)

The full configuration has been uploaded to GitHub:shuijingwan/clash-config

YAML
# ==============================================
# ZgoCloud + Wstunnel + WireGuard
# MetaCubeX ๆž็ฎ€็จณๅฎš็‰ˆ v3 (Google Play ไผ˜ๅŒ–)
# ๅ…ผๅฎน๏ผšClash Verge Rev / FlClash
#
# ็‰น็‚น๏ผš
# - ๆœ€ๅฐๅŒ– DNS ่ฆ†ๅ†™๏ผˆไป…้˜ฒๆฑกๆŸ“๏ผ‰
# - ไธไฝฟ็”จ SMTP / YouTube ็‰นๆฎŠ่ง„ๅˆ™
# - ๅŸบไบŽ GEOSITE + GEOIP
# - ็ป“ๆž„ๆœ€ๅฐๅŒ–๏ผŒไพฟไบŽๆŽ’้”™
#
# ่ฐƒๆ•ด๏ผšๅฐ† GEOSITE,google ๅ‰็ฝฎๅˆฐ private ไน‹ๅ‰๏ผŒ
#       ็กฎไฟ Google ๆœๅŠกไผ˜ๅ…ˆ่ตฐไปฃ็†๏ผˆๅฎžๆต‹ๅฏ่งฃๅ†ณ Play ไธ‹่ฝฝ้—ฎ้ข˜๏ผ‰ใ€‚
# ==============================================

# ----- ้€š็”จ่ฎพ็ฝฎ -----
profile:
  store-selected: true # ่ฎฐไฝ็”จๆˆทๅœจ Proxy ็ป„ไธญๆ‰‹ๅŠจ้€‰ๆ‹ฉ็š„่Š‚็‚น๏ผˆ้‡ๅฏๅŽไธไธขๅคฑ๏ผ‰

# ----- DNS ๆœ€ๅฐ่ฆ†ๅ†™๏ผˆ้˜ฒๆฑกๆŸ“๏ผ‰ -----
dns:
  # ๅ›ฝๅ†…ๅŸŸๅ่งฃๆž๏ผšไฝฟ็”จ้˜ฟ้‡Œๅ…ฌๅ…ฑ DNS over HTTPS๏ผŒ็›ด่ฟžไธ็ป่ฟ‡ไปฃ็†
  nameserver:
    - https://dns.alidns.com/dns-query

  # ใ€ๅ…ณ้”ฎใ€‘่ฎฉๆ‰€ๆœ‰ DNS ๆŸฅ่ฏข๏ผˆ็‰นๅˆซๆ˜ฏ fallback๏ผ‰้ƒฝ้€š่ฟ‡ไปฃ็†็ป„ Proxy ๅ‘ๅ‡บ๏ผŒ้ฟๅ…ๆœฌๅœฐ DNS ๆฑกๆŸ“
  proxy: Proxy

  # ๅขƒๅค–ๅŸŸๅ่งฃๆž๏ผšไฝฟ็”จ Cloudflare DNS over TLS๏ผŒ่งฃๆž็ป“ๆžœ็”ฑไปฃ็†้šง้“ไฟๆŠค
  fallback:
    - tls://1.1.1.1:853

  # ๅช่ฎฉ้žไธญๅ›ฝ IP ็š„ๅŸŸๅไฝฟ็”จ fallback๏ผŒๅ›ฝๅ†…ๅŸŸๅๅผบๅˆถ่ตฐ nameserver
  fallback-filter:
    geoip: true
    geoip-code: CN

# ----- ไปฃ็†่Š‚็‚นๅฎšไน‰ -----
proxies:
  - name: ZgoCloud-WG # ่Š‚็‚นๅ็งฐ๏ผŒๅฏ่‡ชๅฎšไน‰
    type: wireguard # ็ฑปๅž‹๏ผšWireGuard
    server: 127.0.0.1 # ใ€ๅฟ…้กปไฟฎๆ”นใ€‘WireGuard ๆœๅŠกๅ™จ็š„ๅœฐๅ€๏ผˆๆญคๅค„ไธบๆœฌๅœฐ wstunnel ๆ˜ ๅฐ„็ซฏๅฃ๏ผ‰
    port: 51820 # ใ€ๅฟ…้กปไฟฎๆ”นใ€‘WireGuard ็ซฏๅฃ

    ip: x.x.x.x # ใ€ๅฟ…้กปไฟฎๆ”นใ€‘ๅˆ†้…็ป™ๆœฌๆœบ็š„ WireGuard ๅ†…็ฝ‘ IP

    public-key: xxx # ใ€ๅฟ…้กปไฟฎๆ”นใ€‘ๆœๅŠกๅ™จๅ…ฌ้’ฅ
    private-key: xxx # ใ€ๅฟ…้กปไฟฎๆ”นใ€‘ๆœฌๆœบ็ง้’ฅ
    pre-shared-key: xxx # ใ€ๅฟ…้กปไฟฎๆ”นใ€‘้ข„ๅ…ฑไบซๅฏ†้’ฅ

    udp: true # ๅฏ็”จ UDP ่ฝฌๅ‘
    mtu: 1280 # MTU๏ผŒ่‹ฅ้‡้ƒจๅˆ†็ฝ‘็ซ™ๅก้กฟๅฏๅฐ่ฏ•่ฐƒๆ•ดไธบ 1200 ๆˆ– 1000

# ----- ไปฃ็†็ป„ -----
proxy-groups:
  - name: Proxy # ไปฃ็†็ป„ๅ็งฐ๏ผŒ่ขซๅˆ†ๆต่ง„ๅˆ™ๅผ•็”จ
    type: select # ็ฑปๅž‹๏ผšๆ‰‹ๅŠจ้€‰ๆ‹ฉ
    proxies:
      - ZgoCloud-WG # ไธปไปฃ็†่Š‚็‚น
      - DIRECT # ็›ด่ฟž๏ผˆไธ่ตฐไปฃ็†๏ผ‰

# ----- ๅˆ†ๆต่ง„ๅˆ™๏ผˆๅŸบไบŽๅœฐ็†ๆ•ฐๆฎ้›†๏ผ‰ -----
rules:
  # Wstunnel ๆœๅŠกๅ™จ IP ๅผบๅˆถ็›ด่ฟž๏ผŒ้ฟๅ…้šง้“่‡ช่บซๆต้‡ๅ›ž็Žฏ๏ผˆno-resolve ่กจ็คบไป…ๅŒน้… IP ่ง„ๅˆ™๏ผŒไธ่งฆๅ‘ DNS ่งฃๆž๏ผ‰
  - IP-CIDR,154.21.196.249/32,DIRECT,no-resolve # ใ€ๅฟ…้กปไฟฎๆ”นใ€‘ๆ›ฟๆขไธบไฝ ็š„ Wstunnel ๆœๅŠกๅ™จๅ…ฌ็ฝ‘ IP

  # ===== ๅ…ณ้”ฎ๏ผšGoogle ๆœๅŠก่ตฐไปฃ็†๏ผˆๅฟ…้กปๆ”พๅœจ GEOSITE,private ไน‹ๅ‰๏ผ‰ =====
  - GEOSITE,google,Proxy

  # ๆœฌๅœฐ/็งๆœ‰็ฝ‘็ปœ็›ด่ฟž
  - GEOSITE,private,DIRECT
  - GEOIP,private,DIRECT,no-resolve

  # ไธญๅ›ฝๅคง้™†ๅŸŸๅๅ’Œ IP ็›ด่ฟž๏ผŒไฟ่ฏๅ›ฝๅ†…่ฎฟ้—ฎ้€Ÿๅบฆ
  - GEOSITE,cn,DIRECT
  - GEOIP,CN,DIRECT,no-resolve

  # ๆ‰€ๆœ‰้žไธญๅ›ฝๅคง้™†ๅŸŸๅ่ตฐไปฃ็†
  - GEOSITE,geolocation-!cn,Proxy

  # ๆœชๅŒน้…ๅˆฐไปปไฝ•่ง„ๅˆ™็š„ๆต้‡๏ผŒ้ป˜่ฎค่ตฐไปฃ็†๏ผˆ้˜ฒๆญขๆณ„ๆผ๏ผ‰
  - MATCH,Proxy

4. Verification results

After the configuration modification is completed, after reloading the Clash:

verification itemResult
Play Store Pageโœ… Normal load, browsing is not affected
app downloadโœ… The progress bar appears normally, the speed is stable
Google Web Accessโœ… Normal

View real-time request logs in flclash, all Play Store-related requestsAll go to the agent, the download works normally:

View real-time request logs in FLCLASH, all Play Store-related requests go to the agent
Plaintext
tcp://play-fe.googleapis.com:443  โ†’ ZgoCloud-WG / Proxy
tcp://rr2---sn-a5mekn6l.xn--ngstr-Ira8j.com:443 โ†’ ZgoCloud-WG / Proxy
tcp://services.googleapis.cn:443  โ†’ ZgoCloud-WG / Proxy
tcp://connectivitycheck.gstatic.com:443 โ†’ ZgoCloud-WG / Proxy

This is exactly the expected behavior:geosite, google The rule will uniformly identify Google-related domain names as proxy traffic, and the complete communication link of the Play Store will be established, and the download will return to normal.

The full communication link of the Play Store was established, and the download was back to normal.

5. Summary

Looking back at the entire investigation process, the biggest lessons are:

Don’t attribute the problem to the underlying network too early.

Wstunnel, although the long link, is not the root cause of the play update to get stuck. The real crux of the Sequence of Clash shunting rules.

In the end, only one line of configuration was changed.– will geosite, google, proxy Put on geosite, private before. This is the power of ‘minimalized configuration’: the problem is in the order of the rules, rather than the need to build up complex DNS overwrites or sets of external rules.

The complete code of the three configurations of this series has been uploaded to GitHub:
๐Ÿ‘‰ shuijingwan/clash-config

Welcome to STAR and FORK, and welcome to submit ISSUE discussions.


Related reading:

WSTUnnel + Ficlash Remote Troubleshooting full record under client android: from script creation to IP mismatch

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.