7 ms·
Show HN: A tool to self host game servers with a free static IP
- Syonyk 5y agoIt looks like there's a tunnel app... could I use it to tunnel other stuff if I got creative? I'm behind CGNAT with Starlink on one of my connections, and I wouldn't mind a freebie tunnel to, say, a webserver in there...
- patricklorio 5y agoYes, you're free to tunnel whatever you like with the custom TCP and UDP tunnels. We have users tunneling their SSH and FTP servers and all sorts of things. Though if the bandwidth starts disrupting game severs, I may need to reconsider :).
- cs0 5y agoHave you tried ngrok? https://ngrok.com https://ngrok.com
- nmfisher 5y ago+1 for ngrok, totally worth the $80 a year (or whatever it is I shell out).
- tengbretson 5y agoIf this doesn't work out for your needs, I've had good results using Cloudflare Argo Tunnel so far.
- jagger27 5y agoLooks convenient. I assume multiple servers share the same IP(s) on different non-default ports? I don’t see any info on how this works on the site. I can’t imagine providing a free unique static IPv4 for 4000+ active servers would be a sustainable business model. IPv6 of course would be fine, if residential ISPs ever leave the Stone Age. (Looking at you, Bell Canada)
- patricklorio 5y agoYes, I'm assigning a random port to each tunnel. I have been considering purchasing an IP space to offer a premium version but it's hard to make the numbers work at my current scale. Minecraft is quite nice as it supports SRV records so the provided tunnel address doesn't need to show the port number. For other games you'll notice you have the non standard port.
- jagger27 5y ago> Minecraft is quite nice as it supports SRV records Oh that's nifty!
- CraftThatBlock 5y agoCareful with this, as some Java versions on some Linux distributions (such as Java 11 on Ubuntu/Arch) does not work https://bugs.mojang.com/browse/MC-175531 https://bugs.mojang.com/browse/MC-175531
- sockaddr 5y agoMy coworker's kid uses zerotier to maintain a private gaming network with static IPs for all their friends. Does your system have anything similar or is it just out in the open? Taking a cursory glance at your page it's hard to tell exactly what is being done. Looks cool though.
- patricklorio 5y agoThis system is a little simpler, it creates a public endpoint that will tunnel traffic to the game server over the playit program. So when the program and game server are running, anyone can connect to the server through the public address. It has the advantage that only the server needs to run a program. It also does a few tricks like mapping each client's public IP to a LAN IP like 127.5.21.3 so ip banning / whitelisting still works in game.
- sockaddr 5y agoGotcha, nice work
- infogulch 5y agoDoes this also work for consoles or just pcs?
- patricklorio 5y agoAt the moment the program only run on PCs, however a few users have figured out how to run it on mobile. But that's just for the server, the server that is tunneled can be connected to by anything. We have a few users hosting Minecraft Bedrock servers that are being connected to by mobile and consoles.
- oauea 5y agoHow are people tunneling their console over the zerotier vpn? I assume this requires zerotier to be installed on the gateway, which is a bit beyond most users sadly :(
- nickspacek 5y agoI thought that virtual hosts for TCP would be an interesting feature to have to support multiple services on a single port. I remember reading about this years back: http://www.litech.org/~brian/tcphosts/paper.html http://www.litech.org/~brian/tcphosts/paper.html
- foxpurple 5y agoA better solution would be to have each service on its own IP address and to do away with ports entirely. Ports are a hack to deal with limited IP addresses.
- BossingAround 5y agoThis seems to create long-running tunnel sessions, doesn't it? If so, that seems to me to potentially create load that's too great for the service to be free.
- patricklorio 5y agoThat is correct. It's been difficult, I've had to rebuild the entire system 4 times finding new optimizations here and there. I'm at break even cost wise from people purchasing custom domains for $1/month, or $6/year. The latest version, v4 is performing really well and is helping me keep costs low while we're getting more users.
- ev1 5y agoHow can I self host this for an arbitrary game TCP port? I'd be happy to pay for a "limited feature" edition (don't need source either) that will: - let me self host with binaries, public IP server on Linux, private IP server on Windows - map IPs so that the gameserver running on Windows can issue IP bans - I don't need hostname-picking or unique ports
- patricklorio 5y agoIf you download and run the program it will launch the web browser to https://playit.gg/manage https://playit.gg/manage. On that page you should be able to add a Custom TCP tunnel. I don't quite follow the features you're looking for but I think the custom TCP tunnel should cover a good bit. As for banning IPs, public IPs are mapped to local IPs (for example 127.3.5.6) so in game banning should work. I have thought about creating a premium tier that lets you add firewall rules to the edge (our tunnel servers) so the traffic you filter never gets tunneled to you.
- ev1 5y agoIs it possible to self host it? I don't mind paying for a premium tier that lets me self host/configure; I don't mind if it isn't open source, but I have a need to host something like this for players in APAC region and also be able to select my own ports.
- mStreamTeam 5y agoIf anyone is interested, you can setup your own tunnel sever like this with FRP. Plus its open source https://github.com/fatedier/frp https://github.com/fatedier/frp
- jjice 5y agoThere's also good ol' (newish?) WireGuard on a relay VPS. But I understand how it'd be another extra step that could get in the way for someone unfamiliar with the tech.
- arthurcolle 5y agoWireGuard is terrible. ZeroTier is so much better.
- gouggoug 5y agoWould you mind expanding on this? How do wireguard and zerotier compare to each other?
- jjice 5y agoA bit late of a reply, but, to me, wireguard is more of a catchall solution, where as zerotier focuses on one job, accessing internal services externally. Zerotier seems like a fine tool, but I feel like learning how to use wireguard has more opportunity to come in handy later. Not to mention how wireguard is a part of the kernel now, which makes things a bit more convenient as well.
- rubatuga 5y agoFor people who want to use WireGuard to receive a clean IPv4 and IPv6 public address (no blacklist and good reputation), you can check out https://hoppy.network https://hoppy.network All ports are unblocked and you can choose plans with guaranteed speeds of 500Mbit. It’s great for people who self-host, and don’t want to manage a cloud VPS.
- foxpurple 5y agoThis looks awesome. I recently moved and had to get a new ISP and router and I gave up trying to get my home server working because the router firmware is so bugged out that port forwarding doesn’t work.
- 1vuio0pswjnm7 5y agoLooks like this uses https://github.com/cloudflare/boringtun https://github.com/cloudflare/boringtun, a userspace implementation of Wireguard written in Rust, and (I'm guessing) user IP:port is sent to third party at api.playit.gg.
- patricklorio 5y agoVersion 3 did, however I was needing to manage the TCP IP stack in application. I tried using and patching smoltcp, then made things more stable by linking to gvisor (a go project) but users were still having performance issues. Ended up launching v4 which uses the http2 protocol under the hood. The users we have vary quite drastically in terms of their network access and computer hardware.
- scktt 5y agoi had a similar use case for sharing my plex media server. i am behind a cgnat so dont have a fixed IP address nor can I port-forward if I wanted to. the solution I came up with, involves zerotier and a cheap vps qith a static ip (required as I cant setup zerotier everywhere (apple tvs, chromecasts, iphones, etc.) the vps acts as a relay to the private zerotier network (single address only, the plex server) which allows anyone i have shared my plex server with to access without any setup. a script to set it all up (debian 8): https://gist.github.com/scktt/b586dd4bf5a19be91a978c6b2abb5976 https://gist.github.com/scktt/b586dd4bf5a19be91a978c6b2abb59...
- stevekemp 5y agoI'd look at using an SSH reverse tunnel. If you can connect from the plex-server to a server hosted on EC2, Linode, DigitalOcean, etc, you could expose the service from that. Something like: ssh -f -N -T -R 8080:localhost:80 user@external.example Now access to your remote host on port 8080 will be mapped back to your home machine, behind the NAT. You could install nginx as a proxy for it, etc.
- jeffnv 5y agoAwesome work!
- deleted 5y ago[deleted]