在腾讯云主机上搭建求生之路2游戏服务器

手机操作系统 2017-03-16

 提示:阅读本文可能需要命令行操作基础。

主机配置

操作系统CentOS 6.5 64位
CPU1核内存1GB系统盘20GB(本地磁盘)数据盘30GB(本地磁盘)公网带宽1Mbps

通过SSH登录服务器

1、在主机控制台中将root用户的密码重置为常用密码

2、在本地使用PuTTY客户端连接服务器

设置如下:

涂蓝色处填写主机公网IP。默认窗口配色过于伤眼请自行修改。

3、登录

login as: root
[email protected]'s password: 
Last login: Wed Mar 15 00:58:56 2017 from 183.238.59.140
[root@VM_130_240_centos ~]#

部署SteamCMD和L4D2服务端

1、安装32位运行库

由于是SteamCMD只支持32位运行环境,需要另外安装32位的C函数库和C++函数库。

sudo yum install glibc.i686 libstdc++.i686

2、创建一个专用账户

useradd -m steamcmd
passwd steamcmd

切换用户:

su - steamcmd

从超级用户如root,切换到一般用户时无需输入密码。

3、下载SteamCMD

创建并进入SteamCMD的安装目录后,下载tar包。

wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz --no-check-certificate

--no-check-certificate是不检查安全网站证书的参数。

解压:

tar -zxvf steamcmd_linux.tar.gz

4、启动SteamCMD

首次运行SteamCMD会下载一些文件,鉴于连接外网的速度,请重试一万遍或者换个时间段再试。反正下载成功后我的内心一直在默念草泥马。

./steamcmd.sh

5、下载Left 4 Dead 2 Dedicated Server

Left 4 Dead 2 Dedicated Server是L4D2服务端,Steam应用ID为222860。

匿名登录Steam后下载,默认安装目录在/home/steamcmd/Steam/steamapps/common/Left 4 Dead 2 Dedicated Server。

同理,请重试一万遍,不过可以续传,个人觉得比更新SteamCMD容易多了。

Steam>login anonymous

Connecting anonymously to Steam Public...Logged in OK
Waiting for license info...OK

Steam>app_update 222860 validate

下载完成后执行quit退出SteamCMD。

通过SCP进行文件传输

1、使用WinSCP客户端远程登录

新建站点,填写完毕后保存,登录即可与服务器进行文件对拷。

在腾讯云主机上搭建求生之路2游戏服务器

2、配置服务器

Linux上的配置只需注意SourceMod和MetaMod需要下载Linux版本,其余的与Windows大同小异,暂且不表。

运行服务端

进入服务端的安装目录后运行服务端。基本命令如下:

./srcds_run -game left4dead2 +hostport 25252

可选参数:

+map <map>,设置首张地图,缺省为c1m1_hotel;

-secure,开启VAC验证;

-condebug,开启记录日志,在left4dead2文件夹下生成console.log记录文件;

+exec server.cfg,加载/left4dead2/cfg/server.cfg,该文件写法与L4D2客户端中autoexec.cfg类似。

服务器IP就是你的主机公网IP,在L4D2客户端中打开控制台执行 “connect xxx.xxx.xxx.xxx:25252” 即可加入游戏。

持续运行服务端需要保持SSH连接,关闭SSH窗口后服务端随即关闭。

理解这个问题仅需明白进程树的概念,需要深入理解可见参考资料第4条。

简单的命令可以用nohup命令解决,在当前情况下需要用到GNU Screen。

GNU Screen的安装和使用

1、安装

在root用户下安装Screen:

yum install screen

安装完成后切换到用户steamcmd。

2、使用

执行screen可以创建一个新新窗口,在screen窗口中可使用 “ctrl+a ?” 查看所有命令。

使用 “ctrl+a d” 会使当前screen窗口分离(detach)为独立的会话。会话分离后即使断开SSH连接,原先在screen窗口中执行的命令会继续执行。

查看当前的screen会话并恢复:

[steamcmd@VM_130_240_centos ~]# screen -ls
There is a screen on:
        13235.pts-0.VM_130_240_centos   (Detached)
1 Socket in /var/run/screen/S-root.

[steamcmd@VM_130_240_centos ~]# screen -r 13235

3、在screen窗口中运行L4D2服务端并分离会话

创建一个名为 “l4d2_ds” 的screen会话:

screen -S l4d2_ds

在screen窗口中运行服务端后,使用 “ctrl+a d” 执行会话分离。

现在你可以关闭你的SSH窗口,服务端会继续运行。

服务器搭建完成。

附个人监控数据

我建的是八人多特感服务器,可见低端配置运行L4D2这破游戏还是绰绰有余的。

在腾讯云主机上搭建求生之路2游戏服务器

参考资料

1、SteamCMD - Valve Developer Community

https://developer.valvesoftware.com/wiki/Steamcmd

2、Steam Application IDs - Valve Developer Community

https://developer.valvesoftware.com/wiki/Steam_Application_IDs

3、Source Dedicated Server - Valve Developer Community

https://developer.valvesoftware.com/wiki/SRCDS

4、Linux命令nohup+screen - iTech - 安科开发

http://www.cnblogs.com/itech/archive/2012/03/04/2379523.html

5、linux screen 命令详解 - David_Tang - 安科开发

http://www.cnblogs.com/mchina/archive/2013/01/30/2880680.html

相关推荐