Raised This Month: $51 Target: $400
 12% 

Team Fortress 2 Dedicated Server: LAN and WAN users can't join


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
ToasterOven
Junior Member
Join Date: Aug 2020
Old 08-19-2020 , 22:58   Team Fortress 2 Dedicated Server: LAN and WAN users can't join
Reply With Quote #1

I am attempting to host a public server on a new Windows laptop, after following the usual procedures that worked on my previous Linux server---nobody was able to join [WAN and LAN users], I immediately confirmed that the procedures were followed correctly for my OS, but the problem still persists.

Current SRCDS Startup Options:
Code:
C:\Servers\TF2DS\srcds.exe -console -reuse -game tf +sv_pure 1 +maxplayers 32 +sv_setsteamaccount XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX +exec server.cfg +map szf_dustbowl_b4 -autoupdate -ip 0.0.0.0
*Server config will be at the end of this post*

Results of using
http://api.steampowered.com/ISteamApps/GetServersAtAddress/v0001?addr=<PublicIP>3E&format=json

Code:
{"response":{"success":true,"servers":[{"addr":"XX.X.XXX.XXX:27015","gmsindex":65534,"appid":440,"gamedir":"tf","region":0,"secure":true,"lan":false,"gameport":27015,"specport":0}]}}
Important parts of the server log:

Code:
Network: IP 0.0.0.0, mode MP, dedicated Yes, ports 27015 SV / 27005 CL
Initializing Steam libraries for secure Internet server
Logging into Steam game server account
pure_server_whitelist.txt not present; pure server using only base file rules
trusted_keys.txt not present; pure server using only base trusted key list
SOLID_VPHYSICS static prop with no vphysics model! (models/props_mining/dustbowl_roof02.mdl)
L 08/19/2020 - 19:44:42: [TF2ITEMS] "GiveNamedItem" offset = 477
L 08/19/2020 - 19:44:44: [tf2attributes.smx] Could not initialize call to CEconItem::SetCustomName
Executing dedicated server config file server.cfg
Using map cycle file 'cfg\mapcycle.txt'.
Set motd from file 'cfg/motd.txt'
Set motd_text from file 'cfg/motd_text.txt'
SV_ActivateServer: setting tickrate to 66.7
Connection to game coordinator established.
Current item schema is up-to-date with version 015F92D3.
[SM] Changed cvar "mp_ik" to "0".
It is of note, for the following block of the server log, that bots are not configured to get instantly kicked after joining and server hibernation is disabled, so I find it peculiar that they instantly get kicked even though bots are supposed to stay on even when nobody is on---I may be wrong about that though. Also, players and bots in the LAN show up as being connected but get dropped afterward (after being stuck on "connecting to server" or "parsing game info" for around 10 minutes; for bots, it was around 1 ms then they'd get "kicked" as well.

For players in the WAN, they can't see the server in the server browser and can't connect at all (connection failed after 4 retries):

Code:
hostname: Super Zombie Fortress - Left 4 Dead 2 in TF2!
version : 5970214/24 5970214 secure
udp/ip  : 0.0.0.0:27015  (public ip: XX.X.XXX.XXX)
steamid : [XXX] (XXXX)
account : not logged in  (No account specified)
map     : szf_dustbowl_b4 at: 0 x, 0 y, 0 z
tags    : alltalk,cp,increased_maxplayers,nocrits,nogifts
players : 0 humans, 0 bots (32 max)
edicts  : 729 used of 2048 max
# userid name                uniqueid            connected ping loss state  adr
Client "US Private Military Service" connected (192.168.0.XXX:27005).
Dropped US Private Military Service from server (Disconnect by user.)
Client "US Private Military Service" connected (192.168.0.XXX:27005).
Dropped US Private Military Service from server (Disconnect by user.)
Client "US Private Military Service" connected (192.168.0.XXX:27005).
Dropped US Private Military Service from server (Disconnect by user.)
Client "US Private Military Service" connected (192.168.0.XXX:27005).
Dropped US Private Military Service from server (Disconnect by user.)
tf_bot_quota
"tf_bot_quota" = "16" ( def. "0" )
 game
 - Determines the total number of tf bots in the game.
tf_bot_quota_mode
"tf_bot_quota_mode" = "fill" ( def. "normal" )
 game
 - Determines the type of quota.
Allowed values: 'normal', 'fill', and 'match'.
If 'fill', the server will adjust bots to keep N players in the game, where N is bot_quota.
If 'match', the server will maintain a 1:N ratio of humans to bots, where N is bot_quota.
tf_bot_add 1
NextBot tickrate changed from 0 (0.000ms) to 7 (0.105ms)
Dropped C++ from server (Kicked from server)
tf_bot_add 1
Dropped GutsAndGlory! from server (Kicked from server)
Dropped [AU] Toaster Oven from server (Lost connection)
map cp_dustbowl

These were the attempts at fixing the issues of no LAN or WAN users being able to join:


1.) Ports forwarded properly, UDP and TCP ports designated according to https://developer.valvesoftware.com/...dicated_Server.
portchecktool.com also confirmed the ports were open when the server was running.
Port forwarding is not the problem.

