我们上一期说到了服务器选购和基本环境配置,如果需要回顾可以点我

首先我们需要给这台服务器创建一个新用户:steam。当然,你也可以叫其他名字这里只是以steam当作范例

useradd -m steam 

cd /home/steam

这两个命令会让我们建立以steam作为名称的用户,并进入到/home/steam这个用户所属的目录下。

接下来我们要下载Steam cmd版,并安装相关运行库。(注意这里是一整条命令请直接全部复制粘贴回车

wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz && tar xf steamcmd_linux.tar.gz && yum clean all && yum update -y && yum upgrade -y && yum install glibc.i686 libstdc++.i686 -y && yum install zlib.i686 -y && yum install screen -y && chown -R steam /home/steam/

接下来我们就要开始告别root这个最高权限用户了,一切和CSGO服务器相关的文件都要以steam用户身份操作。

首先先切换到steam用户

su steam

我们来设置下steam这个用户的密码

passwd

它会显示


Changing password for user steam.

Current password:


就是设置密码,要输两遍,不过密码他是不会明文显示的所以设置的时候小心一点。

好了现在在Xshell和WinSCP分别建立一个以steam当作连接用户的会话,当然会话设置里的密码也要看情况做修改,修改成和上面你刚刚设置的一样的密码。


Xshell的话复制粘贴然后右键新的副本属性编辑就好
WinSCP右键复制到新站点再做编辑进行保存
2.CSGO服务器下载安装

现在注意,检查你的所有会话是否以steam用户登录到你的服务器。

如果你是按照教程下来的,可能Xshell已经切换到steam用户了而且已经在/home/steam目录下,WinSCP的话如果不确定就从刚刚建立的以steam用户做连接的会话连接。

./steamcmd.sh

运行steamcmd


[  0%] Checking for available updates...

[----] Verifying installation...

Steam Console Client (c) Valve Corporation

-- type 'quit' to exit --

Loading Steam API...Warning: failed to init SDL thread priority manager: SDL not found

OK.

Steam>

初次使用可能会进行更新,等到屏幕上出现Steam>并等待你输入指令时输入

login anonymous

我们只是下载游戏服务器所以匿名方式登录


Steam>login anonymous

Connecting anonymously to Steam Public...Logged in OK

Waiting for user info...OK

Steam>

登录成功,接下来设置默认安装目录

force_install_dir ./csgo/

复制粘贴回车,这条命令会让csgo服务器安装在当前目录(也就是.的意思)的csgo文件夹下,实际目录就是/home/steam/csgo,当然你也可以做修改命令自己改个想要的文件夹名称。

app_update 740 validate

下载安装服务器,等就行了,建议找几集名侦探柯南死个3 4个人差不多就下好了,期间要保持你和服务器间网络状况稳定,别断了都不知道。


Steam>app_update 740 validate

Update state (0x3) reconfiguring, progress: 0.00 (0 / 0)

Update state (0x61) downloading, progress: 0.00 (0 / 168960)

......

......

.......

Success! App '740' fully installed.

Steam>


安装好啦!输入quit并回车,退出steamcmd,现在翻出你的WinSCP,刷新下。


进入csgo目录

啊这!熟悉的目录结构,除了没有csgo.exe基本就和CSGO一样了,QS其实基本都一样,如果你经常捣鼓CFG啥的,目录对你来说绝对不会陌生。




Sourcemod,插件语言为Sourcepawn
Metamod

还记得社区那么多花里胡哨的模式和功能吗,则全部归功于Sourcemod和Metamod的功劳。

  • Sourcemod 下载 https://www.sourcemod.net/downloads.php?branch=stable

  • Metamod 下载 https://www.sourcemm.net/downloads.php?branch=stable

和上面的图片一样,点大大的企鹅图标下Linux版本就好。


解压,把mm的addons以及sm的addons和cfg都拖到WinSCP的/home/steam/csgo/csgo下。

上传完之后做一下目录检查,应该长得是这个样子。


接下来,别着急我们需要打开一个Steam的网站申请一个GSLT用于开服

打开https://steamcommunity.com/dev/managegameservers,如果不能访问Steam社区请使用steamcommunity 302


点击创建

请记住你的令牌,且妥善保管,一台服务器只能使用一个唯一的令牌,再开其他服务器需要再次生成,注意这个令牌代表着你的开服账号,如果你服务器违反了CSGO社区服务器守则(https://blog.counter-strike.net/index.php/server_guidelines/ 英文),你的开服账号将遭到连带封禁,我见过的是30天封禁而且是红信,虽然不是我,但是一定要重视,如果你想要安装违规插件,请使用小号生成令牌。


虽然V社最近已经很少Ban这种违规了,但是还是小心点。

接着给服务器添加管理员

打开/home/steam/csgo/csgo/addons/sourcemod/configs/admins_simple.ini/

在这里加上一行

"STEAM_1:0:111111" "z"

STEAM_1:0:111111是你的SteamID,如果你想查询自己的ID,可以随便本地进图然后游戏控制台输入status,来获取你的ID。

z所代表的是这个账号管理员权限等级,z就是最高管理权限,具体可参考文章末尾的参考资料。

接下来配置游戏启动配置

进入/home/steam/csgo/csgo/cfg下打开或新建文件autoexec.cfg

输入以下内容(//后内容为本行注释,非指令内容,可以去掉)

hostname "My CSGO Server"  //设置服务器名称,暂不支持中文(需要插件)

rcon_password "SBDXCNMB" //rcon密码,用于远程连接此CSGO服务器控制台的密码

sv_password "SBSB" //服务器密码(可留空即为公开)

sv_tags "retakes,pratice,PCG" //服务器标签(国际服社区服浏览器可以看到),可自定,用英文逗号隔开

host_info_show 2 //服务器信息展示 0即不展示 1一般信息 2尽可能多 可自定

host_players_show 2 //服务器人数展示 0不显示 1只显示人数不显示玩家 2即显示人数和在线玩家

sv_setsteamaccount XXXXXXXXXXXXXXXXXXXX //填入上面申请的令牌,每个服只能用一个

exec banned_user.cfg //读取封禁名单

exec banned_ip.cfg //读取封禁IP

writeid

writeip

sv_region 4 //服务器区域:亚洲


现在我们就可以准备启动服务器了

Xshell输入



screen -S csgo

这里的操作是使用screen命令使我们新建一个名叫csgo的窗口,立刻理解成Win10的Win+Tab虚拟桌面,这样一会我们退出Xshell时,你的CSGO服务器也会在运行。

cd /home/steam/csgo/

进到CSGO服务器可执行文件夹目录下

./srcds_run -game csgo -tickrate 128 -console -usercon +game_type 0 +game_mode 1 +mapgroup mg_active +map de_mirage -maxplayers_override 9 +net_public_adr x.x.x.x

我们来一部分一部分解释,首先./srcds_run代表开始运行,后面的都属于启动项,这个srcds就是Source Dedicated Server(起源引擎独立服务器)的意思

-game csgo 意思就是告诉SRCDS这个游戏是CSGO

-tickrate 128 128tick这个应该不用多说,如果你配置不够,你也可以改64

-console 启用控制台输出

-usercon 允许拥有rcon密码的人进行远程管理

+game_type 0 +game_mode 1 竞技模式,其他常用官方模式有:

  • 休闲 +game_type 0 +game_mode 0

  • 军备竞赛 +game_type 1 +game_mode 0

  • 爆破 +game_type 1 +game_mode 1

  • 死亡竞赛 +game_type 1 +game_mode 2

请参阅 /csgo/gamemodes.txt 文件以了解全部游戏模式



+mapgroup mg_active +map de_mirage 地图组:服役生涯地图组 启动后首张地图mirage

所有地图组

  • mg_bomb拆除地图组

  • mg_hostage人质解救地图组

  • mg_lowgravity低重力地图组

  • mg_demolition爆破地图组

  • mg_armsrace军备竞赛地图组

  • mg_casualdelta炸弹拆除地图组 II 号

  • mg_casualsigma炸弹拆除地图组 I 号

  • mg_reserves后备生涯地图组

  • mg_deathmatch经典地图组

  • mg_skirmish_stabstabzap戳戳乐

  • mg_skirmish_flyingscoutsman跳狙飞人

  • mg_skirmish_triggerdiscipline弹无虚发

  • mg_skirmish_headshots砰!爆头!

  • mg_skirmish_huntergatherers采猎者

  • mg_skirmish_heavyassaultsuit重型突击套装

  • mg_skirmish_armsrace军备竞赛(战争游戏)

  • mg_skirmish_demolition爆破模式(战争游戏)

请参阅 /csgo/gamemodes.txt 文件以了解或编辑地图组中相应地图


-maxplayers_override 9 这是限制服务器最大人数指令,不过不能阻止玩家通过控制台加入(修复控制台加入的需要插件)

+net_public_adr x.x.x.x 换成你服务器IP就行没啥好说的

好了,粘贴回车启动

然后会滚一堆屏,等到屏幕上出现

Connection to Steam servers successful.

  Public IP is 233.233.233.2333. 

Assigned persistent gameserver Steam ID [G:1:666666666]. 

Gameserver logged on to Steam, assigned identity steamid:666666666666666666666666 

Set SteamNetworkingSockets P2P_STUN_ServerList to 'x.x.x.x:3478' as per SteamNetworkingSocketsSerialized 

VAC secure mode is activated. 

GC Connection established for server version 1175, instance idx 1


只要看到Steam ID [G:1:xxxxxx],你的服务器基本就大功告成了!

输入sm回车看下模组装没装好。

sm 

SourceMod Menu: 

Usage: sm <command> [arguments]    

cmds             - List console commands    

config           - Set core configuration options    

credits          - Display credits listing    

cvars            - View convars created by a plugin    

exts             - Manage extensions    

plugins          - Manage Plugins    

prof             - Profiling    

version          - Display version information


如果出现这个,那么恭喜你,你已经创建了一台属于自己的CSGO服务器。

接下来你只需要在CSGO控制台输入

connect x.x.x.x(你的IP)并回车就可以连接到服务器了,如果你的服务器设置了密码,则需要再这之前输入password xxxxxx(你的密码)即可,国际服可以用社区服浏览器搜索连接。

如果需要向服务器发送指令,你可以直接在Xshell里输入并回车,也可以在游戏端使用这两种指令


sm_rcon xxxxxxx

这时利用Sourcemod管理员的权限发送的,xxxx即代表你想要发送的指令,当你在服务器里时,直接在控制台输入即可

rcon_password xxxxxx 

rcon xxxxxx


而这个则利用了CSGO官方自带的管理权限,先rcon_password xxxxxx,这里的xxxx是你的rcon密码,在前面autoexec.cfg部分我们提过,然后和类似sm_rcon,只要在你的命令前加上rcon和空格即可,注意rcon_password只需要输入一次,除非重启游戏。

管理员指令等可以参考文章尾部的参考资料

现在你可以直接关掉Xshell并在自己的CSGO游戏服务器里玩耍了,如果你需要启动服务器,可以连回去并输入


screen -r

这样screen会回到上次的窗口,如果只要重启只要输入quit并回车就可以自动重启服务器了,退出可以使用快捷键Ctrl+C或Z,服务器里有人的情况下可以先quit再Ctrl+C,在命令行里你可以用上下方向键在你之前输入过的指令里切换,比如你关闭后,直接按一下↑,你之前的启动命令就出来了。


下一期我们会讲一讲如何使用插件,并以配置回防服务器为例进行实战。

参考资料:

  • Valve开发社区wiki(英文,仅部分有翻译)

    • Counter-Strike: Global Offensive Dedicated Servers https://developer.valvesoftware.com/wiki/Counter-Strike:_Global_Offensive_Dedicated_Servers

    • Source Dedicated Server https://developer.valvesoftware.com/wiki/Source_Dedicated_Server

  • Sourcemod官方文档

    • Sourcemod配置 https://wiki.alliedmods.net/SourceMod_Configuration/zh

    • 添加管理员 https://wiki.alliedmods.net/Adding_Admins_(SourceMod)/zh

    • 添加管理组 https://wiki.alliedmods.net/Adding_Groups_(SourceMod)/zh

    • 管理员指令 https://wiki.alliedmods.net/Admin_Commands_(SourceMod)/zh

    • 重写命令权限 https://wiki.alliedmods.net/Overriding_Command_Access_(SourceMod)/zh


    • Sourcemod安装 https://wiki.alliedmods.net/Installing_SourceMod/zh

    • 管理Sourcemod安装 https://wiki.alliedmods.net/Managing_your_Sourcemod_installation/zh


一个线上玩家社团。

如有任何疑问欢迎加入Pussycat Gaming进行讨论。

Guilded.gg/Pussycat