You can use stunnel to make your VPN look like HTTPS.
Selfhosted
A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.
Rules:
-
Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.
-
No spam posting.
-
Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it's not obvious why your post topic revolves around selfhosting, please include details to make it clear.
-
Don't duplicate the full text of your blog or github here. Just post the link for folks to click.
-
Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).
-
No trolling.
-
No low-effort posts. This is subjective and will largely be determined by the community member reports.
Resources:
- selfh.st Newsletter and index of selfhosted software and apps
- awesome-selfhosted software
- awesome-sysadmin resources
- Self-Hosted Podcast from Jupiter Broadcasting
Any issues on the community? Report it using the report flag.
Questions? DM the mods!
Wireguard on a VPS and run it through port 443. That should get you through most things that don't do TLS inspection
So, not resistant to blocking
You can obfuscate Wireguard with a SOCKS proxy.
resistant to blocking?
That's going to be the sticky wicket right there. It is rather trivial for server admins to know what IPs go with VPNs and not. Wireguard is about the best thing on the planet right now, imho, but it will also get blocked. Occasionally, I will happen on a site that outright blocks me. If I can't bend the site to my will, I just move on. The information on the blocked site will 9 times out of 10 be found duplicated somewhere else.
One 'trick' I've found works fairly well is Opera. So, when I go to pay my bills online, my VPN coupled with the way I have Firefox configured, will trigger a block. I can fire up Opera, engage it's built in VPN, still keep my local VPN connected, and have no problem accessing my bills. It's not an elegant solution, and some users have preclusions to Opera. However, that generally works for me.
Wireguard is not resistant to blocking, it is plain as day if you're using wireguard and china had blocked it for years
I sort of said as much. It really doesn't matter, imho, what you use. As soon as that service becomes abused globally, everyone blocks it, including Tor. Any server using DPI or TLS will spot it a mile away. Now, if you have a fool proof way, than I am very much ready to be educated.
It does matter.
When I connect to my VPN, the network sees that the server name is yahoo.com
It actually connects to my server which sends the request to yahoo.com and then replies with the cert. So the network sees that yahoo.com sent the cert back to my client from that IP address
Then there is a bunch of encrypted communication with timings and sizes that look like I'm downloading stuff over http.
I'd like to hear a credible model of blocking this
Amnezia?
Yeah. This.
If you want a decently hidden VPN, I recommend setting up an OpenVPN instance, with a TCP tunnel, encapsulated within Stunnel. It manages to stay hidden even with DPI.
The setup is a bit convoluted, especially if you want everything to use certificates for maximum security. It's also not the fastest VPN, and TCP isn't the most efficient for a VPN. But it's decent enough for a normal user.
You can set it up on both Linux and Windows, even having both ends of the tunnel on Windows, but it's easier and better to set it up on Linux.
Use xray. I suggest the REALITY + XHTTP setup where you look like another h2 server
You can docker compose your panel for managing your server, get a free subdomain from afraid.org and set up tls on it
I use the v2rayng mobile app since I don't switch servers much, I only have two
the repos i've found do not look very trustworthy. https://github.com/2dust/v2rayNG https://github.com/XTLS/Xray-core well its chinese
Yes because they are all designed to evade the great firewall of China, which automatically catches almost all other VPN's and proxies.
Github is blocked in China. The fact that these repos are on Github and Chinese is proof of their effectiveness.
Xray-core is the one you want, very hard to block
I've run Wireguard on 443 (on my router) for exactly that purpose and never had a problem, even when my standard WG port was blocked by some businesses. I've since had to move to port 587 due to router conflicts and it's worked fine so far too.
The battery drain on Android is negligible (at least for my uses) and WG is activated by Tasker whenever my home wifi is out of range. From what I can see WG is configurable via Docker compose.
Have you tried [https://github.com/zaneschepke/wgtunnel](WG Tunnel)
I use this WG client and it has options for auto-tunneling
Thanks for the link. Will take a look.
I quite like the option! I do love tasker, but if i only need auto tunneling this does it quite well!
Doesn't work in China, can be easily blocked by censors
Who said anything about China?
OP: "I don’t need strong censorship resistance; it just has to work in offices and hotel WiFis."
Many of the prominent https VPN protocols are for evading the great firewall of China. OP had that as a requirement, so it is not an unreasonable assumption.
If you are evading less locked down firewalls, then you don't need as stealthy VPNs.
Many of the prominent https VPN protocols are for evading the great firewall of China. OP had that as a requirement
OP said exactly the opposite. Where the fuck do you get this stuff?
hides as regular HTTPS traffic so it’s not blockable by Firewalls
From OP's post, of course. If OP does not need to evade firewalls that are that aggressive, then they should have settled for a less stealthy VPN solution, as many of these HTTPS proxy solutions have performance and usability (can often only proxy TCP traffic) tradeoffs.
Perhaps they have already tried the wireguard on port 443 solution, and it didn't work for them. My high school would auto detect and block wireguard to any port. Perhaps they are in a similar situation.
I haven't tried WG on 443/udp yet. On my last UK journey I had it on the default WG port and it was blocked a few times. Will try 443/udp @ homelab next time. Every other advanced obfuscating solution sounds pretty complicated and I'm not sure if there will be time to handle this during a journey.
Also try wireguard over port 53. Often (udp) traffic to port 53 is unblocked because it's needed for DNS.
What is special about this setup is that it can sometimes get around captive portal wifi.
Pretty nice idea! Will try it. Thanks.
Most Chinese exits through port snooping. And you really need to be on a Chinese corp network to know - if you take your western mobile there they do very little blocking.
I’ve been fairly successful with most China corp networks letting me out and in to self-hosted WG server on port 123.
Because if you're roaming it creates a VPN, basically through the Chinese network
But it you want a lot of data, like for YouTube, you're not going to want to pay roaming rates
Russia has harsher blocks than China, meanwhile.
Yes, they actually block legitimate websites too, apparently
(I don’t need strong censorship resistance; it just has to work in offices and hotel WiFis.
Wireguard on 443 or OpenVPN + Stunnel on 443
Wireguard is easier to setup because there's no OpenVPN app that packages stunnel (afaik), so you have to run 2 apps on your phone to make it work.
A server like caddy can also accept HTTPS traffic for some regular websites next to the VPN server.
Wireguard uses UDP, so just run whatever you want on 443 TCP with caddy (unless you want QUIC for some reason?)
Anything beyond that and you'd be looking at using a proper obfuscation solution like Shadowsocks or obfs4, in which case you should look into Amnezia or Tor bridges.
I think I will stick to wireguard on port 443/udp. Hope UDP is open in strict networks. Maybe someone hasn't heard of HTTP/3.
Everything else sounds not necessary because I don't travel to china or similar. stunnel needs termux on android in-between? This adds too many moving parts IMO.
AmneziaWG will enter wg-easy in v16 and WG Tunnel already supports it. Don't know how hard it it to configure, but the Jc, Jmin, Jmay, ... settings in WG Tunne look confusing.
Acronyms, initialisms, abbreviations, contractions, and other phrases which expand to something larger, that I've seen in this thread:
| Fewer Letters | More Letters |
|---|---|
| DNS | Domain Name Service/System |
| HTTP | Hypertext Transfer Protocol, the Web |
| HTTPS | HTTP over SSL |
| IP | Internet Protocol |
| SSL | Secure Sockets Layer, for transparent encryption |
| TCP | Transmission Control Protocol, most often over IP |
| TLS | Transport Layer Security, supersedes SSL |
| UDP | User Datagram Protocol, for real-time communications |
| VPN | Virtual Private Network |
| VPS | Virtual Private Server (opposed to shared hosting) |
9 acronyms in this thread; the most compressed thread commented on today has 14 acronyms.
[Thread #171 for this comm, first seen 16th Mar 2026, 17:30] [FAQ] [Full list] [Contact] [Source code]
It's not quite a VPN, but it is very resistant against blocking:
My go to choice for this is ocserv to run a Cisco AnyConnect server, and sniproxy to sit on port 443 and handle traffic routing. You configure sniproxy to go to a different server by hostname, and configure ocserv as the fallback option to access the VPN. Any host I expose via sniproxy provides its own HTTPS certificate via my Traefik server.