Hey,

 

I know some other people are having trouble running many instances of the
Linux left4dead server on the one box, and I believe I have worked out at
least a partial cause, and a workaround for the same.

 

When you start up an hlds server, it tries to listen on the following ports:

 

UDP port of gameserver - default 27015

TCP port of gameserver - default 27015

UDP SourceT V port (even if sourceTV is off) - default 27020

UDP clientport (even although it's not a client) - default 27005

1 other UDP port (possibly master server link)- default 26901 possibly

Left4dead only: TCP console (will bind to all interfaces even if an IP is
specified)

 

The issue is that the default gameserver port is 27015 and the default
sourcetv port is 27020.   So try to start more than 5 servers from the one
fork and the last one will be trying to use the hltv port of the first one
as its gameport.  The servers will increment port and try again, but only 10
times for the game port and source tv port. (The clientport tries a lot
more.  Not sure how many, though)

 

The workaround is to specify a sufficiently different tv_port number on the
command line:

./srcds_run -ip 84.244.189.89 -netconport 99## -fork howevermany +tv_port
26900

 

.is what I'm using

 

Setting clientport on the command line like this is ignored completely.

This gets you up to 11 servers.  What happens then is that the last server
is listening on 27025, and the client port can't find any free port above
27005 until it gets to 27026, which it takes.  The next server tries to bind
on 27026, fails, and uses 27027 instead (clientport nabs 27028).  The next
server tries to use 27027, fails twice, and uses 27029.  This would again
lead to the thing failing at about 25 servers per IP (I can't do the maths,
and testing with so many is making my server fall apart), which is probably
acceptable ;)  At which point, you just set up a new fork, with -port 27060
or whatever.

 

I've tested, and this issue exists on tf2 as well as l4d.  I've just never
been able to start up enough servers that it became an issue before ;)

 

Longer term, is clientport needed for the server?  If so, can we set it on
the command line?

 

More to the point, does what I've said make sense, or am I even more idiotic
than my friends assure me? And have I leaked my rcon password to the list
again? ;)

 

Comments welcome

_______________________________________________
To unsubscribe, edit your list preferences, or view the list archives, please 
visit:
http://list.valvesoftware.com/mailman/listinfo/hlds_linux

Reply via email to