SteamCMD启动的dedicated_server.exe连不上,主因是服务器未正确监听公网地址(如0.0.0.0)或端口未暴露;需检查绑定地址、安全组/端口转发、conntrack限制、sv_lan配置及master server注册。
为什么 SteamCMD 启动的 dedicated_server.exe 连不上?
绝大多数连不上,是因为没走对网络路径——不是游戏没开,而是服务器压根没暴露端口或监听错地址。默认情况下,很多服务端二进制(比如 valheimserver、rustdedicated、ark-server-tools 启动的 shootergameserver)只监听 127.0.0.1,外部机器发包直接被丢弃。
实操建议:
- 启动时显式加参数绑定公网地址,例如:
./RustDedicated -batchmode +server.ip 0.0.0.0 +server.port 28015 - 检查进程实际监听:Linux 用
ss -tuln | grep :28015,Windows 用netstat -ano | findstr :28015,确认是0.0.0.0:28015而非127.0.0.1:28015 - 云服务器(AWS/Azure/腾讯云)必须额外配安全组规则,放行对应 UDP/TCP 端口;家用宽带还要在路由器上做端口转发,并确认 ISP 没封 27015–28960 这类常见游戏端口段
srcds_run 和 steamcmd + app_update 的启动链路差异
CS2/TF2/L4D2 等 Source 引擎服务器依赖 srcds_run 脚本包装,它不只是启动器,还负责环境变量注入、崩溃重启、日志轮转。直接调 ./srcds_linux 很可能缺 LD_LIBRARY_PATH 或 STEAM_APPID,导致报错 Failed to load steamclient.so。
实操建议:
- 永远用
./srcds_run -game csgo -console -usercon +game_type 0 +game_mode 1 +map de_dust2启动,别绕过它 -
app_update后必须执行validate:运行steamcmd +login anonymous +app_update 730 validate +quit,否则更新可能只写了一半文件,srcds_run启动时会卡在Loading Steam API… - 若用 systemd 托管,
Environment=LD_LIBRARY_PATH=/path/to/steamcmd/linux64必须写全,不能指望系统自动找
UDP 连接被重置?查 iptables 和 conntrack 限流
玩家能看见服务器列表但一加入就断,十有八九是内核层 UDP 连接跟踪表溢出或被限速。Source、Rust、DayZ 等都重度依赖 UDP 包,而 Linux 默认 net.netfilter.nf_conntrack_max 常设为 65536,百人服很容易打满。
实操建议:
- 临时扩容:
sysctl -w net.netfilter.nf_conntrack_max=131072;永久生效写入/etc/sysctl.conf - 确认没误杀:检查
iptables -t raw -L PREROUTING -n,某些安全脚本会加-j CT --timeout 30导致 UDP 会话超时太快 - 用
conntrack -L | grep :27015 | wc -l实时观察连接数,如果接近上限,立刻加-j ACCEPT绕过 conntrack(UDP 本身无连接状态,多数游戏服不需要它)
客户端搜不到局域网外的服务器?关掉 sv_lan 并验证 master server 注册
sv_lan 1 是硬开关——只要它开着,服务器绝不会向 Valve Master Server(hl2master.steampowered.com:27011)注册,Steam 客户端也就搜不到。但这只是第一步,注册失败更常因 DNS 或防火墙拦截 UDP 出站。
实操建议:
- 启动参数里必须带
+sv_lan 0(Source)或配置文件设sv_lan = false(Rust),且不能被 cfg 文件里的同名指令覆盖 - 用
tcpdump -i any udp port 27011抓包,看有没有发往hl2master.steampowered.com的注册请求;没有的话,检查/etc/resolv.confDNS 是否可用,或换用8.8.8.8 - 有些服务商(如 OVH)默认屏蔽 27011 出站 UDP,需提交工单开通,不能只改服务器设置
真正麻烦的从来不是参数怎么写,而是每个环节都得通:端口开着、进程绑对地址、内核不丢包、DNS 能解析、master server 收到注册、客户端查询时没被本地防火墙截胡。漏一环,就显示“服务器未响应”。

















