55
submitted 1 day ago by [email protected] to c/[email protected]

Hi, I live in Germany and only have public IPv6. My address changes only very, very rarely and has never changed in the time I've been self-hosting.

I also have a very small, pretty cheap VPS with static IPv4/IPv6 – which would seem like a great fit for some sort of tunneling/proxy setup. Now comes the question: What/how should I use it? I would like to not have the additional latency for IPv6 enabled hosts, can I just setup a reverse proxy for IPv4? Would Tailscale work for my usecase, what are some resources you found useful when using it?

Currently, I'm just hosting everything IPv6-only and hoping my address never changes, but that does not work for everyone, as especially many new buildings with fiber optic connections still only have IPv4 (strangely).

you are viewing a single comment's thread
view the rest of the comments
[-] [email protected] -5 points 1 day ago

But having a reverse proxy would enable someone getting access to it to read traffic, while having a VPN Tunnel won't.

[-] [email protected] 12 points 1 day ago

If someone manages to get root (!) access on this VPS it's over either way.

[-] [email protected] 3 points 1 day ago

Your reverse proxy should have a cert with HTTPS.

[-] [email protected] 1 points 1 day ago

Tbf, technically data is still decrypted at the reverse proxy and then re-encrypted. So if someone manages to reconfigure the proxy or read its memory somehow they could read traffic in plain text.

However then since they have to control the VPS, they could also get a new cert for that domain (at least the way I’ve configured it) even if it was passed as is to the real host via a tunnel and read the plaintext data that way, so I don’t think a tunnel protects against anything.

[-] [email protected] 1 points 1 day ago

Or just use Nginx stream proxy, and all the encryption happens on the endpoints. No need for certs on the proxy at all.

This is how I make https and mqtts available on ipv4.

[-] [email protected] 1 points 1 day ago

Oh interesting, I’ll have to look into that. Is this with that “proxy protocol” I’ve seen mentioned? If not, does this preserve it pass through the client socket address?

[-] [email protected] 1 points 1 day ago

It's merely a tcp proxy. It doesn't even have to be http since it has no idea. The trick with tls is that it can extract the requested host name via SNI.

[-] [email protected] 1 points 21 hours ago

Hm, okay, that does sound like the real client IP will get lost and every connection will appear to come from the proxy then. It would be good if that were passed somehow. My current setup adds the X-Forwarded-For header for example.

[-] [email protected] 1 points 14 hours ago* (last edited 14 hours ago)

That is correct. There is a trick where you can set the source ip to the ipv6 mapped ipv4 ip it originally came from. I have implemented that in a transparent tcp proxy I worked on some years ago, but I am not sure if nginx supports that.

I should look into that actually. It would be useful to me as well.

Edit: actually that only works if you are in the routing path. However a nat64 solution would work as well, where you map a /64 back to the proxy.

[-] [email protected] 1 points 1 day ago

I use this setup and don’t terminate SSL at the VPS and solely tunnel the encrypted traffic over a wire guard tunnel to the home lab where SSL is terminated.

The VPS solely serves to move the traffic from an external IP to an internal one.

It’s possible that someone could log into my server, change the nginx config to terminate SSL and then siphon data but it would take a few steps and can be somewhat mitigated by stapling the SSL certs that should be seen from the homelab.

this post was submitted on 08 Jun 2025
55 points (96.6% liked)

Selfhosted

46672 readers
1060 users here now

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:

  1. Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.

  2. No spam posting.

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

  4. Don't duplicate the full text of your blog or github here. Just post the link for folks to click.

  5. Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).

  6. No trolling.

Resources:

Any issues on the community? Report it using the report flag.

Questions? DM the mods!

founded 2 years ago
MODERATORS