SRCDS Steam group

Dedicated server invisible/unreachable outside LAN
Ok, I know there's a hundred threads on this same issue on these forums, but I swear I've tried everything I could think of or find and still cannot come up with the solution. It seems like it must be something simple I'm missing. Here's the situation:

Using sv_lan 1 and +ip <internal ip> the server runs fine. People can connect from other pcs on my lan using the internal ip.

Using sv_lan 1 and running hamachi, using +ip <hamachi ip> also works fine. People can connect from other pcs on the hamachi network using the hamachi ip (assuming we use hamachi ip masking to make the server think all our hamachi ips are on the same class c subnet).

Using sv_lan 0 and +ip <internal ip> the server looks like it runs fine. It starts up with no problems. People can connect from other pcs on the lan using the internal ip. No one can connect from outside the lan using the external ip. Server is not visible, not responding, or simply hangs upon manually connecting using the "connect" console command.

Using sv_lan 0 and +ip <external ip> throws ip binding errors (obviously).

The game in particular I'm trying to set up is L4D. But I tested this with HL2DM and am having the same problem. Ports are absolutely positively forwarded. I've forwarded 27000 - 28000 to the server's local ip. I even tried [briefly] putting the server machine on the DMZ with unchanged results, but I did not test this exhaustively.

Supposedly there has always been an issue with running internet source servers behind NATs where the server will report its internal ip to the master server instead of its external ip, thus making it invisible in the master list, and apparently unconnectable as well. See these threads for more info on this as a "confirmed" bug: and it's included on a list of L4D bugs here, towards the bottom of the "Game, connection, matchmaking and interface issues:" section of this post:

But I could swear I've successfully run source servers behind my NAT before with the proper port-forwarding set up. It would seem that running with +ip <internal ip> and using the proper port forwarding should be all you need, but either something is missing from my setup (like a strange necessary port I don't know about?), or this bug is real and the issue is because the master server knows my reported ip to be my internal. Also I've dug up suspicions that certain routers may be responsible for problems with the port forwarding not working as advertised, but this seems far fetched to me, at least as a possible cause for this problem.

If it matters I'm using a Linksys WRT54G v2.2 using dd-wrt v24-sp1 firmware. Running the server on a Server 2003 SP2 machine. I've also tried using both the console and GUI versions of the gameserver with equal results.

Startup line:
"blah\blah\srcds.exe" -game left4dead +ip <internal ip> -port 27016 -tickrate 66 +exec server.cfg +map l4d_farm01_hilltop

hostname "MyServer"
rcon_password "MyPass"
sv_password "ConnectPass"
sv_lan 1
sv_allow_lobby_connect_only 0

sv_steamgroup <steam group id>
sv_search_key <my search key>

z_difficulty impossible

Thanks for any new insights, and for taking the time to read this thoroughly,
== Matt
On a side note for L4D servers, and I think this is a confirmed bug/stupid feature, is that the -maxplayers switch does absolutely nothing. maxplayers is apparently hard coded to 14 (why in the world 14?) and can't be changed at all.

Also, I don't know if this is normal behavior or not, but the game will ALWAYS execute server.cfg, even when I use the +exec switch to specify a different file (e.g. +exec internet_server.cfg). That isn't to say the exec switch doesn't work, because the game will execute this file, but then will subsequently execute server.cfg (if it exists*), overwriting any conflicting variables already set in my custom cfg. So I must either make sure server.cfg doesn't exist before starting the server or overwrite it every time with the appropriate custom cfg file I want to use >:/ But I guess that's what batch scripts are for...

* i.e. if server.cfg doesn't exist, the game will execute my custom cfg, but won't execute the "built-in" default server.cfg variables, and thus won't overwrite mine.

And I've noticed some other really strange behavior with the server.cfg file. If I specify any cfg file in the +exec switch, the server will start up, seemingly fine, outputting the following lines before idling with no further output:

[other misc. output]
Connection to Steam server successful.
    VAC secure mode is activated.

But if I do NOT specify any server.cfg (which will force the server to use whatever "built-in" variables it thinks should be in the default server.cfg), then the output looks like this:
[other misc. output]
Adding master server
Adding master server
Sending heartbeat to master server...
Connection to Steam server successful.
    VAC secure mode is activated.

So for some reason, by specifying a cfg file to execute via the +exec command in the startup command line stops the server from "adding the master servers" and "sending the heartbeat" to them. That's quite odd and possibly worrysome. However both of these circumstances still result in the problem of the server not being reachable from outside of the lan.

Anyone notice or confirm any of this? Or have any insights? Thanks again.
I've also posted this information on the Steam DS for Windows forum located here:
tl;dr: My server isn't reachable outside my network. Port forwarding seems right. Any insights appreciated.

Check that the port you are using is accessible. Run the DS when you check.

You want Success not Failure.

When you find a port that works (or if your port you use now works) try using that. If it still doesn't work just post something here. I'll try and troubleshoot it as much as I can.
I'll be damned. I moved my port forwarding entries to the "port RANGE forwarding" section instead of the "port forwarding" section and it works now, thanks to Owned|Myself and some playing around with

I blame it on the poor documentation and layout of the router firmware. In the "port forwarding" section they give you two separate fields, a "from port" field and a "to port" field to fill out... but apparently it's only meant for one port... buuuut in the end I'm just another noob owned by what should have been simple port forwarding and his inability to accept the fact that he was wrong. There sure are a lot of us XP

I'm one cert away from being an MCSA too... embarrassing.
I have the same problem that msing has, (im trying to run a hl2dm server) only when i go to the port forwarding, i have port range forwarding set for 27016, as well as the DMZ set to on, and says its closed, it even says my internet (port 80) is closed!!! (althouhg i found out thats only needed to host a website, not view the web)

Error: I could not see your service on on port (27016)
Reason: Connection timed out

Error: I could not see your service on on port (80)
Reason: Connection timed out

and windows firewall has the port on its exception list, and i also turned it off, and still no dice!!

Any other suggestions?

Forum Jump:

Users browsing this thread: 1 Guest(s)