how do I use a program like ngrok or some other program to make the server public? are there any other programs that are better?
You really just need port forwarding from your internet router to your server for the server you wish to run public. I reccomend running with whitelist and the “online” setting active, since whitelist limits users to users you have accepted, and online means the server checks username and password with mojang.
You can use a service that supports dynamic DNS if you do not own hostname yourself, and you can use things like SRV-records to translate port numbers to addresses.
Thank you very much, I don’t have access to my router for port forwarding. can I use a program like no-ip for the dynamic DNS?
NAT (or network address translation) is a service that runs on your router that takes one external (WAN / Internet) IP-address and makes that adress the host or gateway for several LAN IP-addresses. NAT is designed to let the local addresses request information from the Internet and get a response, but not to let Internet request information from a local machine on your LAN. This is why we need port-mapping on your router. We need to tell the NAT-engine where to send Internet requests. We do that by stating thta “If the Internet requests something on that port (or that group of ports) then pass that request along to this local machine”.
Now to restate your question:
Since you have no access to your router you cant set that port mapping, and need a tunnelling service that sets up a persistent connection to an outside service that will pass along requests through that tunnel to your local machine.
Things like that probably exists, but I haven’t really researched it, since I have access to my router. I found it easier and more stable to just use DNS and port mapping when I could do it. It looks like you are on the right track with something like nGrok, but I haven’t tested it or other such programs to do this.
You may be lucky that someone else on this forum has any experience doing this, or you may have to research this yourself. If you do please post your final solution here, so that others that have the same problem gets help
Thank you very much
Well, another way around this would be if your router has UPnP which would essentially allow programs and apps to open up ports automatically on their own to be forwarded, which by nature can also be misused for bad purposes or reasons and can be considered as a security vulnerability or issue for that reason. Anyways, now assuming your router has UPnP and has that function enabled, there are several programs out there that may be able to help you port forward through/via UPnP however I’ve not tested any so I cannot recommend one over another or back one. One thing to note, some routers may keep UPnP forwards over reboots, some might not, some might have a setting toggle for it (this means that port forwarding may have to be reset/replaced/reconfigured if the router is restarted as they may not persist across reboots).
Also, in terms of what @iMelsom was saying about tunneling services, there are a few paid VPN services out there that allow you to customize and fine-tune a few aspects, one of which would be port forwarding. You’d connect to that VPN provider, and through there you’d be able to have those ports opened if they aren’t all automatically opened and forwarded. Free VPN providers on the other hand won’t do it since they have their own NAT that just provides general access and isn’t very reliable or trustworthy anyways. Your other option other than a VPN would be a VPS, however I’d recommend trying the UPnP route first before trying or looking for any paid methods.
This may be of assistance, though I’ve not tried it but seems trustworthy and appears to be the only open source one out there.
@hexparrot Maybe you can take a look at and integrate this into MineOS similarly to how you had integrated Spigot’s buildtools since it can also be used via the commandline. There could be a dedicated page for managing all/everything at once and/or buttons on the server status page (I would lean more towards it having it’s own page though as configurations such as Waterfall/Bungeecord don’t show ports in MineOS nor IPs and I’m not entirely sure but might also be the same or similar when it comes to other server types that aren’t “normal” or “standard” like mobile which in turn would have a lot of people saying that it’s broken and doesn’t work and etc.).