首先声明,本文搭建过程仅适用于steam正版L4D2,盗版开服需要自己下载服务器破解补丁。
维护绿色游戏环境,请支持正版。
今天闲来无事搭建了L4D2服务器,在此记录,权当备忘。
安装环境
- 阿里云1G,1核,1Mbps I/O优化实例
- 基于Debian 8.9 64位
- 注意:如果使用Windows Server搭建运行时会偶现卡顿,建议使用Linux
下载并配置SteamCMD
SteamCMD是Valve提供的Steam的命令行版本,用于在Linux搭建各个游戏的Dedicated Server。
安装32位运行库
如果你和我一样是Debian的32位版本,需要安装32位运行库。
Ubuntu/Debian 64-bit:
apt-get install lib32gcc1
32位RedHat,如CentOS 32-bit:
yum install glibc libstdc++
64位RedHat:
yum install glibc.i686 libstdc++.i686
Valve非常不推荐使用root用户使用SteamCMD和运行服务器,可以使用:
adduser username
su - username
来创建用户并切换。
安装SteamCMD
mkdir ~/steamcmd
cd ~/steamcmd
wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
tar -zxvf steamcmd_linux.tar.gz
配置SteamCMD
cd ~/steamcmd
./steamcmd.sh
第一次运行SteamCMD时,SteamCMD会自动下载一些文件,和Steam一样,不是很大,稍等片刻即可。
下载完后命令行显示:
Steam Console Client (c) Valve Corporation
-- type 'quit' to exit --
Loading Steam API...OK.
Steam>
这里,你可以选择是否使用匿名登录,有些游戏的Server需要你有游戏才可以下载,有些匿名登录可以下,具体表格请参见:https://developer.valvesoftware.com/wiki/Dedicated_Servers_List
在这里,因为L4D2服务器可以匿名登录下载,我们选择使用匿名登录。
Steam>login anonymous
Connecting anonymously to Steam Public...Logged in OK
Waiting for license info...OK
Steam>
此时已经登录成功,我们可以使用force_install_dir指定下载目录
Steam>force_install_dir /home/username/l4d2
这时,就可以开始下载Left 4 Dead 2 Dedicated Server了,下载的命令语法是
app_update <app_id> [-beta <betaname>] [-betapassword <password>] [validate]
其中,app_id是该Dedicated Server在Steam数据库中的APPID,在https://developer.valvesoftware.com/wiki/Dedicated_Servers_List 可以查询到,L4D2 Dedicated Server的APPID是222860,后面beta选项是是否参加该游戏的某项测试,和本次L4D2搭建无关,最后的validate是是否下载完成后验证一遍文件,推荐加上。
我们使用如下命令:
Steam>app_update 222860 validate
接下来就可以慢慢等服务器下载成功了,
等到提示:
Success! App '222860' fully installed.
即说明已经下载安装成功。此时就可以键入quit退出SteamCMD了。
配置Left 4 Dead 2 Dedicated Server
server.cfg的配置
L4D2是一款Source引擎的游戏,其Dedicated Server配置也秉承了一系列SRCDS(Source Dedicated Server)的特点,配置起来简单方便。
简而言之,用/l4d2表示我们下载l4d2的目录(force_install_dir中设定的)我们仅仅需要在/l4d2/left4dead2/cfg/目录下新建一个server.cfg文件将我们需要进行配置的选项赋值即可。具体可配置的选项如下:
hostname "servername" //游戏服务器名
rcon_password "password" //远程管理密码
//sv_search_key yourkey //搜索此服务器的关键词
//sv_region 255 //服务器地区,255表示全球
//sv_gametypes "coop,versus,survival,scavenge" //游戏模式
//map c5m1_waterfront //游戏地图
//sv_voiceenable 1 //开启语音服务
//sv_lan 0 //是否是局域网游戏
//sv_cheats "0" //是否允许作弊
//sv_steamgroup "01234" //Steam组号
//sv_steamgroup_exclusive 1 //将服务器设为Steam组私有
具体选项请参阅Valve相关说明。在这里我们不需要过多配置,像游戏地图模式等我们可以在Left 4 Dead 2游戏内去选择,以下是我的组服务器配置的server.cfg文件
hostname "L4D2-1106private"
sv_steamgroup "********"
sv_steamgroup_exclusive 1
更多配置网上都很详细,不过仅仅这些基本就够了。
内部配置
在/l4d2/left4dead2目录下,你可以发现host.txt和motd.txt,他们里面的内容分别是游戏进入时显示的服务器信息和今日消息两张图片,你可以对他们进行修改,改为你的页面的图片地址。
服务器运行
建立一个run.sh文件,输入
./srcds_run -game left4dead2 +exec server.cfg
这样运行L4D2虽然没有问题,但你必须保持SSH连接一直打开,万一不小心关闭了服务器就也没了,很不方便,我推荐使用后台去运行服务器,在命令前只需简单的加入一个nohup即可。
nohup ./srcds_run -game left4dead2 +exec server.cfg
像这样后台运行,如果你想彻底关闭服务器,你需要ps -ef查看进程并kill掉srcds的pid。
可以使用绝对路径并随便将这个run.sh文件放置在任何地方,以后直接启动run.sh就行。
另外,还可以使用screen来替代nohup,screen比nohup使用起来更为方便、容错率更高。
没安装的先
apt-get install screen
安装下。开启screen新窗口,并命名为l4d2
screen -S l4d2
然后就可以和室友们开心地L4D2了!
感谢大佬指点