this post was submitted on 09 Apr 2024
16 points (86.4% liked)

Selfhosted

40198 readers
545 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
 

I want to host a small game server for friends and myself in my home but doesn't want to open up the firewall. Any tunneling solutions supports UDP? Thnaks.

top 20 comments
sorted by: hot top controversial new old
[–] [email protected] 10 points 7 months ago (2 children)

You might try ZeroTier. You'll each need a tiny client app, but its super easy to install and setup, and extremely secure. Free to use with up to 25 devices.

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

Can confirm, very easy to setup clients. And since its not a VPN but a VLAN, you wont run into problems connecting between different clients.

This is pretty much open-source Hamachi.

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

For non tech savy people, is ZeroTier easier to config than Tailscale? I tried Tailscale and everyone needs a account before start playing, which can be a fraction.

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

Im not sure how difficult it is to setup a Tailscale client, honestly.

The Zerotier setup is just installing and joining a network by an id. The Windows version has a bit of a GUI, where you have to right-click on a status bar icon, click Join network, paste in the id and join. The Linux version of the client has a cli, which is imho even better, as you can just send them a whole command to copy into the terminal.

I admin a Zerotier network for a bunch of kids that wanna play Minecraft, and they havent had many problems setting up.

There is a bunch of information on self-hosting the whole system, but Ive honestly never tried any of that. It was just nice that this was "just the open-source LogMeIn Hamachi with a superior implementation of everything".

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

Proprietary solution, no thanks

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

Most VPNs use UDP. So set up a wireguard, tailscale or openvpn.

But you still need to "open up the firewall". UDP still works on ports the same way as TCP. I do agree however, that exposing a VPN port is more secure than exposing a port for a game server, as you don't know about the security of that server software.

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

Does that require my friends install & configure Tailscale/WG/OpenVPN? I tried that route like 2~3 yrs ago with OpenVPN and it doesn't works well.

I would like to keep it as simple and easy as it can be. Aka no need extra software and config. Just fireup the game, connect, and play, as if the server is hosted on some VPS.

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

At some point, you have to compromise.

  • You can open the port(s) used by the game on the firewall (assuming you have a publicly routable IP).
  • You can run OpenVPN or a proprietary solution, but you'll have to open a port on the firewall, and I know from experience that they're a bitch and a half to configure.
  • You can run Wireguard, but you'll have to open a port on your firewall and have the other clients generate and send you their public keys.
  • You can run Tailscale (my preferred solution), which uses Wireguard and works without opening the firewall and without a publicly routable IP (e.g. behind CGNAT), but you'll have to install the client, have the users sign in, and then add them to your tailnet, which IMO is much easier than setting up Wireguard peers manually.
  • You can use Tailscale Funnel, which exposes your tailnet to the public internet, but it's in beta, has high latency, and only supports TCP, so you'll have to figure out how to smash UDP datagrams through a TCP tunnel.
  • You can try Ngrok (my backup in case Tailscale can't connect), which is a similar NAT traversal solution, but it only supports TCP and gives you a different IP and port every time you create a tunnel.
  • Twingate also exists, I guess, but I've only ever used it for SSH.
[–] [email protected] 1 points 7 months ago

Tailscale [...] install the client, have the users sign in, and then add them to your tailnet

You can just have them pass you the device enrollment links and add their devices to your tailnet. That way nobody else has to make an account.

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

Just fireup the game, connect, and play, as if the server is hosted on some VPS.

The best you can do without clients for the users is to set up a VPS and have your server VPN into it so the VPS can expose the game port through the VPN.

Other than that there's no escaping either clients for everyone, or open ports on your router. Something somewhere has to be accepting incoming connections.

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

I don't think you need to open any ports for a mesh network to transmit UDP packets. It's a full virtual network.

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

If you want any system to connect to you, you need to open a port. You don't need to do that for outgoing connections (the OS and your router will automatically open ports for the return connection). So if everybody connects to one central system, nobody needs to (explicitly) open any ports (except for the central connection point)

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

Thats one of the neat features of tailscale and zerotier, they can set it up so both ends are “outgoing” to the NAT so no port forwarding is needed

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

Wireguard/Tailscale? (I'm not sure how well they do with latency).

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

Isn't tailscale serve only do tcp?

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

You shouldn't need serve or Funnel if your friends run the client and join your network.

Best part, they can choose to only run the client when they want to game.

That said, I notice a little lag when using RDP over it on the local net (while testing). Though that may be a round-Robin issue.

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

Tailscale/headscale are always recommended and they are good options but I want to recommend netbird as an alternative. This is what I have currently setup and it's fantastic.

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

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

Fewer Letters More Letters
CGNAT Carrier-Grade NAT
IP Internet Protocol
NAT Network Address Translation
SSH Secure Shell for remote terminal access
TCP Transmission Control Protocol, most often over IP
UDP User Datagram Protocol, for real-time communications
VPN Virtual Private Network
VPS Virtual Private Server (opposed to shared hosting)

8 acronyms in this thread; the most compressed thread commented on today has 5 acronyms.

[Thread #669 for this sub, first seen 9th Apr 2024, 16:35] [FAQ] [Full list] [Contact] [Source code]

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

Can’t recommend tailscale enough, it is much easier to set up than ZeroTier and has much more intuitive access control (so you could make it so your friends can only see the server and not each other for example)

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

Tailscale and Netbird are what you are looking for. I highly recommend Netbird as it is much more user friendly. Just keep in mind it forwards all ports by default. You can change that in the access policies

i2p also can do it if you need privacy