你准备好搭建一个稳定、安全、低延迟的 Garry's Mod 服务器了吗?
本指南面向服务器管理员、游戏玩家和 DevOps 团队,详细讲解了如何使用 SteamCMD 设置 Garry's Mod 服务器 (SRCDS)。文章内容涵盖选择合适的服务器位置、安装和配置 SRCDS、安全设置(例如 RCON 和防火墙)、ping 和硬件优化、创意工坊管理、更新和备份自动化,以及维护和监控的实用技巧。.
选择合适的地点和计划
对于 Garry's Mod 来说,选择服务器位置非常重要,因为玩家体验取决于网络延迟 (ping) 值。对于特定国家/地区的玩家,请选择距离最近的数据中心:欧洲(法兰克福/伦敦)、北美(纽约/芝加哥)、西美(洛杉矶)、亚洲(新加坡/东京)、澳大利亚(悉尼)、巴西(圣保罗)。.
以下 ping 的目的是什么? 80毫秒 为了获得可接受的体验,低于 60毫秒 推荐用于积累竞技经验。.
根据玩家人数推荐硬件。
- 小型(最多 12 名玩家): 2 个虚拟 CPU,4GB 内存,固态硬盘,100Mbps 带宽。.
- 中等难度(12-32名玩家): 4 个虚拟 CPU,8-16GB 内存,NVMe SSD,1Gbps。.
- 大型(超过 32 名玩家或大量插件): 6+ vCPU、32GB+ RAM、NVMe、1-10Gbps 和高 I/O 服务器。.
使用专用游戏服务器或防DDoS服务器,以最大程度降低延迟并抵御攻击。使用CDN分发下载文件(地图、插件),以减少带宽占用并加快下载速度。.
前提条件和系统准备
推荐操作系统: Ubuntu 20.04/22.04 或者 Debian 11/12. 请以具有 sudo 权限的用户身份运行以下命令,以更新系统并安装必备组件。.
sudo apt update && sudo apt upgrade -y
sudo apt install -y wget lib32gcc-s1 lib32stdc++6 ca-certificates screen tmux unzip如果包裹 steamcmd 罐装供应:
sudo apt install -y steamcmd否则,请手动安装 SteamCMD:
sudo mkdir -p /opt/steamcmd
sudo chown $USER:$USER /opt/steamcmd
cd /opt/steamcmd
wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
tar -xvzf steamcmd_linux.tar.gz创建一个非root用户来运行服务器:
sudo useradd -m -s /bin/bash gmod
sudo passwd gmod
sudo mkdir -p /home/gmod/server
sudo chown -R gmod:gmod /home/gmod使用 SteamCMD 下载并安装 SRCDS
以 gmod 用户身份登录并运行 SteamCMD 来安装 Garry's Mod 服务器:
sudo su - gmod
/opt/steamcmd/steamcmd.sh +login anonymous +force_install_dir /home/gmod/server +app_update 4020 validate +quit下载创意工坊物品(例如收藏品或地图):
/opt/steamcmd/steamcmd.sh +login anonymous +force_install_dir /home/gmod/server +app_update 4020 validate +workshop_download_item 4020 <WORKSHOP_ID> +quit要在启动 SRCDS 时自动加载集合,请使用以下参数:
+host_workshop_collection <COLLECTION_ID> +host_workshop_authkey <STEAM_WEB_API_KEY>服务器配置——server.cfg 和执行参数
将基础配置文件放在该路径下 /home/gmod/server/garrysmod/cfg/server.cfg 创建或编辑。基本设置示例:
hostname "My GMod Server"
rcon_password "PUT_A_STRONG_PASSWORD_HERE"
sv_password ""
sv_cheats 0
sv_lan 0
sv_allowdownload 1
sv_allowupload 1
sv_maxrate 30000
sv_minrate 5000
sv_timeout 120
sv_voiceenable 1
sv_pure 0
sv_region 3配置提示:
- sv_maxrate 和 sv_minrate 根据带宽和玩家数量进行调整。.
- 管理模组并访问文件 工作室系列 用于让玩家自动下载文件。.
SRCDS 执行参数示例:
cd /home/gmod/server
./srcds_run -game garrysmod +maxplayers 32 +map gm_flatgrass -tickrate 66 -port 27015 +host_workshop_collection <COLLECTION_ID> -autoupdate以 systemd 服务方式运行服务器
创建 systemd 服务,以便于管理并实现开机自动启动。以下是创建服务文件的示例:
sudo tee /etc/systemd/system/gmod.service <<'EOF'
[Unit]
Description=Garry's Mod Server
After=network.target
[Service]
Type=simple
User=gmod
WorkingDirectory=/home/gmod/server
ExecStart=/home/gmod/server/srcds_run -game garrysmod +maxplayers 32 +map gm_flatgrass -tickrate 66 -port 27015
Restart=on-failure
RestartSec=10
LimitNOFILE=100000
[Install]
WantedBy=multi-user.target
EOFsudo systemctl daemon-reload
sudo systemctl enable gmod.service
sudo systemctl start gmod.service
sudo journalctl -u gmod.service -f防火墙、端口和网络安全
常见的 Garry's Mod / SRCDS 移植版本:
- UDP 27015(游戏和查询)
- TCP/UDP 27015(RCON 可能使用 TCP)
- UDP 27005(Steam客户端)
使用 UFW 的示例配置:
sudo ufw allow 27015/tcp
sudo ufw allow 27015/udp
sudo ufw allow 27005/udp
sudo ufw enable为了防范 DDoS 攻击,可以使用反 DDoS 服务器方案在网络攻击到达服务器之前对其进行过滤。.
优化性能并降低延迟
提升服务器性能的关键技巧:
- 选择靠近玩家的位置以降低往返时间。.
- 使用 SSD/NVMe 来减少地图加载时间并提高 I/O 性能。.
- 物理计算应使用高频 CPU;GMod 在很多情况下依赖于单核频率。.
网络内核设置(示例):
sudo sysctl -w net.core.rmem_max=26214400
sudo sysctl -w net.core.wmem_max=26214400此外,根据资源和玩家数量平衡 sv_maxrate、tickrate 和 maxplayers,并在将大型模组发布到服务器之前进行测试。.
模组管理、创意工坊和下载自动化
使用 SteamCMD 添加创意工坊中的模组:
/opt/steamcmd/steamcmd.sh +login anonymous +force_install_dir /home/gmod/server +workshop_download_item 4020 <WORKSHOP_ID> +quit建议:使用集合并将其 ID 作为参数传递。 +host_workshop_collection 设置 Steam 在服务器运行时下载物品。.
要手动安装插件,只需将文件复制到指定位置即可。 garrysmod/插件 插入后重启服务器。.
自动更新和备份
一个简单的 SRCDS 更新脚本:
#!/bin/bash
systemctl stop gmod
/opt/steamcmd/steamcmd.sh +login anonymous +force_install_dir /home/gmod/server +app_update 4020 validate +quit
systemctl start gmod添加定时任务(例如每天凌晨 4 点):
sudo crontab -e
0 4 * * * /home/gmod/update_gmod.sh >> /var/log/gmod_update.log 2>&1备份:从文件夹 garrysmod/地图, garrysmod/插件 定期进行配置文件备份。使用 rsync 或云基础设施快照和对象存储(兼容 S3)以实现快速恢复。.
监控、日志和维护
登录 garrysmod/日志 systemd 可见。使用 logrotate 轮换日志。.
为了监控服务器状态,可以使用诸如以下工具: 普罗米修斯 + 格拉法纳 或者 Zabbix 建议监控 CPU、内存、网络和丢包情况。.
定期重启(例如每 6-12 小时一次)可以减少内存泄漏和插件引起的问题。.
给管理者和DevOps的实用技巧
- 首先在测试服务器上测试更新,以发现模组问题。.
- 使用域名或 DNS 来为服务器设置 IP 地址,以便更轻松地更改 IP 地址;为 server.example.com 创建一个 A 记录。.
- 使用 CDN 下载文件,使用负载均衡器和 BGP/任播实现高可用性。.
最佳实践:在增加容量或提供公共服务时,使用文件流量拆分到 CDN 和分布式设计来降低服务器负载并提高可用性。.
总结和一般性建议
按照本指南,您可以搭建一个稳定、安全且性能优化的 Garry's Mod 服务器,从使用 SteamCMD 安装 SRCDS 到配置 server.cfg、systemd 服务、防火墙和 DDoS 防护。请注意服务器位置、合适的硬件以及 CDN 的使用,以获得最佳性能。.









