Home

a VPN that is easily self-hostable and resistant to blocking?

$$12993
https://eviltoast.org/u/pr3d posted on Mar 16, 2026 14:57

Hi, i’m looking for a VPN that:

  • is easily deployable via a docker-compose
  • has an Android App and it doesn’t drain the battery too much
  • hides as regular HTTPS traffic so it’s not blockable by Firewalls. (I don’t need strong censorship resistance; it just has to work in offices and hotel WiFis.)
  • Bonus: A server like caddy can also accept HTTPS traffic for some regular websites next to the VPN server.

https://github.com/TrustTunnel/TrustTunnel sounds interesting, but the PR for docker compose was closed.

Do you know something else?

https://eviltoast.org/post/25539021
Reply
$$13003
https://lemmy.world/u/irmadlad posted on Mar 16, 2026 15:16
In reply to: https://eviltoast.org/post/25539021

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.

https://lemmy.world/comment/22693540
Reply
$$13014
https://lemmy.dbzer0.com/u/meme_historian posted on Mar 16, 2026 15:29
In reply to: https://eviltoast.org/post/25539021

Wireguard on a VPS and run it through port 443. That should get you through most things that don’t do TLS inspection

https://lemmy.dbzer0.com/comment/24986625
Reply
$$13031
https://sh.itjust.works/u/spaghettiwestern posted on Mar 16, 2026 16:30
In reply to: https://eviltoast.org/post/25539021

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.

https://sh.itjust.works/comment/24322167
Reply
$$13038
https://lemmy.zip/u/hellmo_luciferrari posted on Mar 16, 2026 16:50
In reply to: https://sh.itjust.works/comment/24322167

Have you tried https://github.com/zaneschepke/wgtunnel

I use this WG client and it has options for auto-tunneling

https://lemmy.zip/comment/25291684
Reply
$$13044
https://lemmy.world/u/iopq posted on Mar 16, 2026 17:13
In reply to: https://sh.itjust.works/comment/24322167

Doesn’t work in China, can be easily blocked by censors

https://lemmy.world/comment/22695752
Reply
$$13046
https://lemmy.world/u/iopq posted on Mar 16, 2026 17:14
In reply to: https://lemmy.world/comment/22693540

Wireguard is not resistant to blocking, it is plain as day if you’re using wireguard and china had blocked it for years

https://lemmy.world/comment/22695764
Reply
$$13045
https://lemmy.world/u/iopq posted on Mar 16, 2026 17:16
In reply to: https://eviltoast.org/post/25539021

Use xray. I suggest the REALITY + XHTTP setup where you look like another h2 server

I use the v2rayng mobile app since I don’t switch servers much, I only have two

https://lemmy.world/comment/22695800
Reply
$$13048
https://lemmy.world/u/iopq posted on Mar 16, 2026 17:17
In reply to: https://lemmy.dbzer0.com/comment/24986625

So, not resistant to blocking

https://lemmy.world/comment/22695807
Reply
$$13054
https://lemmy.world/u/irmadlad posted on Mar 16, 2026 17:26
In reply to: https://lemmy.world/comment/22695764

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.

https://lemmy.world/comment/22695996
Reply
$$13059
https://lemmy.decronym.xyz/u/Decronym posted on Mar 16, 2026 17:30
In reply to: https://eviltoast.org/post/25539021

Acronyms, initialisms, abbreviations, contractions, and other phrases which expand to something larger, that I’ve seen in this thread:

Fewer Letters More Letters
IP Internet Protocol
SSL Secure Sockets Layer, for transparent encryption
TLS Transport Layer Security, supersedes SSL
VPN Virtual Private Network

