In my experience nothing really works, because the Chinese firewall is more like a whitelist than what it used to be.
OpenVPN over WebSocket proxy works, sometimes. Some commercial VPNs work up to a point, but expect very low bandwidth and frequent annoying disconnects.
A lot of hotels in GZ have internet through HK for some odd reason I can’t fathom, it was nice browsing Facebook in my hotel room without a VPN.
Plus even just to get a SIM card you need passport/id. So to be able to speak freely some kind of secure anonymization layer is needed.
Outline integrates with DigitalOcean (easiest to use), Google Cloud, and Amazon Web Services. It also works with any other Linux server host.
Shadowsocks is resistant to the detection methods used by the Great Firewall, but has been steadily declining in effectiveness according to user reports on GitHub. It's still much better than OpenVPN, which reportedly gets interrupted frequently.
If you want a more comprehensive solution, you can also use the Streisand tool to set up a variety of VPN protocols, including OpenConnect, Shadowsocks, and WireGuard. On Streisand, Shadowsocks can be equipped with the V2ray plugin to help evade detection.
https://github.com/StreisandEffect/streisand
Streisand's setup process is slower and less reliable than Outline VPN's. There's no management console here, just a shell script (using Ansible) to deploy the services to a server. You are given instructions for manually setting up third-party client software (also open source) after the server deployment is complete.
I think this is a problem that needs a political solution, not a technical one. The protesting in HK is probably the best way to go about this.
The practice is also so common that it would likely be impractical to make the penalty more severe.
That said, you should just use Lantern. Recently international links out of China are insanely unreliable, but we’re continuing to improve it. There are hiccups, but it works.
1. Censorship-resistant chat: Something DHT-based preferrably, I am looking at Status.im right now
2. Mesh Internet over the air, something like DN42 but over wireless links