基于Linux(Ubuntu)系统搭建求生之路2(L4D2)服务器

搭建求生之路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

新系统可能需要自行安装wgetvi编辑器

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.txtmotd.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&nbsp;改为自己的图片

我用的图床为路过图床

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

SourceModMetaMod是第三方插件运行的插件平台,后期添加的绝大部分插件都是基于插件平台安装。

  • 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目录(参考自己的安装目录)并解压,使压缩包内的addonscfg文件夹与服务器的合并。
  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_cvarSourceMod提供的拓展指令,如果没有安装SourceMod则这部分配置不生效

2.安装L4DToolZ(此插件已失效)

  • 安装L4DToolZ L4DToolZ可以让你修改服务器的人数上限,如果不需要也可以不安装。 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为例:

  • 上传插件 将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"
  • 重启服务器后修改的参数生效。

第三方地图

待更新

评论

  1. 头像
    dalao
    3年前
    2022-1-11 14:59:45

    跪求大佬更新

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
下一篇