[Thread #171 for this comm, first seen 16th Mar 2026, 17:30] [FAQ] [Full list] [Contact] [Source code]

https://lemmy.decronym.xyz/comment/18572
Reply
$$13084
https://programming.dev/u/moonpiedumplings posted on Mar 16, 2026 18:05
In reply to: https://eviltoast.org/post/25539021

It’s not quite a VPN, but it is very resistant against blocking:

https://programming.dev/comment/22662028

https://programming.dev/comment/22755703
Reply
$$13102
https://eviltoast.org/u/pr3d posted on Mar 16, 2026 18:46
In reply to: https://programming.dev/comment/22755703

ok, not what i’ve been looking for, but they provide a docker-compose.yaml. Looks simple

https://eviltoast.org/comment/18062345
Reply
$$13104
https://discuss.tchncs.de/u/cmnybo posted on Mar 16, 2026 18:46
In reply to: https://eviltoast.org/post/25539021

You can use stunnel to make your VPN look like HTTPS.

https://discuss.tchncs.de/comment/24569561
Reply
$$13105
https://eviltoast.org/u/pr3d posted on Mar 16, 2026 18:49
In reply to: https://lemmy.world/comment/22695800

the repos i’ve found do not look very trustworthy. https://github.com/2dust/v2rayNG https://github.com/XTLS/Xray-core well its chinese

https://eviltoast.org/comment/18062384
Reply
$$13119
https://sh.itjust.works/u/spaghettiwestern posted on Mar 16, 2026 19:11
In reply to: https://lemmy.world/comment/22695752

I don’t need strong censorship resistance; it just has to work in offices and hotel WiFis.

OP: “I don’t need strong censorship resistance; it just has to work in offices and hotel WiFis.”

https://sh.itjust.works/comment/24325031
Reply
$$13121
https://sh.itjust.works/u/spaghettiwestern posted on Mar 16, 2026 19:11
In reply to: https://lemmy.zip/comment/25291684

Thanks for the link. Will take a look.

https://sh.itjust.works/comment/24325035
Reply
$$13137
https://discuss.tchncs.de/u/devtoolkit_api posted on Mar 16, 2026 19:38
In reply to: https://eviltoast.org/post/25539021

For your exact use case (hiding as HTTPS, Docker, works behind restrictive firewalls), I would strongly recommend looking at:

  1. WireGuard + wstunnel — WireGuard itself is great but easily blocked. Wrapping it in wstunnel makes it look like regular WebSocket/HTTPS traffic. Docker-compose setup is straightforward.

  2. Cloak + OpenVPN/Shadowsocks — Cloak is specifically designed to make VPN traffic look like normal HTTPS to a CDN. Very effective against DPI.

  3. Headscale (self-hosted Tailscale control server) — not inherently resistant to blocking, but combined with a DERP relay behind Caddy, it works well on most networks. The Tailscale Android app is excellent on battery life.

For the Caddy coexistence requirement specifically, wstunnel is probably your best bet since it literally runs as a WebSocket endpoint that Caddy can reverse proxy alongside your regular sites.

I have been running a similar setup (WireGuard over wstunnel behind Caddy) on a small VPS and it has worked through hotel and airport WiFi without issues.

https://discuss.tchncs.de/comment/24570585
Reply
$$13143
https://feddit.uk/u/sunbeam60 posted on Mar 16, 2026 19:44
In reply to: https://lemmy.world/comment/22695752

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.

https://feddit.uk/comment/23890372
Reply
$$13145
https://lemmy.zip/u/hellmo_luciferrari posted on Mar 16, 2026 19:47
In reply to: https://sh.itjust.works/comment/24325035

I quite like the option! I do love tasker, but if i only need auto tunneling this does it quite well!

https://lemmy.zip/comment/25295392
Reply
$$13168
https://lemmy.dbzer0.com/u/black_flag posted on Mar 16, 2026 20:22
In reply to: https://eviltoast.org/post/25539021

Amnezia?

https://lemmy.dbzer0.com/comment/24991785
Reply
$$13259
https://lemmy.world/u/ikidd posted on Mar 16, 2026 22:30
In reply to: https://eviltoast.org/post/25539021

You can obfuscate Wireguard with a SOCKS proxy.

https://lemmy.world/comment/22701303
Reply
$$13375
https://programming.dev/u/moonpiedumplings posted on Mar 17, 2026 02:51
In reply to: https://eviltoast.org/comment/18062384

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 in Chinese is proof of their effectiveness.

https://programming.dev/comment/22763627
Reply
$$13378
https://programming.dev/u/moonpiedumplings posted on Mar 17, 2026 03:00
In reply to: https://sh.itjust.works/comment/24325031

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.

https://programming.dev/comment/22763716
Reply
$$13383
https://sh.itjust.works/u/spaghettiwestern posted on Mar 17, 2026 03:15
In reply to: https://programming.dev/comment/22763716

Many of the prominent https VPN protocols are for evading the great firewall of China. OP had that as a requirement

Where the fuck do you get this stuff?

https://sh.itjust.works/comment/24331723
Reply
$$13385
https://programming.dev/u/moonpiedumplings posted on Mar 17, 2026 03:35
In reply to: https://sh.itjust.works/comment/24331723

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.

https://programming.dev/comment/22764049
Reply
$$13428
https://lemmy.world/u/iopq posted on Mar 17, 2026 06:33
In reply to: https://feddit.uk/comment/23890372

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

https://lemmy.world/comment/22706292
Reply
$$13429
https://lemmy.world/u/iopq posted on Mar 17, 2026 06:35
In reply to: https://eviltoast.org/comment/18062384

Xray-core is the one you want, very hard to block

https://lemmy.world/comment/22706314
Reply
$$13433
https://lemmy.world/u/iopq posted on Mar 17, 2026 06:41
In reply to: https://lemmy.world/comment/22695996

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

https://lemmy.world/comment/22706370
Reply
$$13457
https://lemmy.world/u/BiggestPiggest posted on Mar 17, 2026 08:06
In reply to: https://lemmy.dbzer0.com/comment/24991785

Yeah. This.

https://lemmy.world/comment/22707149
Reply
$$13474
https://aussie.zone/u/Drusenija posted on Mar 17, 2026 08:50
In reply to: https://eviltoast.org/post/25539021

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.

https://aussie.zone/comment/21971317
Reply
$$13490
https://pawb.social/u/black0ut posted on Mar 17, 2026 09:58
In reply to: https://eviltoast.org/post/25539021

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.

https://pawb.social/comment/21196068
Reply
$$13494
https://lemmy.zip/u/eleitl posted on Mar 17, 2026 10:07
In reply to: https://lemmy.world/comment/22695752

Russia has harsher blocks than China, meanwhile.

https://lemmy.zip/comment/25306835
Reply
$$14171
https://lemmy.world/u/iopq posted on Mar 18, 2026 08:05
In reply to: https://lemmy.zip/comment/25306835

Yes, they actually block legitimate websites too, apparently

https://lemmy.world/comment/22725893
Reply
$$14200
https://lemmy.world/u/mlg posted on Mar 18, 2026 09:04
In reply to: https://eviltoast.org/post/25539021

(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.

https://lemmy.world/comment/22726398
Reply
$$14505
https://eviltoast.org/u/pr3d posted on Mar 18, 2026 18:30
In reply to: https://lemmy.world/comment/22726398

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.

https://eviltoast.org/comment/18097248
Reply
$$14513
https://eviltoast.org/u/pr3d posted on Mar 18, 2026 18:42
In reply to: https://programming.dev/comment/22764049

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.

https://eviltoast.org/comment/18097445
Reply
$$14555
https://programming.dev/u/moonpiedumplings posted on Mar 18, 2026 19:54
In reply to: https://eviltoast.org/comment/18097445

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.

https://programming.dev/comment/22796503
Reply
$$14580
https://eviltoast.org/u/pr3d posted on Mar 18, 2026 21:14
In reply to: https://programming.dev/comment/22796503

Pretty nice idea! Will try it. Thanks.

https://eviltoast.org/comment/18099743
Reply