赞
踩
云服务器(实操使用的是腾讯云服务器),系统盘推荐至少40G(服务端文件约35G),按照教程使用了Debian 11.1 64bit系统。
自己没有尝试过,按照网上的说法,服务器2核4G,6M带宽能够流畅打128tick的满十。
使用FileZilla实现本地与服务器的文件传输(本文的操作中尚未用到,)。
一个满足以下条件的Steam账号用于申请社区服token:
Steam 帐户目前不能处于被社区封禁或锁定状态。
Steam 帐户不能处于受限状态。
Steam 帐户必须以及绑定了手机令牌。
Steam 帐户必须拥有所创建游戏服务器对应的游戏。
Steam 帐户可最多能创建1000个游戏服务器。
Steam 账号最少实际消费达5美元(折合人民币35元左右,礼品卡激活的商品价值不计算到其中)
参照教程使用如下代码安装依赖
sudo apt install -y systemd-sysv wget screen libstdc++6 lib32stdc++6 lib32z1 tar libcurl4-openssl-dev lib32gcc1
遇到问题:Package ‘lib32gcc1’ has no installation candidate
解决方案:参考SteamCMD文档,输入如下代码
sudo apt install software-properties-common
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install lib32gcc-s1 steamcmd
等待cmd下载完成
sudo useradd -m steam
sudo passwd steam
随后根据提示设置密码(密码不会显示字符,但实际上会记录输入的字符)
mkdir ~/Steam && cd ~/Steam
此时当前路径(可输入pwd查看)已经变为/home/steam/Steam
curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf -
下载好SteamCMD会有如下图所示文字:
同时使用ls -a
能够看到当前目录(/home/steam/Steam)下有文件steamcmd.sh代表已经成功。
通过steamcmd创建游戏目录及安装对应游戏(下载到/home/steam/Steam/my_csgo_server内)
./steamcmd.sh +force_install_dir ~/Steam/my_csgo_server +login anonymous +app_update 740 +quit
其中~/Steam/my_csgo_server
代表服务器文件下载到/home/steam/Steam/my_csgo_server内
教程中提到,如果出现以下错误:
重新输入一遍代码./steamcmd.sh +force_install_dir ~/Steam/my_csgo_server +login anonymous +app_update 740 +quit
即可开始下载,下载时间根据网络情况确定,自己使用的服务器完成下载花费约半小时。
进入Steam 游戏服务器帐户管理网页登录自己的steam后填写信息
得到登录令牌,请记录登录令牌,后续服务器初始化配置时需要用到。
注意,以下执行的当前目录为/home/steam/Steam
,若不在请先进入到该目录cd /home/steam/Steam
或使用完整路径
配置文件名为server.cfg
,其所在目录应是:/home/steam/Steam/my_csgo_server/csgo/cfg
即配置文件的完整路径为/home/steam/Steam/my_csgo_server/csgo/cfg/server.cfg
既可以在本地使用记事本编写好配置文件后使用FileZilla等软件上传到服务器(下一篇文章会有FileZilla相关问题),也可以直接使用vim直接在服务器上编写配置文件。实操过程中使用的是第二种方法。
使用vim创建配置文件
vim my_csgo_server/csgo/cfg/server.cfg
使用vim进入文件时是命令模式,此时按"i"进入编辑模式。编辑模式下的编辑方法与txt、word的编辑基本相同。
编辑完成后按esc回到命令模式,再按":"进入末行模式。末行模式下输入wq后回车即可保存并退出(输入q!即为不保存直接退出)。
配置文件内容使用官方模板,但需要自己编辑一部分
// ************************************************************************** // // // // Counter-Strike: Global Offensive - server.cfg // // Version 120719 // // // // ************************************************************************** // // .................................. Basic ................................. // // Hostname - Name of the server. hostname "" // 服务器名称 // RCON - remote console password. rcon_password "" // OP 密码 // Server password - for private servers. sv_password ""//进入服务器所需密码(如果不需要可以直接删除此行) sv_setsteamaccount "" // 上文获取的令牌 // Email - Server admin email. // Example: sv_contact "email@example.com" sv_contact "" // LAN mode - Server is a LAN server; can't connect from the internet. VAC (Valve Anti-Cheat) is disabled in this mode. // Default: sv_lan 0 sv_lan 0 // Cheats mode - Server is disabled to use cheats by default;Commands like noclip,god are disabled to be exploited by the players. VAC (Valve Anti-Cheat) is disabled in this mode when value is set to '1'. // Default: sv_cheats 0 // Cheats ON: sv_cheats 1 sv_cheats 0 // Tags - Used to provide extra information to clients when they're browsing for servers. Separate tags with a comma. // Example: sv_tags "128-tick,deathmatch,dm,ffa,pistol,dust2" sv_tags "" // Region - The region of the world to report this server in. // Default: -1 // 0 - US East, 1 - US West, 2 - South America, 3 - Europe, 4 - Asia, 5 - Australia, 6 - Middle East, 7 - Africa sv_region -1 // ............................. Server Logging ............................. // // Enable log - Enables logging to file, console, and udp < on | off >. // Recommended: log on log on // Log bans - Log server bans in the server logs. // Default: sv_logbans 1 // Recommended: sv_logbans 1 sv_logbans 1 // Log echo - Display log information to the server console. // Default: sv_logecho 1 // Recommended: sv_logecho 1 sv_logecho 1 // Log file - Log server information in the log file. // Default: sv_logfile 1 // Recommended: sv_logfile 1 sv_logfile 1 // One file log - Log server information to only one file. // Default: sv_log_onefile 0 // Recommended: sv_log_onefile 0 sv_log_onefile 0 // Server Hibernation sv_hibernate_when_empty 1 sv_hibernate_ms 5 // ............................. Server Query ............................. // // More info at: https://www.gametracker.com/games/csgo/forum.php?thread=91691 host_name_store 1 host_info_show 1 host_players_show 2 // ................................ Ban List ................................ // // User ban - Server banlist based on user steam ID. // Recommended: exec banned_user.cfg exec banned_user.cfg // IP ban - Server banlist based on user IP. // Recommended: exec banned_ip.cfg exec banned_ip.cfg // Write ID - Writes a list of permanently-banned user IDs to banned_user.cfg. writeid // Write IP - Save the ban list to banned_ip.cfg. writeip
其中部分信息需要自己在引号中填写,需要自己填写的部分为:
// Hostname - Name of the server.
hostname "" // 服务器名称,用于联机大厅内显示
// RCON - remote console password.
rcon_password "" // OP 密码,OP能够在客户端令服务器端执行控制台指令
// Server password - for private servers.
sv_password ""//进入服务器所需密码(如果不需要可以直接删除此行)
sv_setsteamaccount "" // 上文获取的登录令牌
之后配置防火墙后便可以启动服务器了。
以腾讯云为例,在如图处进行防火墙规则编辑。
CSGO默认使用UDP协议27015端口,但为以防万一,在防火墙出同时添加TCP和UDP协议的27015端口。
同时为了后续FileZilla等用于与服务器进行传输软件的正常运行,还需要允许FTP协议。
三个规则添加完后如下:
为了24小时运行服务器,我们需要借助screen。
安装screen:
sudo apt install screen
安装完成后进入my_csgo_server目录并建立一个用于启动CSGO服务器的作业,即:
cd /home/steam/Steam/my_csgo_server
screen -R CSGO
接着借用screen启动CSGO服务器,在新的界面内输入./srcds_run
即可启动最原始的CSGO社区服务器。
但通常我们在服务器启动时会添加一些启动项,常用的启动项如下:
游戏模式 | game_type | game_mode |
---|---|---|
休闲模式 | 0 | 0 |
竞技模式 | 0 | 1 |
搭档模式 | 0 | 2 |
军备竞赛 | 1 | 0 |
爆破模式 | 1 | 1 |
死亡竞赛 | 1 | 2 |
自定义模式 | 3 | 0 |
守护模式 | 4 | 0 |
合作精英 | 4 | 1 |
头号特训 | 6 | 0 |
练习模式 | 2 | 0 |
例如:./srcds_run -game csgo -tickrate 128 -maxplayers_override 10 +ip 0.0.0.0 -usercon
出现下图代表服务器启动成功,
此时我们便可以用客户端进入服务器。
如果需要关闭服务器则在screen窗口内输入quit
。
在screen窗口内输入exit
可以关闭作业并退出screen窗口;ctrl+a+d可以仅离开当前窗口而不关闭作业(此时CSGO服务器仍在运行)。在my_csgo_server目录下输入screen -ls
可以查看当前已有的作业及其id,输入screen -r [id]可以重新进入作业的窗口。更多关于screen的操作可以参考https://www.runoob.com/linux/linux-comm-screen.html。
该章节内的控制台皆为游戏客户端内的控制台。
游戏客户端的控制台内依次输入
password xxx // xxx为服务器密码(对应前文server.cfg中的sv_password)
connect xxx // xxx为服务器的IP地址
便可以进入游戏。
以更换地图为例,在本地服务器更换地图时我们可以在控制台内输入map de_inferno切换到炼狱小镇,但在社区服时输入该命令则无反应。此时我们需要借助rcon。
为了成功使用rcon指令,需要服务器在启动服务端时添加启动项-usercon
和 +ip 0.0.0.0
,否则可能在使用rcon指令时可能会报"无法连接到服务器,还剩x次重新尝试的机会"的错误
首先我们需要在控制台输入rcon_password xxx
其中xxx
为OP密码,对应前文server.cfg中的rcon_password
。注意,每次启动客户端时需要重新输入一次rcon_password。随后再在控制台输入rcon map de_inferno
即可完成地图切换。
完整如下:
rcon_password xxx
rcon map de_inferno
每次客户端启动只需要输入一次rcon_password
。
同理,在本地服务器中在1s后重新开始游戏的指令为mp_restartgame 1
,而在社区服中则对应的指令为rcon mp_restartgame 1
。
到此,已经成功地搭建了一个类似于官匹的具有最基础功能的社区服务器。但为了使服务器能够具有更多的功能,我们还需要SourceMod和一些插件,这些内容将会在下一篇文章中(预计三天内写完捏)进行介绍。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。