我们上一期说到了服务器选购和基本环境配置,如果需要回顾可以点我
首先我们需要给这台服务器创建一个新用户: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当作连接用户的会话,当然会话设置里的密码也要看情况做修改,修改成和上面你刚刚设置的一样的密码。
现在注意,检查你的所有会话是否以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和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