移动大内网,玩P2P游戏还是很蛋疼的……

搭建

选择主机

首先你需要申请一台云主机,考虑到延迟和价格,建议选择国内主机商(例如腾讯、阿里、华为等)的轻量应用服务器。

本文使用了阿里云轻量应用服务器,并测试成功,其配置如下表。

项目 参数
处理器 1核心
内存 2GB
硬盘 40GB
网络 5Mbps 公网出口带宽(1TB流量)
系统 CentOS 7.6
价格 学生认证9元/月

申请完主机后,你会得到主机的IP地址,root密码,使用终端软件与主机进行通信即可。

同时,记得在主机的安全组(或防火墙),开放对应的TCP+UDP端口(本文使用的是默认27015端口)。

阿里云轻量应用服务器添加安全组:点击跳转

环境准备

root身份登录至服务器后,请参照以下顺序输入命令。

更新服务器相关组件:

1
yum update -y

安装相关依赖库

1
yum install -y glibc.i686 libstdc++.i686

创建新用户l4d2server,并设置密码

1
2
adduser l4d2server
echo "14d2server_password" | passwd --stdin l4d2server //请记得修改密码

提示:请务必将 l4d2server_password替换成你自己设定好的密码。

进入创建好的用户l4d2server

1
su - l4d2server

安装服务端

l4d2server身份登录服务器后,请按照以下顺序输入命令。

下载并解压SteamCMD

SteamCMD项目官网下载本地,使用tar命令进行解压操作

1
wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz && tar xf steamcmd_linux.tar.gz

使用SteamCMD

使用SteamCMD,以匿名身份安装求生之路2服务端(其ID为222860),完成后自动退出

1
./steamcmd.sh +login anonymous +force_install_dir ./l4d2 +app_update 222860 validate +quit

当命令行显示Success! App '222860' fully installed.时,服务端已安装完成。现阶段是官方原生版本的游戏,无任何插件和辅助工具;如果只是想做官服的话,可以跳过下面安装插件的步骤。

安装插件

游戏是开发多元的,通过多样的插件系统,可以获得前所未有的游戏体验;下面将逐一介绍这些插件和其使用方法。

1.SourceMod

插件平台可以说是装载插件的前提条件,没有插件平台的支持,插件也就无法在服务器中启用。

SourceMod是一款用于起源引擎的开源的插件平台;通过简单的命令编写插件,实现原生服务器无法实现的功能,如:防踢防封、权限管理、言论过滤、更换地图、修改Ticket参数、修改后坐力等等。

当然,SourceMod支持Windows和Linux系统,两版本互不兼容,使用前请注意区分。

首先,点击跳转Sourcemod下载页面,下载Linux版本的SourceMod。

下载SourceMOD-2Pass

2.Metamod:Source

Metamod:Source是一款用于起源引擎的开源的插件管理器;安装前需要安装SourceMod插件平台,并确保插件平台能正常工作。

当然,SourceMod支持Windows和Linux系统,两版本互不兼容,使用前请注意区分。

首先,点击跳转Metamod:Source下载页面 ,下载Linux版本的Metamod:Source

下载Metamod-2Pass

由于Metamod:Source是依据VDF文件来判断接管的游戏;这时候需要点击左侧菜单栏的Make your VDF选项, 在Game选项卡中选择Left 4 Dead 2(下面的Game Folder可以留空),点击Generate metamod.vdf生成并下载求生之路2的VDF文件。

下载Metamod VDF文件-2Pass

3.插件平台

插件平台集成了许多求生之路2的辅助插件,例如显示NPC血量、显示友伤情况、游戏RPG化等等。这里使用了豆瓣酱的汉化版插件(基于L4DToolZ)

豆瓣酱插件说明:贴吧转发

豆瓣酱插件(蓝奏云链接,密码为fah3 ): 点击跳转

4. L4D2服务端配置文件

在自己电脑上,用记事本新建一个名为server.cfg的文件。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
hostname "NiXie's L4D2 Room"  //设置房间名
sv_allow_lobby_connect_only 0 //用于游戏大厅配对入场(0不显示+拒绝,1显示+允许)

sm_cvar sv_gametypes "coop" //设置游戏模式为合作
sm_cvar director_no_human_zombies "1" //避免人类加入丧尸,仅战役模式
mp_gamemode "coop" //激活游戏模式为合作
z_difficulty "Easy" //设置游戏难度为简单(Easy,Normal,Hard)

sm_cvar sb_all_bot_game 1 //防止人数不足而自动关闭

sv_tags "hidden" //防止DDOS攻击
sm_cvar sv_region 4 //设定服务器区域为亚洲
sv_steamgroup "STEAM组id" //绑定STEAM组的id,不是该组的成员无法进入服务器
sv_steamgroup_exclusive 1 //设置组私有化

sv_visiblemaxplayers 8 //服务器可见最大玩家数
maxplayers 8 //最大玩家数

5. 解压、打包、上传

第一步:将MetaSource和SourceMod解压后放在一起,便会出现addonscfg共两个文件夹,并将创建好的server.cfg文件放入cfg文件夹。

第二步:解压插件包,将第一步解压出来的两个文件夹覆盖到插件解压的目录中,这样插件的准备就基本完成了。

第三步:如何添加插件管理员?首先我们在求生之路游戏中获取STEAM_ID

打开求生之路2,在选项键盘/鼠标→启用允许使用开发者控制台,如图下图所示。

打开游戏控制台-2Pass

随便进入一个游戏(人机联机都可以),加载完成后,按 ~ 键调出控制台,输入status后回车,复制userid name uniqueid connected ping loss state rate adr的下面一行,如图下图所示。

查找STEAMID-2Pass

在解压插件文件夹的/addons/sourcemod/configs目录中,打开admins_simple.ini文件,在文末处将SETAM_ID粘贴上去,并空格输入99:z内容(添加管理员权限,保存文件,这样该玩家可以不用输密码直接管理游戏进程)。

修改配置文件-2Pass

第四步:检查无误后,通过FTP或SCP工具,将处理好的目录上传至服务器的/home/l4d2server/l4d2/left4dead2/目录中。

上传完成后,就大功告成了。

运行服务

通过终端软件访问服务器,可以是root用户,也可以是刚刚创建的l4d2server用户,这里以后者做演示。

输入以下命令,运行服务器(以默认的27015端口对外服务,不要忘记开放对应端口的防火墙)

1
2
cd l4d2/
./srcds_run -game left4dead2 -insecure +maxplayers 16 +hostport 27015 +map c1m2_streets

命令行参数详见:点击此处跳转

在控制台(Console)里输入 meta list,可查看插件的安装情况。

客户端访问

服务端启动后,客户端按 ~ 打开控制台,输入connect xxx.xxx.xxx.xxx:27015(即connect+IP地址:端口,或者connect+域名),稍等片刻,你就进入自己的服务器了。

游戏连接情况-2Pass