搭建求生之路2服务器
前段时间和朋友玩L4D2( 求生之路 2)基本都是用本地主机作为服务器,由于几个人分别在不同的地区用不同的运营商导致不管谁当主机都会有人卡。所以决定租一台腾讯云服务器作为游戏服务器。
网上大部分教程大多参差不齐,Valve官方文档也不太详细,总体搭建过程不太顺利。
服务器环境
- 腾讯云-云服务器CVM-标准型S4
- Ubuntu Server 18.04.1 LTS 64位
- CPU:1核 内存:2GB 公共带宽:1Mbps
1C 2G的学生机通常够了,L4D2的服务端不太吃配置,但1Mbps带宽不建议解锁高tickrate带宽可能吃不消,如果以后想放很多第三方地图建议硬盘大一点。
纯净服搭建
1.安装SteamCMD所需依赖
SteamCMD用于下载L4D2服务端
这里我使用的是Ubuntu
因此使用apt-get
命令进行安装,如果是CentOS
则使用yum
命令。
在包管理器添加X86的包:
sudo dpkg --add-architecture i386
更新系统和存在的包:
sudo apt-get update && sudo apt-get upgrade
安装Steam CMD需要的库:
sudo apt-get install lib32gcc1 lib32stdc++6 libc6-i386 libcurl4-gnutls-dev:i386 screen -y
新系统可能需要自行安装
wget
和vi编辑器
2.安装SteamCMD
建议在用户目录下进行安装(
cd \~
)
创建steamcmd
文件夹并从网络上获取SteamCMD安装包:
cd ~
mkdir steamcmd
cd steamcmd
wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
解压SteamCMD安装包并运行:
tar -zxvf steamcmd_linux.tar.gz
./steamcmd.sh
如果执行脚本完毕没有报错则SteamCMD安装完成。
输入
exit
退出SteamCMD(Steam>exit
)
3.通过SteamCMD安装Left 4 Dead 2 Dedicated Server
匿名登陆Steam并指定服务器安装目录:
./steamcmd.sh
Steam>login anonymous
Steam>force_install_dir /home/ubuntu/l4d2 //路径参考自己的系统环境
l4d2服务端官方建议匿名登陆下载,但有部分游戏服务端不能匿名下载,具体参考官方文档
下载Left 4 Dead 2 Dedicated Server:
Steam>app_update 222860 validate
等待安装,安装完成后提示Success! App '222860' fully installed.
。
222860
为我搭建时L4D2服务器的ID,也可以在官方文档中参考最新ID
4.配置Left 4 Dead 2 Dedicated Server
配置server.cfg
:
cd /home/ubuntu/l4d2/left4dead2/cfg/ //路径参考自己的安装路径
vi server.cfg
服务器安装完成后默认是没有配置文件的,因此会提示new file
基本配置如下:
hostname "xxx" //游戏服务器名
sv_steamgroup "12345" //Steam组号
sv_steamgroup_exclusive "1" //将服务器设为Steam组私有
- 创建一个
Steam组
并将Steam组
的ID
填入sv\_steamgroup
,将服务器设为Steam组私有
,这样的话只有Steam组成员
可以在游戏内看到服务器。 - 只需要以上基本配置服务器便可正常运行。
更详细的配置如下:
hostname "xxx" //游戏服务器名
sv_steamgroup "123456" //Steam组号
sv_steamgroup_exclusive "1" //是否将服务器设为Steam组私有
sv_consistency "0" //是否允许装了不同mod的人进入服务器
sv_tags "hidden" //隐藏服务器(防止Ddos攻击)
sv_cheats "0" //是否允许作弊
sv_region "255" //服务器地区,255表示全球
sm\_cvar sv\_consistency "0"
如果不设置这项,那么订阅了创意工坊mod的用户会进不去服务器
配置host.txt
和motd.txt
(可选项)
- 在
host.txt
中写入该服务器的提供者,进入服务器后会显示该服务器提供者为XXX
:
cd /home/ubuntu/l4d2/left4dead2 //路径参考自己的安装路径
vi host.txt
- 在
motd.txt
中写入进入服务器时的今日消息,可展示网页或文字或图片:
cd /home/ubuntu/l4d2/left4dead2 //路径参考自己的安装路径
vi motd.txt
以下是我自己的motd.txt
例子:
<!DOCTYPE html>
<html>
<head>
<title>TODO supply a title</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<style>
body {
background-image: url('https://s3.ax1x.com/2021/02/02/yuWRVP.gif');
background-repeat: no-repeat;
background-size: 100% auto;
}
.content {
color: #23bded;
text-align: center;
font-size: 32px;
}
</style>
</head>
<body>
<div class="content"></div>
</body>
</html>
如果使用我的例子可以将自己的图片传入图床并将background-image: url
改为自己的图片
我用的图床为路过图床
5.开放端口
为了让服务器与客户端可以进行正常数据交互需要防火墙对L4D2服务器用到的端口放行:
sudo ufw allow 4380
sudo ufw allow 10999
sudo ufw allow 7777
sudo ufw allow 27015
L4D2默认端口是27015
,可以自己设置其他端口运行
6.运行服务器和关闭服务器
运行服务器:
cd /home/ubuntu/l4d2 //路径参考自己的安装路径
./srcds_run -game left4dead2 +exec server.cfg
脚本运行后显示Connection to Steam servers successful. VAC secure mode is activated.
代表服务器启动成功。
此时如果关闭ssh窗口
会导致服务器关闭,可以使用screen
实现后台运行:
- 创建脚本:
cd /home/ubuntu/l4d2/ //路径参考自己的安装路径
touch start.sh
- 编辑脚本:
vi start.sh
- 填入启动指令:
screen ./srcds_run -game left4dead2 +exec server.cfg -map xxx
将-map xxx
替换为希望服务器启动时的初始地图(删掉-map xxx
则以死亡中心为初始地图)
- 赋予脚本执行权力:
chmod +x ~/ubuntu/l4d2/start.sh
这时就可以通过./start.sh
启动服务器了
- 切出面板
Ctrl+A+D
(服务器不会关闭,在后台运行) - 切回面板
screen -r
- 关闭服务器
Ctrl+C
- 也可以通过
ps -ef |grep srcds\_run
搜索服务器进程并使用kill
命令杀死/bin/sh ./srcds\_run -game left4dead2 +exec server.cfg
进程来关闭服务器
7.连接服务器
- 服务器绑定的
Steam组
的成员
可以直接在游戏内Steam组服务器搜索到该服务器 - 在游戏控制台输入
connect IP:27015
连接服务器 - 在Steam中点击
查看-服务器-收藏夹-添加服务器
,添加IP:27015
IP
是你的服务器IP
第三方插件
1.安装SourceMod 和 MetaMod
SourceMod
和MetaMod
是第三方插件运行的插件平台,后期添加的绝大部分插件都是基于插件平台安装。
- SourceMod
SourceMod
官网:http://www.sourcemod.net/SourceMod
下载:http://www.sourcemod.net/downloads.php?branch=stable 我们是基于Linux系统搭建服务器所以下载时选择Linux版。 将下载好的sourcemod-1.10.0-git6502-linux.tar.gz
上传到服务器的/home/ubuntu/l4d2/left4dead2
目录(参考自己的安装目录)并解压,使压缩包内的addons
和cfg
文件夹与服务器的合并。
tar -zxvf sourcemod-1.10.0-git6502-linux.tar.gz
- Metamod和VDF
Metamod官网
:https://www.sourcemm.net/ 进入Metamod官网后点击Stable Builds
选择Linux
版下载 下载完成后将mmsource-1.11.0-git1144-linux.tar.gz
上传到服务器的/home/ubuntu/l4d2/left4dead2
目录(参考自己的安装目录)并解压,使压缩包内的addons
文件夹与服务器的合并。
tar -zxvf mmsource-1.11.0-git1144-linux.tar.gz
成对应游戏的VDF文件:https://www.sourcemm.net/vdf
Game
选择Left 4 Dead 2
然后点击Generate method.vdf
将下载好的method.vdf
上传到服务器的/home/ubuntu/l4d2/left4dead2/addons
目录覆盖原来的method.vdf
文件
- 检查插件平台是否安装成功 启动服务器后在
Consoles
输入meta list
出现以下信息则是安装成功:
[01] SourceMod (1.10.0.6502) by AlliedModders LLC
[02] SDK Tools (1.10.0.6502) by AlliedModders LLC
- 服务器配置 安装插件平台后可以在
server.cfg
中进行更详细的配置 以下给出我的配置参考:
sm_cvar survivor_allow_crawling "1" //倒地后依然可以移动
sm_cvar survivor_crawl_speed "25" //倒地后移动速度
sm_cvar director_no_survivor_bots "0" //没有电脑BOT帮助
//sm_cvar z_difficulty "Easy" //游戏难度设置(分别对应:简单、正常、困难、专家)
//sm_cvar z_difficulty "Normal"
sm_cvar z_difficulty "Hard"
//sm_cvar z_difficulty "Impossible"
sm_cvar sv_gametypes "realism" //地图模式coop(合作)、versus(对抗)、realism(写实)、survival(生存)、scavenge(清道夫)
sm_cvar mp_gamemode "realism" //游戏模式 coop(合作)、versus(对抗)、realism(写实)、survival(生存)、scavenge(清道夫)
sm_cvar
是SourceMod
提供的拓展指令,如果没有安装SourceMod
则这部分配置不生效
2.安装L4DToolZ(此插件已失效)
安装L4DToolZL4DToolZ
可以让你修改服务器的人数上限,如果不需要也可以不安装。L4DToolZ
下载:https://forums.alliedmods.net/showthread.php?t=93600 选择1.0.0.9h for L4D2
进行下载 将l4dtoolz(L4D2)-1.0.0.9h.zip
上传到服务器的/home/ubuntu/l4d2/left4dead2/addons
目录并解压:
unzip l4dtoolz(L4D2)-1.0.0.9h.zip
验证L4DToolZ是否安装成功 重启服务器后在Console
输入meta list
出现以下信息则是安装成功:
[01] L4DToolZ (1.0.0.9h-2-g7465d71b-dirty) by Ivailosp
[02] SourceMod (1.10.0.6502) by AlliedModders LLC
[03] SDK Tools (1.10.0.6502) by AlliedModders LLC
更改服务器最大人数 配置server.cfg
:
cd /home/ubuntu/l4d2/left4dead2/cfg/ //路径参考自己的安装路径
vi server.cfg
加入这行配置sm_cvar sv_maxplayers 8;sm_cvar sv_visiblemaxplayers 8
后重启服务器可以看到服务器最大人数变为8人。
3.设置服务器权限
插件平台自带了管理员插件,需要管理员权限才能使用。
- 添加管理员
Steam ID
查询:Steam IO 输入自己的Steam主页URL
查询Steam ID
,然后编辑服务器的admins_simple.ini
文件:
cd l4d2/left4dead2/addons/sourcemod/configs/
vi admins_simple.ini
在最后一行插入自己的Steam ID
,格式为:
"STEAM_0:0:00000000" "99:z"
- 使用管理员插件 在游戏内连入服务器后打开聊天窗口输入
!admin
,弹出管理员菜单代表已经把自己添加为管理员。
4.安装第三方插件
可以用的第三方插件非常多,一般到http://www.sourcemod.net/plugins.php根据自己的需要搜索下载。
不同的插件安装方法和配置方法可能会不一样,需要自己查看插件的相关说明。以下给出我服务器使用的插件做参考:
名称 | 功能 |
---|---|
l4d2_WeaponUnlock | 解锁CS起源武器并调整伤害 |
l4d_info_editor | 修改武器参数 |
选-自动换图 | 通关后自动换图以免自动回大厅 |
接管机器人 | 玩家死亡后可以接管闲置机器人 |
[插件]投票换第三方地图[3.0] -笨蛋海绵 | 投票换图,配合第三方地图使用 |
- 上传插件 将
l4d2_WeaponUnlock.smx
上传到/home/ubuntu/l4d2/left4dead2/addons/sourcemod/plugins
目录 - 修改参数 服务器重启一次后会在
/home/ubuntu/l4d2/left4dead2/cfg/sourcemod
生成一个叫l4d2_WeaponUnlock.cfg
的文件。 编辑l4d2_WeaponUnlock.cfg
即可修改插件的参数:
cd /home/ubuntu/l4d2/left4dead2/cfg/sourcemod
vi l4d2_WeaponUnlock.cfg
// This file was auto-generated by SourceMod (v1.10.0.6502)
// ConVars for plugin "l4d2_WeaponUnlock.smx"
// AWP开关
// -
// Default: "1"
l4d2_wu_awp "1"
// AWP额外伤害,默认135
// -
// Default: "135"
l4d2_wu_awpboost "235"
// 是否启用插件 1开,0关 汉化by 望夜
// -
// Default: "1"
l4d2_wu_enable "1"
// MP5开关
// -
// Default: "1"
l4d2_wu_mp5 "1"
// mp5额外伤害,默认5
// -
// Default: "5"
l4d2_wu_mp5boost "5"
// scout鸟狙开关
// -
// Default: "1"
l4d2_wu_scout "1"
// scout鸟狙额外伤害,默认110
// -
// Default: "110"
l4d2_wu_scoutboost "160"
// SG552开关
// -
// Default: "1"
l4d2_wu_sg552 "1"
// SG552额外伤害,默认5
// -
// Default: "5"
l4d2_wu_sg552boost "5"
- 重启服务器后修改的参数生效。
第三方地图
待更新
跪求大佬更新