按小时计费的游戏服务器,玩多久付多久。

如何搭建一台 Quake Live 专用服务器

Quake Live 运行在 id Tech 3(经典的 Quake 3 引擎)上,并附带一个免费的专用服务器,你用 SteamCMD 就能安装。这是在 Linux 上完整的自建流程。如果你只是想今晚有一台服务器用而不想折腾这些,2hours.gg 大约五分钟就能部署好一台,而且你只需为使用的小时数付费。

在 2hours.gg 上部署一台 Quake Live 服务器

1. 环境要求

  • 一台 Linux 主机(Ubuntu 效果很好)。服务器很轻量,安装后约 1.1 GB。
  • SteamCMD,以及它所需的 32 位库(lib32gcc-s1、lib32stdc++6)和 ca-certificates(见下方的坑)。

2. 用 SteamCMD 安装

专用服务器是 Steam app 349090,可匿名安装(无需账号):

steamcmd +force_install_dir ./qlds +login anonymous +app_update 349090 validate +quit

3. 启动服务器

安装包附带 run_server_x64.sh,它会为你设置工作目录和库路径。把你的设置作为参数跟在它后面:

./run_server_x64.sh +set net_port 27960 +set sv_hostname "My Quake Live Server" +set fs_homepath ~/.quakelive

两个会耗费大量调试时间的坑:

  • 安装 ca-certificates。服务器在初始化后会立即与 Steam / Quake Live 后端进行一次 SSL 握手;如果没有受信任的根证书,它就会卡住并且始终不绑定端口(没有报错,就是在加载地图之前停住)。
  • 在现代操作系统上,这个 2016 年的二进制文件可能在 Steam 初始化期间以 "corrupted size vs. prev_size" 崩溃。启动时加上环境变量 GLIBC_TUNABLES=glibc.malloc.check=0 来禁用会中止程序的 malloc 检查,它就能干净地启动了。

4. 开放端口

开放入站 UDP 27960(net_port)。这一个端口承载了游戏、服务器浏览器查询和 Steam 流量。没有单独的查询端口。ZMQ rcon 端口(28960/tcp)应对互联网保持关闭,只从受信任的主机使用它。

5. 配置游戏类型和地图

服务器在启动时会自动运行 baseq3/server.cfg。有用的设置:sv_hostname、sv_maxClients(默认 16)、g_password(全服加入密码)、sv_master 1(在浏览器中显示)以及 serverstartup(初始化完成后运行一次的命令)。要直接启动进入某个游戏类型 + 地图,把 serverstartup 设为加载它,例如:

set serverstartup "map campgrounds ca"

游戏类型标记:ffa、duel、tdm、ca、ctf、ft、dom 等等。地图投票从由 sv_mapPoolFile 设定的地图池文件中抽取(安装包附带 mappool.txt 以及像 mappool_ca.txt 这样的分模式地图池)。

6. 给自己授予管理员权限

管理员就是一个文本文件:baseq3/access.txt,每行一条,格式为 steamid|admin。加入一场对局并在控制台里输入 players 来获取你的 64 位 Steam ID,然后加上一行,例如 76561198000000000|admin。如果你在服务器运行时编辑它,用 reload_access 重新加载(通过 rcon 或以管理员身份)。管理操作通过记分板菜单和投票完成,而不是老的 /mod 命令(它已经不存在了)。

7. 自定义内容(Steam Workshop)

Quake Live 只会自动下载 Steam Workshop 上的自定义地图和 factory。在 baseq3/workshop.txt 里每行放一个 Workshop 物品 id,服务器会在完成启动前把它们拉取下来。

或者省去这一切

在 2hours.gg 上,你选择一个游戏类型、一张地图和一个规模,大约五分钟就能得到一台配置好、管理员就绪的 Quake Live 服务器,部署在离你团队较近的区域,按小时计费。无需 Linux,无需 SteamCMD,无需端口转发。

另请参阅

返回所有指南