1.5.) Made sure the internet was not on CGNAT (it wasn't), and double-checked ports with
Code:
netstat -ano
to find the TCP ports on the srcds PID included the ones forwarded, and they were listening. The UDP ports also showed up, but no info other than the source was obtained:

Code:
TCP    0.0.0.0:27015          0.0.0.0:0              LISTENING       3024
UDP    0.0.0.0:27005          *:*                                    3024
UDP    0.0.0.0:27006          *:*                                    3328
UDP    0.0.0.0:27015          *:*                                    3024
UDP    0.0.0.0:27016          *:*                                    3328
UDP    0.0.0.0:27020          *:*                                    3024
***SRCDS PID: 3024
***TF2 PID: 3328

3.) Added firewall exceptions

4.) Turned off PC firewall

5.) Turned off the modem firewall.

6.) Removed -ip from srcds "launch options" it defaults to the network loopback adaptor IP (I don't have NAT loopback) which was set up with the public IP so I could see my server in the server browser. It was seen in the both the LAN (addressed as local IP) and internet tabs (addressed as public IP on the loopback). Having the loopback adaptor installed or not made no difference in who could join (local IP; loopback IP).

7.) Tested out port forwarding on this website with another server application to see if the problem lied elsewhere: http://helper.osgrid.org/simdiagnostic.php
After properly setting it up, tests always concluded:

