How the Great Firewall detects a VPN
The Great Firewall does not maintain a list of VPN websites and block those. Blocking a domain is trivial and easily worked around; the system instead identifies the traffic itself, which is why a provider can be reachable one day and useless the next without anything changing on your device.
Two techniques do most of the work. The first is deep packet inspection. Standard VPN protocols have recognisable handshakes: an OpenVPN session opens with a distinctive pattern, and WireGuard has a fixed initiation message with a known structure and length. Neither was designed to hide that it exists - they were designed to keep the contents secret, which is a different problem. A middlebox watching the first few packets of a connection can classify it without decrypting anything.
The second is active probing. When a connection looks suspicious, the system can connect to the same destination itself and speak the protocol it thinks is there. If the server on the other end answers like a VPN server, the address gets added to a blocklist. This is why self-hosting a VPN on a cheap cloud server often works briefly and then stops: the endpoint is discovered, not deduced.
Obfuscation is the answer to both. A stealth or obfuscated transport wraps the tunnel so the handshake resembles ordinary HTTPS traffic on port 443, and a well-implemented one will not answer a probe in a way that identifies it. That is the whole of the feature: it does not make the VPN faster or more private, it makes it harder to classify.
