This bug has existed for at least the last three years, probably more. I don't know if it ever worked right.

Whatever port you assign for -steamport will not be used. Instead, it will be n+1.

Here is a real example taken from a TF2 server on GNU/Linux...

Process command arguments:
./srcds_linux -game tf -ip x.x.x.x +clientport 27017 +hostport 27117 +tv_port 27217 -steamport 26017 +replay_port 27417 -strictportbind -pidfile /path/to/my/server.pid -maxplayers 25 +map cp_dustbowl

Now, here is what lsof said is actually in use:

lsof -i 4 -n -a -p $GAMESERVPID
COMMAND     PID USER   FD   TYPE     DEVICE SIZE/OFF NODE NAME
srcds_lin 18039 hlds    7u  IPv4 1132076712      0t0  UDP x.x.x.x:27117
srcds_lin 18039 hlds    8u  IPv4 1132076713      0t0  UDP x.x.x.x:27017
srcds_lin 18039 hlds    9u  IPv4 1132076714      0t0  UDP x.x.x.x:27217
srcds_lin 18039 hlds 10u IPv4 1132076715 0t0 TCP x.x.x.x:27117 (LISTEN)
srcds_lin 18039 hlds   11u  IPv4 1367389900      0t0  TCP x.x.x.x:26018



My command specified "-steamport 26017", but 26018 is actually in use.



My solution for this is to simply space out all servers by odd numbers when running multiple servers on the same IP. So, I've got a server at 2xx13, 2xx15, 2xx17, 2xx19, etc

Also note the use of "-strictportbind" above. This feature was added at my request by Valve, who graciously answered my call to do so. By default, the srcds application happily tramples on ports and just assigns itself whatever the heck it pleases to have. When -strictportbind is used, in theory, the app is supposed to exit with an error, as any sane and reasonable daemon would.

For verification, I nmap my own host and diff the output against the previous output and get mailed if differences are found. That way I know if anything is gone amiss.



Roman Hatsiev wrote:
These are clientport and tv_port. For some reason srcds uses steamport+1
instead of steamport.

On Oct 31, 2012 8:48 AM, "Weasel" <[email protected]
<mailto:[email protected]>> wrote:

    I have been using these parameters in the command-line for some
    time, to explicitly specify what ports to use for the game and for
    Steam communication:

    +port 29016
    -steamport 29116

    Those ports are explicitly open on by firewall, etc.

    While troubleshooting some other issues (that I think are
    un-related), I noticed these errors in the logs:

    WARNING: Port 27005 was unavailable - bound to port 27006 instead
    WARNING: Port 27020 was unavailable - bound to port 27021 instead

    What are those ports all about?
    Is it not using the -steamport parameter?
    or is this yet more communication of some other form?

    _______________________________________________
    To unsubscribe, edit your list preferences, or view the list
    archives, please visit:
    https://list.valvesoftware.com/cgi-bin/mailman/listinfo/hlds



_______________________________________________
To unsubscribe, edit your list preferences, or view the list archives, please 
visit:
https://list.valvesoftware.com/cgi-bin/mailman/listinfo/hlds


--
# Jesse Molina
# Mail = [email protected]
# Cell = 1-602-323-7608



_______________________________________________
To unsubscribe, edit your list preferences, or view the list archives, please 
visit:
https://list.valvesoftware.com/cgi-bin/mailman/listinfo/hlds

Reply via email to