Results: Connection to <Public IP> 27027 port [tcp/*] succeeded!
Your OpenSim.ini configuration appears good. We are able to connect to your simulator from outside your network.

UDP: Your Region ExternalHostName and InternalPort provided in /Regions/Regions.ini
Results: No data available or unable to connect.
This indicates that your port forwarding and firewall settings are probably good. There is simply nothing listening on that port ( 7777 ). Are you sure OpenSim.exe is running? Double-check ExternalHostName in Regions.ini is correct.
Ensure that the host/address you provided ( XX.X.XXX.XXX ) is not the same as your local IP address, listed above.

UDP connections always seemed to fail here, and since TF2 relies on UDP game transmission---that could be a problem.

8.) Attempted to add the server to GameTracker using public IP and 27015 as the game port and query port, which only resulted in:
Code:
GAMETRACKER COULD NOT SCAN THE SERVER.
One of the following suggestions may help you:
Your server is currently offline.
GameTracker needs your server to be online before you can add it to our database. Please restart your server and make sure it's up before hitting ADD SERVER again.
You entered the wrong query port.
Please update your query port and hit scan again
Your server is firewalled.
Please turn off any firewall you have that may block scanning or whitelist the gametracker scanning IP addresses:
149.28.43.230
45.77.96.90
108.61.78.150
108.61.78.149
Code:
SERVER.CFG:
// Server optimization
lzma_persistent_buffer 1 // Allocates more memory upfront for a one time buffer for compression
sm_cvar mp_ik 0 // Disable IK on models, which increases performance and may improve hitreg
sv_motd_unload_on_dismissal 1 // Unload MOTD on clients after dismissal
anim_3wayblend 0 // Disable three way animation blending on some entities
ai_expression_optimization 1 // Enable optimizations to facial expressions based on visibility
ai_expression_frametime .015 // Enforce perfect frametime, or else optimizations fallback to full optimization without checking visibility
fps_max 1000 // Higher server framerate
//host_timer_spin_ms 0.5 // Use CPU busy-loop for improved timer precision on Windows
sm_cvar sv_pushaway_clientside 0 // No phys obj pushaway
host_timescale 0 // Small optimization to frame check

// Hitreg optimization
// Demanding settings. Make sure your players have good ping and a good connection.
sv_clockcorrection_msecs 30 // Set all clients closer to a central server truth (2 tick intervals)
sv_mincmdrate 66 // Enforce syncing as much as possible to the server
sv_minupdaterate 66 // ^
sv_client_cmdrate_difference 0 // ^
sv_client_max_interp_ratio 2 // Restrict players from using an interp higher than needed
sv_minrate 81048 // The minimum acceptable rate is the default TF2 rate
sv_client_predict 1 // Enforce client side prediction
//sm_cvar sv_maxusrcmdprocessticks_holdaim 1 // Holds client aim angles to server for 1 tick

//sv_master_share_game_socket 0 // Use another socket for queries (port 26900), instead of redirecting through game server
sv_master_share_game_socket 1
// Demanding on server upload speed. Use TF2 defaults (comment) instead if needed.
net_maxcleartime .029 // Rate limiting should never delay more than our correction
net_splitpacket_maxrate 83160 // Split packets are sensitive to faster rates
net_compresspackets_minsize 180 // Compress more packets (may be CPU intensive)
sv_parallel_sendsnapshot 1 // Send to each player in parallel

// Disable clientside exploits / misc abuse
sv_allow_voice_from_file 0 // Disable playing voice from a custom file
tf_tournament_hide_domination_icons 1 // Prevent players from spotting icons instead of players
mp_show_voice_icons 0 // ^
sv_restrict_aspect_ratio_fov 0 // Allow ultrawide
sv_namechange_cooldown_seconds 300 // Limit name change abuse
sv_allowupload 1 // No uploads to limit attack vectors
sv_allowdownload 1
sv_downloadurl ftp://*publicip*:7778/tf/
sv_downloadlist_include_navfile 1
net_maxfilesize 64
sv_hibernate_when_empty 0
tf_allow_server_hibernation 0
host_name_store 1
host_info_show 1
host_players_show 2
sv_lan 0

// Logging
con_timestamp 1
sv_log_onefile 0

exec info
exec social
exec balance
Final notes:
-The server is directly connected to the modem via ethernet cable (there is an ethernet junction, however, don't know if that would effect anything).
-My area is limited to ADSL2+
-Modem model: Zyxel PK5001z

Finally, sourcemod (and metamod) and a few plugins are installed on the new server (they worked on the previous Linux server).

After tons of research and attempts at fixing the problem. No one is able to join still.
If anyone needs any more info please let me know. Any help is appreciated!

Discussion note: Please read through any posts I reply to and my reply to said post after reading the OP before commenting.

Last edited by ToasterOven; 08-22-2020 at 19:44.
ToasterOven is offline
PC Gamer
Veteran Member
Join Date: Mar 2014
Old 08-21-2020 , 01:38   Re: Team Fortress 2 Dedicated Server: LAN and WAN users can't join
Reply With Quote #2

The UDP/ip address should not be all zeros. It should resolve to a local internal ip address.

1. In your server.cfg file add a line with your external ip address: IP 71.85.200.180
2. In your server.cfg file add a line with your server name: hostname MyAwesomeServer
3. Redo/fix the port forwarding configuration in your router. Ports 27005, 27015, 26900 should all point to the internal local ip address of your server, like: 192.168.1.22 See attached picture of my TF2 server port forwarding.

Here's a link to setting up port forwarding on your Zyxel PK5001z modem: https://www.centurylink.com/home/hel...orwarding.html

Good Luck!
Attached Images
File Type: jpg routerpic.jpg (91.6 KB, 245 views)
PC Gamer is offline
ToasterOven
Junior Member
Join Date: Aug 2020
Old 08-22-2020 , 18:33   Re: Team Fortress 2 Dedicated Server: LAN and WAN users can't join
Reply With Quote #3

Quote:
Originally Posted by PC Gamer View Post
The UDP/ip address should not be all zeros. It should resolve to a local internal ip address.

1. In your server.cfg file add a line with your external ip address: IP 71.85.200.180
2. In your server.cfg file add a line with your server name: hostname MyAwesomeServer
3. Redo/fix the port forwarding configuration in your router. Ports 27005, 27015, 26900 should all point to the internal local ip address of your server, like: 192.168.1.22 See attached picture of my TF2 server port forwarding.

Here's a link to setting up port forwarding on your Zyxel PK5001z modem: https://www.centurylink.com/home/hel...orwarding.html

Good Luck!
Bots still get dopped from the server, and now the server does not show up on any list. Then there are a plethora of new errors that started coming up:

Code:
'pl_upward.cfg' not present; not executing.
Could not establish connection to Steam servers.  (Result = 3)
Could not establish connection to Steam servers.  (Result = 3)
c:\buildslave\steam_rel_client_hotfix_win32\build\src\tier1\fileio.cpp (4922) : Assertion Failed: CFileWriterThread already exited
c:\buildslave\steam_rel_client_hotfix_win32\build\src\tier1\fileio.cpp (4922) : Assertion Failed: CFileWriterThread already exited
c:\buildslave\steam_rel_client_hotfix_win32\build\src\tier1\fileio.cpp (4922) : Assertion Failed: CFileWriterThread already exited
c:\buildslave\steam_rel_client_hotfix_win32\build\src\tier1\fileio.cpp (4922) : Assertion Failed: CFileWriterThread already exited
c:\buildslave\steam_rel_client_hotfix_win32\build\src\common\tcpconnection.cpp (1036) : Assertion Failed: Tried to initiate an outbound connection to 162.254.192.87:27021, bound to local address 76.5.122.203:26901.  An ephemeral local port should be used for outbound TCP conections!  How does this work?
c:\buildslave\steam_rel_client_hotfix_win32\build\src\common\tcpconnection.cpp (1036) : Assertion Failed: Tried to initiate an outbound connection to 162.254.192.87:27021, bound to local address 76.5.122.203:26901.  An ephemeral local port should be used for outbound TCP conections!  How does this work?
c:\buildslave\steam_rel_client_hotfix_win32\build\src\tier1\fileio.cpp (4922) : Assertion Failed: CFileWriterThread already exited
c:\buildslave\steam_rel_client_hotfix_win32\build\src\tier1\fileio.cpp (4922) : Assertion Failed: CFileWriterThread already exited
c:\buildslave\steam_rel_client_hotfix_win32\build\src\tier1\fileio.cpp (4922) : Assertion Failed: CFileWriterThread already exited
c:\buildslave\steam_rel_client_hotfix_win32\build\src\tier1\fileio.cpp (4922) : Assertion Failed: CFileWriterThread already exited
c:\buildslave\steam_rel_client_hotfix_win32\build\src\tier1\fileio.cpp (4922) : Assertion Failed: CFileWriterThread already exited
c:\buildslave\steam_rel_client_hotfix_win32\build\src\tier1\fileio.cpp (4922) : Assertion Failed: CFileWriterThread already exited
c:\buildslave\steam_rel_client_hotfix_win32\build\src\tier1\fileio.cpp (4922) : Assertion Failed: CFileWriterThread already exited
c:\buildslave\steam_rel_client_hotfix_win32\build\src\tier1\fileio.cpp (4922) : Assertion Failed: CFileWriterThread already exited
c:\buildslave\steam_rel_client_hotfix_win32\build\src\common\tcpconnection.cpp (1036) : Assertion Failed: Tried to initiate an outbound connection to 162.254.192.71:27019, bound to local address 76.5.122.203:26901.  An ephemeral local port should be used for outbound TCP conections!  How does this work?
c:\buildslave\steam_rel_client_hotfix_win32\build\src\common\tcpconnection.cpp (1036) : Assertion Failed: Tried to initiate an outbound connection to 162.254.192.71:27019, bound to local address 76.5.122.203:26901.  An ephemeral local port should be used for outbound TCP conections!  How does this work?
tf)boc:\buildslave\steam_rel_client_hotfix_win32\build\src\common\tcpconnection.cpp (1036) : Assertion Failed: Tried to initiate an outbound connection to 162.254.192.109:27017, bound to local address 76.5.122.203:26901.  An ephemeral local port should be used for outbound TCP conections!  How does this work?
c:\buildslave\steam_rel_client_hotfix_win32\build\src\common\tcpconnection.cpp (1036) : Assertion Failed: Tried to initiate an outbound connection to 162.254.192.109:27017, bound to local address 76.5.122.203:26901.  An ephemeral local port should be used for outbound TCP conections!  How does this work?
tf_bot_add 1
NextBot tickrate changed from 0 (0.000ms) to 7 (0.105ms)
Dropped Gentlemanne of Leisure from server (Kicked from server)
Status:

Code:
hostname: Super Zombie Fortress - Left 4 Dead 2 in TF2!
version : 5970214/24 5970214 insecure (secure mode enabled, disconnected from Steam3)
udp/ip  : XX.X.XXX.XXX:27015
steamid : not logged in
account : not logged in  (No account specified)
map     : pl_upward at: 0 x, 0 y, 0 z
tags    : alltalk,increased_maxplayers,nocrits,nogifts,payload
players : 0 humans, 0 bots (32 max)
edicts  : 998 used of 2048 max
# userid name                uniqueid            connected ping loss state  adr
EDIT:
After checking if the port was open and listening like it has been previously, after making this change the port was no longer listening for I got "connection timed out" when using portchecktool.com.
Reguardless, the problem still persists.

EDIT2:
The server console errors went away when I removed the "IP <Public IP>" from the server.cfg file. The server appears in the LAN tab now, but upon joining I get the "server is not responding window." Furthermore, the server does not appear in the "internet tab" of the server browser for any of my friends in my LAN or WAN. Specifying the public IP results in the failure to connect to steam servers, which sounds strange since the IP it defaults to is the public IP; turns out my loopback adaptor which has my public IP as its Ipv4 IP was being set as the default IP.

The server now can connect to the steam game servers:
Code:
{"response":{"success":true,"servers":[{"addr":"<Public IP>:27015","gmsindex":65534,"appid":440,"gamedir":"tf","region":0,"secure":true,"lan":false,"gameport":27015,"specport":0}]}}
Port check tool reads this when the server is running even though the port in question is indeed open and configued to be the gameport of the server (see above codeblock):
Problem! I could not see your service on <Public IP> on port (27015).
Reason: Connection timed out.


Also, bots are still getting "instantly" dropped as soon as I add them to the server.

Latest log (after updating for summer 2020 update):
Code:
'cp_dustbowl.cfg' not present; not executing.
Connection to Steam servers successful.
   Public IP is XX.X.XXX.XXX.
Assigned persistent gameserver Steam ID [G:X:XXXXXXX].
VAC secure mode is activated.
status
hostname: Super Zombie Fortress - Left 4 Dead 2 in TF2!
version : 6054732/24 6054732 secure
udp/ip  : ,<Public IP>:27015  (public ip: XX.X.XXX.XXX)
steamid : [G:X:XXXXXXX] (XXXXXXXXXXXXX)
account : not logged in  (No account specified)
map     : cp_dustbowl at: 0 x, 0 y, 0 z
tags    : alltalk,cp,increased_maxplayers,nocrits,nogifts
players : 0 humans, 0 bots (32 max)
edicts  : 1075 used of 2048 max
# userid name                uniqueid            connected ping loss state  adr
tf_bot_add 1
NextBot tickrate changed from 0 (0.000ms) to 7 (0.105ms)
Dropped Someone Else from server (Kicked from server)
tf_bot_add 1
Dropped Mann Co. from server (Kicked from server)

Latest "netstat -ano" port findings for srcds.exe (PID: 12760)

Code:
  UDP    0.0.0.0:61166          *:*                                    12760
  UDP    0.0.0.0:27015          *:*                                    12760
  UDP    0.0.0.0:27020          *:*                                    12760
  UDP    0.0.0.0:27005          *:*                                    12760
  TCP    <Public IP>:27015     0.0.0.0:0              LISTENING       12760
Final note, Microsoft Net Monitor got 2 UDP requests around the time when I attempted to join the server via the server browser's LAN tab (see screenshot):


EDIT3: After disabling the loopback adaptor and putting "IP <Public IP>" into the server cfg I get this (see image):


Otherwise, the default udp/IP becomes my local IP, and that's back to where we started.

Last edited by ToasterOven; 08-22-2020 at 20:30.
ToasterOven is offline
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 11:10.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode