I want to move away from Cloudflare tunnels, so I rented a cheap VPS from Hetzner and tried to follow this guide. Unfortunately, the WireGuard setup didn’t work. I’m trying to forward all traffic from the VPS to my homeserver and vice versa. Are there any other ways to solve this issue?
VPS Info:
OS: Debian 12
Architecture: ARM64 / aarch64
RAM: 4 GB
Traffic: 20 TB
I had a similar problem like you. My provider only gives me a public IPv6 but no public IPv4. Im using a VPS with an IPv4 with jool to set up SIIT-DC https://nicmx.github.io/Jool/en/siit-dc.html
This converts all IPv4 traffic arriving at the VPS to IPv6 traffic which gets then directly routed to my homeserver.
Not sure if this setup would work for you. This is not a viable solution if you are completly behind a CGNAT without even a public IPv6.
Pro:
- Works without any sensitive Data on the VPS (SSl certificates/passwords…)
- Works for all IP based traffic (TCP,UDP,ICMP)
- The original source IPv4 can be restored by the homeserver Contra:
- AFAIK you cannot choose to only forward some TCP ports. Everything gets redirected.
- You cannot access the VPS via IPv4 anymore since it gets redirected to your homeserver. (I only access my VPS via IPv6)
- No (additional) encryption. (This is no problem for me since all my traffic is already e2e encrypted)
I managed this by using tailscale, with a kind of weird setup I think, but it just works.
I have tailscale on the VPS and my local server, let’s say its tailscale name is potatoserver
Then with Caddy on the VPS i have something like:
mywebsite.com { reverse_proxy potatoserver:port }
And so mywebsite.com is accessible on the clearnet through the VPS
Though given you’re getting rid of cloudflare tunnles I don’t know if you’d want to get into Tailscale. There’s Headscale too but I haven’t worked with it so I can’t comment
Do you have a working Wireguard connection? If so you can setup two reverse proxies.
Not really, pinging my homeserver via the VPS returns:
PING 10.0.0.2 (10.0.0.2) 56(84) bytes of data.
From 10.0.0.1 icmp_seq=1 Destination Host Unreachable
ping: sendmsg: Destination address required
From 10.0.0.1 icmp_seq=2 Destination Host Unreachable
ping: sendmsg: Destination address required
^C
--- 10.0.0.2 ping statistics ---
2 packets transmitted, 0 received, +2 errors, 100% packet loss, time 1019ms
Forget iptables. You have a broken Wireguard setup. Did you verify that you have the proper keys and that Wireguard is allowed though the firewall?
I have no idea how to properly manage the firewall with Hetzner. I’ve opened the ports on the Hetzner management page and I ran several iptables commands to allow traffic from those ports. Still doesn’t work. This is weird!