摘自[1].
官方服务器的搭建
首先从官方标准服务器搭建开始。我们首先要一台有公网 IP 的 Linux 服务器,假设系统是 CentOS 7,其它系统应该是类似的,只需要改一下安装软件包的指令。
基本要求:10 GB 服务器硬盘空间
安装 SteamCMD
SteamCMD 是命令行式的 Steam,有普通的 Steam 的所有功能,不过因为没有 GUI,资源开销要低很多,适合服务器用。
首先更新下软件包,以及安装基本的依赖软件。以 root 用户登录,在 ssh 中运行以下指令:
yum update yum install unzip tree screen wget
第一条指令更新系统中的软件包,第二条指令安装必要软件包 unzip(解压),tree(文件列表),screen(后台),wget(下载)。
接下来,参照[2]安装 SteamCMD。
安装 SteamCMD 所需的依赖。
yum install glibc.i686 libstdc++.i686
新建一个普通用户进行下面的操作。也可以用 root 用户进行,不过官方不推荐。
adduser xxx
su xxx
xxx 是普通用户的名字,可以自己起一个。第二条指令从 root 用户切到了普通用户。
进入该用户的家目录(/home/xxx)
cd ~
新建一个给 SteamCMD 准备的文件夹
mkdir SteamCMD cd SteamCMD
下载并解压 SteamCMD 在这个文件夹
wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz tar zxvf steamcmd_linux.tar.gz
到这里 SteamCMD 就安装好了。
安装 Insurgency 独立服务器
启动 SteamCMD,以匿名帐户登录
./steamcmd.sh login anonymous
安装 Insurgency Dedicated Server
force_install_dir ./insurgency_server
app_update 237410
等待一会儿就装好了。可能出现错误 0x402
啥的,就再输入一次最后一条指令。成功完成后, Insurgency 服务器就基本装好了。
运行服务器
新建或修改 server.cfg
文件
cd insurgency_server/insurgency/cfg nano server.cfg
这个文件是一些基本的服务器设置,可以参照同目录下的 template 编写。下面是一个例子:
// ---------------------------------------------------------------
// Server Info Options
// ---------------------------------------------------------------
//hostname "[CN]LA DA SHUAN Server - test" // 服务器名字,不能显示汉字,后面可以通过插件解决
rcon_password "stupid_password" // rcon 密码,我不知道做什么的,建议设置复杂点
sv_password "" //服务器密码,公开服务器留空
sv_pure 0 //纯净,设为0 允许mod
// 这一串是调 tick 的好像,不好用可以全部扔掉
sv_maxrate 128000
sv_minrate 30000
sv_minupdaterate 64
sv_maxupdaterate 128
sv_mincmdrate 64
sv_maxcmdrate 128
sv_timeout 125 //连接超时,别设太短了
mp_coop_lobbysize 8 // 最大玩家数,实际情况由地图和theater决定
spec_freeze_enable 0 //死亡回放,0不启用
sv_battleye 0 //不启用 BE反作弊(有VAC这玩意没什么用)
//---------------------------------------------------------------------------
//SourceMOD Plugins //SourceMOD插件选项,目前还没有装
plugin_option 0 //占位的,没有用处
//---------------------------------------------------------------------------
// ---------------------------------------------------------------
// Server Logging Options 日志选项
// ---------------------------------------------------------------
log on
sv_logbans 1
sv_logecho 1
sv_logfile 1
sv_log_onefile 0
sv_deadtalk 1 //上帝视角也能发言
sv_hud_deathmessages 1 //Death message
// ---------------------------------------------------------------
// Game Mode Options (Change text with in the quotes)
// ---------------------------------------------------------------
// "mapcycle.txt" - by default this contains the most popular options
// "mapcycle_all.txt" - all possible map/mode combinations for PvP
// "mapcycle_ambush.txt" - only ambush (VIP) mode
// "mapcycle_attackdefend.txt" - mix of attack/defend modes
// "mapcycle_cooperative.txt" - checkpoint, outpost, hunt
// "mapcycle_firefight.txt" - all firefight maps
// "mapcycle_flashpoint.txt" - all flashpoint maps
// "mapcycle_infiltrate.txt" - all infiltrate (CTF) maps
// "mapcycle_objrespawn.txt" - all modes featuring respawning for completing objectives
// "mapcycle_occupy.txt" - all occupy maps
// "mapcycle_push.txt" - all push maps
// "mapcycle_singlelife.txt" - mix of all single life modes
// "mapcycle_skirmish.txt" - all skirmish maps
// "mapcycle_workshop.txt" - used by Workshop system
mapcyclefile "mapcycle_checkpoint.txt" //用官方检查点地图列表
// ---------------------------------------------------------------
// Enabling Matchmaking (Change text with in the quotes)
// More info: https://steamcommunity.com/app/222880/discussions/2/558746089590579609/
// ---------------------------------------------------------------
// "pvp" (Player vs Player)
// "custom" (Custom rules and modded servers)
// "coop" (Cooperative)
sv_playlist coop //会显示在合作服务器列表中
然后开放服务器的端口,以便客户端连接。一般去服务器提供商的网页找找。游戏默认的端口是 27015/udp,没有修改的话就开放这个。
最后,使用 screen
运行服务器!
screen -S ins /home/xxx/SteamCMD/insurgency_server/srcds_run -port 27015 +map district_coop +maxplayers 32 -workshop
解释一下,上面一串是 srcds_run
文件所在的目录,指定在 27015 端口运行,初始地图为 district_coop, -workshop
添加创意工坊支持。
等一堆代码跑完以后,终端出现了什么 VAC 正在运行之类的句子,就可以把 screen
切到后台了。快捷键是 Ctrl+A,再按 D.
如果要切回来:
screen -r screen -r ins
第二条指令是指定窗口名字的切换,如果只有一个窗口在后台用第一条指令就行了。
如果要杀掉窗口(结束服务器运行),快捷键是 Ctrl+A,再按 K。
到这里,官方规则的 coop 服务器已经运行起来了,可以去游戏里看看有没有。