China trip 2023: internet and payment situation and app recommendation

28th July 2023 – 1391 words

After a long break caused by Corona, we went back to China this year. Because the internet situation for a foreigner is far from ideal, I want to share my experiences of using various “Jump the wall” strategies.

1. Buying a SIM card in HongKong with China Roaming

If you have a couple of hours, you can buy a SIM card directly at Hongkong Airport. You just have to leave the transfer area and immigrate. Inside the airport, there is a 7Eleven shop. There, you can buy a SIM card, which is made for Mainland China Roaming. Just can buy with your VISA card (ApplePay works great!). Then, you have to activate the SIM card and register with a passport (Photo is enough). All-in-all took about 15min and I had unrestricted internet in China. Best, you activate BEFORE entering China though, because maybe accessing the register portal needs some WiFi connection first. Best, just to it right at the airport

CSL Sim card details

  • Pro: Easy to obtain, relatively cheap, good reception
  • Neg: only 2/4GB included traffic, which can be used up quickly. Have to go through Hongkong to obtain it. You can recharge the card online with your credit card and can buy more 2GB slices for 60 HKD (7 EUR).

2. Self-hosted VPN from Germany - Trojan-Go

Heads up: I prepared Trojan like below, but in the end used it only a few times, because the speed was extremely low. Like max. 100kb/s, only useful for accessing a couple of websites in serial and getting some information. I guess, between China and Hetzner is not a good peering, or the GFW is throttling the speed to a probable proxy, who knows. In the end, it is just a fallback now.

As an IT person, setting up my own VPN was another option. I read, that the Shadowsocks protocol, that I used years before, does not work anymore, and one should now use Trojan-Go. So, I set up a Trojan-Go server which is easy using docker-compose on a Hetzner VM IF you can also bring a domain name (you must have access to a domain name, to make Trojan useful and get a LetsEncrypt certificate)

  1. Order server from your favourite provider
  2. Add a domain name (A-Record) to that server, it can also be a subdomain.
  3. use the trojan-go:
apt update
apt install docker-compose curl uuid
git clone https://github.com/Jeonkwan/trojan-go-caddy/ /opt/trojan
cd /opt/trojan
source ./configure_trojan-go.sh
# Enter domain name and a random password
docker-compose -f docker-compose_trojan-go.yml up -d

Then, to connect you can install an iOS app “OneClick” - BUT that must be done before entering China because the app is not available in the AppStore.

For MacOS or Windows PCs, you must also install the trojan package and configure it with the client and leave out the server part. I had trouble running it via Homebrew and launchctl and instead opted to manually run it every time I needed it. It also will only start a SOCK5 proxy that you must manually configure in e.g. Firefox to work. To make it globally available you might need other software, like polipo.

  • Pro: It works, I guess?
  • Neg: Very very slow for my setup / server at least. Hard to set up for non-technical people.

3. The VPN I actually used - Veee+

In the end, I got a recommendation for the App Veee+, which I could download from the App Store through my Hongkong SIM card without issue. Then you can book the “VIP” package for about $15 per 90 days package, which is very reasonable. As of 2023, that VPN is working great. They also provide a Mac/Windows app - Which I downloaded through the phone and sent via Airdrop to the laptop… because the Trojan was too slow. If you book the subscription via AppStore, I recommend creating an account before buying the package first. I booked the subscription first and then created an account, and then later I had to contact support to merge the subscription from the Anonymous “Tourist”-Account to the email account.

Pro: Hi-Speed, various apps, very reasonable price. Neg: Have to download before entering China from the AppStore to work correctly.

App-Store Website (Affiliate*)

*: will give you 10% off, if buying a full year’s package.

Veee+/Proxy usage for developer tools (console, bundler, yarn, curl…)

Even after using Veee+ global mode, you might not be able to access Github from the command line. Unfortunately, to install a lot of developer stuff - Homebrew recipes, Rubygems, NPM-Packages etc. you need access to Github, which might be disabled (At least it was for me). To fix this, you need to manually tell all underlying programs to use the Veee+ Proxy.

In MacOS bring up the “Proxies” configuration. There, after you enabled Veee+ global mode you can see the configured Proxy localhost plus a port number with a 5-digit number. Note that number, go into your console and:

export http_proxy=http://localhost:15236
export https_proxy=http://localhost:15236

After that, you should be able to access Github and install all the stuff you need. Note that you have to do this for every new console session. You can also add it to your .bashrc or .zshrc file if you are longer in China.

Usually, normal ssh usage was no problem from within China for me, but if you have trouble, you can also use the same proxy for ssh. Also, in some situations, it can improve the connection latency or bandwidth, so working on a remote system via TMux and quickly switching panes is much more enjoyable.

# For MacOS usw -x
export ssh_proxy='ProxyCommand=nc -x connect -x localhost:15235 %h %p'
# For GNU/Linux usw -X
# export ssh_proxy='ProxyCommand=nc -X connect -x localhost:15235 %h %p'
ssh -o "$ssh_proxy" user@host

4. Payment - WeChat-Pay

Now there is almost no cash payment anymore in China. You buy everything via WeChat Pay or AliZhuFuBao. Before flying to China, I tried to use both and link my VISA card, but both failed me during the verification, like even if I supplied a Passport and Visa, I would get random errors. But fortunately, WeChat formally announced that they allow you to use foreign VISA cards now, since about 20th July or so.

There is a 3% fee for transactions more than 200 yuan, with an annual payment cap of 60,000 yuan.

Go to: Me -> Services -> Money should start the verification process. You must enter your passport data and make a photo of your passport, as well as a face verification of yourself (Tip: Use a white background). The process was still very buggy and badly translated, but in the end, now I can use WeChat Pay. Still cannot receive HongBaos and send people money, but I can pay with QR codes at least. If you pay more than CNY200, there is also a service fee.

Things to still find out: -didi-taxi-, train tickets, bus tickets, etc. - I will update this post, once I know more.

Didi Taxi: I just used the Mini-app within WeChat to call a cab without any problem. It worked; the only downside is, that sometimes the driver will try to call you if they can’t find you are unable to use their app to find your location. So some Chinese is useful or have a friend nearby for translation.

5. Maps: Apple Maps

GoogleMaps is still borderline useless, because the GPS fix is completely off, because of a policy by China. Also, the map data is now growing old, as GMaps is not used anymore in China. But, Apple Maps to my surprise worked relatively well, even has some Subway lines integrated and good POI information.

6. Chinese characters reading: Pleco + Apple Camera

Apple camera has that great AI feature where you can select text in the Photo. So my process is like this: making a photo of the menu, selecting the text, switching to Pleco and receiving the translation.