this post was submitted on 11 Apr 2024
14 points (100.0% liked)

Selfhosted

40133 readers
579 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 1 year ago
MODERATORS
 

cross-posted from: https://lemmy.world/post/14180956

Hello all you lovely people!

I'm trying to figure out if I can port forward to different servers based on the destination domain.

I have a domain with a wildcard cert and I'd like to be able to route all traffic headed towards "1.domain.com" to a server I'm calling "1". I'd still like traffic headed to domain.com to go to where it's currently going, we can call this server "0", and to be able to have a 2.domain.com or 3 or 4 in the future.

I thought that having a port forward rule with: interface: WAN Protocol: any source: any destination: a url alias including 1.domain.com redirect target ip: local ip

Would work, but it doesn't seem to. Any tips?

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 20 points 7 months ago (1 children)
[–] [email protected] 3 points 7 months ago* (last edited 7 months ago) (3 children)

I have a reverse proxy, but that won't do ALL traffic, right? Just http or https?

Like if I want to ssh into the different servers, it won't handle that, will it?

[–] [email protected] 1 points 7 months ago* (last edited 7 months ago)

If you control the software stack at both ends you may want to consider Chisel which is a HTTP tunnel for TCP and UDP.

The connections would go SSH client > Chisel client > HTTP reverse proxy > Chisel server > SSH server. The Chisel elements speak HTTP to each other so that segment between them can be routed by domain.

Chisel can also do its own encryption so you can use HTTP and avoid the HTTPS-specific issues about extracting the domain name from the HTTPS connection.

[–] [email protected] 3 points 7 months ago

Like the other commenter said, that is correct. For SSH, I set up a VM as my SSH bastion or jump host. I connect to that, and the SSH from that to any other machine on the network.

[–] [email protected] 6 points 7 months ago (1 children)

you only have one IP. As you rightfully said, reverse proxy does only http(s), port 80/443. this works because of the nature how http requests work. They carry the hostname as part of the protocol (request headers). SSH is a whole other story, since the client does not send the hostname as part of the protocol, only the IP and the port.

What you can do is forward different ports to different machines... 2021 -> server1, 2022 -> server2, etc.

[–] [email protected] 2 points 7 months ago* (last edited 7 months ago)

For SSH the ProxyJump directive is awesome. Have one server reachable from outside and then use it to jump to all the others.