Install Steam
login
|
language
简体中文 (Simplified Chinese)
繁體中文 (Traditional Chinese)
日本語 (Japanese)
한국어 (Korean)
ไทย (Thai)
Български (Bulgarian)
Čeština (Czech)
Dansk (Danish)
Deutsch (German)
Español - España (Spanish - Spain)
Español - Latinoamérica (Spanish - Latin America)
Ελληνικά (Greek)
Français (French)
Italiano (Italian)
Bahasa Indonesia (Indonesian)
Magyar (Hungarian)
Nederlands (Dutch)
Norsk (Norwegian)
Polski (Polish)
Português (Portuguese - Portugal)
Português - Brasil (Portuguese - Brazil)
Română (Romanian)
Русский (Russian)
Suomi (Finnish)
Svenska (Swedish)
Türkçe (Turkish)
Tiếng Việt (Vietnamese)
Українська (Ukrainian)
Report a translation problem
The SRCDS servers themselves have no way of knowing that they are running on the same computer; they're connected in a virtual network that treats the containers like separate computers. If all of this container stuff sounds confusing, just pretend that I instead have four physically separate servers on the same network and each server is running on the default ports but I redirect them to different external ports in my port forwarding.
Just to be absolutely clear, all four SRCDS servers are fully functional in literally every other aspect; I can connect to all of them, play on all of them without errors, view them in my server history, and add them to my favorite servers. Other people outside of my network get the exact same results as me - everything works, but they're not on the Internet server list. If you want to prove me wrong, search for "Phyre" on the Internet server list under the TTT, Prop Hunt, Murder, and Deathrun gamemodes.
I don't have GMod installed I don't think, when I get some free time I can try to find your server on the list.
Oh, and I almost forgot: do I need to have port 27010 forwarded, or is that just a security risk?
So, as I mentioned previously, my servers are running in Docker containers, and they were all running on the default ports, which were then redirected to separate ports by Docker. While that setup works (as in all servers can be connected to and used normally), it prevents them from appearing on the "Internet" server list. The solution, then, was to change my configuration so that all of the servers ran on the same ports as they were actually exposed on, rather than redirecting the ports with Docker.
I don't know exactly why this happens, but I have a pretty good guess. The "Internet" server list in Gmod is pulled from a master server that maintains a list of all currently active servers. The master server has to get the IP address and port that a server is running on to list it. If the master server figured this out automatically by testing which port(s) on a computer connect to (a) SRCDS server(s), I would never have had any issues. That isn't how it works, though; instead, I believe that the server(s) send(s) IP address and port information to the master server. Why is that a problem for my servers? All of my servers "thought" they were running on the default ports, because I redirected them to different ports in Docker without "telling" them. Assuming my guess as to how the server list works is correct, all four of my servers were then "telling" the master server that they were on the default ports. Of course, when the master server actually connects to the default ports, it can only find one server, so it only lists that server.
Again, I really appreciate your help, and you were correct about the basics, including which ports matter (27015 and 27005, but not 27010).
TL;DR: It turns out that the server list requires that Gmod servers run on the ports that they are actually exposed on, even though redirecting works for everything else. This means that the real solution (for me) was to not redirect ports and instead just run the servers on the ports that they are exposed on.
(P.S.: If this sounds obvious to you, then you don't understand how Docker works.)