当前位置:   article > 正文

CSGO社区服搭建记录_package 'lib32gcc1' has no installation candidate

package 'lib32gcc1' has no installation candidate


按照B站up的Mintimate的 B站视频博客进行搭建,同时对其中一些有问题的步骤进行了修改和补充。没有认真学习过Linux,如有错误欢迎指出。
本文的操作可以搭建成最简单的一个CSGO社区服(甚至和同学在游玩过程中掉了箱子),需要其他功能需要用到SourceMod及其插件,会在下一篇文章介绍。

准备工具

云服务器(实操使用的是腾讯云服务器),系统盘推荐至少40G(服务端文件约35G),按照教程使用了Debian 11.1 64bit系统。
自己没有尝试过,按照网上的说法,服务器2核4G,6M带宽能够流畅打128tick的满十。
使用FileZilla实现本地与服务器的文件传输(本文的操作中尚未用到,)。

一个满足以下条件的Steam账号用于申请社区服token:
Steam 帐户目前不能处于被社区封禁或锁定状态。
Steam 帐户不能处于受限状态。
Steam 帐户必须以及绑定了手机令牌。
Steam 帐户必须拥有所创建游戏服务器对应的游戏。
Steam 帐户可最多能创建1000个游戏服务器。
Steam 账号最少实际消费达5美元(折合人民币35元左右,礼品卡激活的商品价值不计算到其中)

SteamCMD

拉取SteamCMD

参照教程使用如下代码安装依赖

sudo apt install -y systemd-sysv wget screen libstdc++6 lib32stdc++6 lib32z1 tar libcurl4-openssl-dev lib32gcc1
  • 1

遇到问题: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
  • 1
  • 2
  • 3
  • 4

等待cmd下载完成

创建一个名为steam的用户并为其设置密码
sudo useradd -m steam
sudo passwd steam 
  • 1
  • 2

随后根据提示设置密码(密码不会显示字符,但实际上会记录输入的字符)

切换到steam用户并创建Steam文件夹
mkdir ~/Steam && cd ~/Steam
  • 1

此时当前路径(可输入pwd查看)已经变为/home/steam/Steam

下载SteamCMD原始文件并解压
curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf -
  • 1

下载好SteamCMD会有如下图所示文字:
在这里插入图片描述
同时使用ls -a能够看到当前目录(/home/steam/Steam)下有文件steamcmd.sh代表已经成功。

拉取CSGO服务端

通过steamcmd创建游戏目录及安装对应游戏(下载到/home/steam/Steam/my_csgo_server内)

./steamcmd.sh +force_install_dir ~/Steam/my_csgo_server +login anonymous +app_update 740 +quit
  • 1

其中~/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即可开始下载,下载时间根据网络情况确定,自己使用的服务器完成下载花费约半小时。
在这里插入图片描述

申请社区服token

进入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
  • 1

使用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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93

其中部分信息需要自己在引号中填写,需要自己填写的部分为:

// Hostname - Name of the server.
hostname "" // 服务器名称,用于联机大厅内显示

// RCON - remote console password.
rcon_password "" // OP 密码,OP能够在客户端令服务器端执行控制台指令

// Server password - for private servers.
sv_password ""//进入服务器所需密码(如果不需要可以直接删除此行)

sv_setsteamaccount "" // 上文获取的登录令牌
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

之后配置防火墙后便可以启动服务器了。

配置防火墙

以腾讯云为例,在如图处进行防火墙规则编辑。
在这里插入图片描述
CSGO默认使用UDP协议27015端口,但为以防万一,在防火墙出同时添加TCP和UDP协议的27015端口。
在这里插入图片描述
同时为了后续FileZilla等用于与服务器进行传输软件的正常运行,还需要允许FTP协议。
在这里插入图片描述
三个规则添加完后如下:在这里插入图片描述

启动服务器

为了24小时运行服务器,我们需要借助screen。
安装screen:

sudo apt install screen
  • 1

安装完成后进入my_csgo_server目录并建立一个用于启动CSGO服务器的作业,即:

cd /home/steam/Steam/my_csgo_server
screen -R CSGO
  • 1
  • 2

接着借用screen启动CSGO服务器,在新的界面内输入./srcds_run即可启动最原始的CSGO社区服务器。
但通常我们在服务器启动时会添加一些启动项,常用的启动项如下:

  • -game csgo
  • +map 启动服务器时的地图(如+map de_dust2)
  • +game_type & +game mode 确定启动服务器的游戏模式(如+game_type 0 +game_mode 0位休闲模式启动)
    游戏模式如下:
游戏模式game_typegame_mode
休闲模式00
竞技模式01
搭档模式02
军备竞赛10
爆破模式11
死亡竞赛12
自定义模式30
守护模式40
合作精英41
头号特训60
练习模式20
  • -maxplayer_override 服务器最大玩家数量
  • -usercon +ip 0.0.0.0 (注意usercon后面有空格)为了使后续能在客户端执行rcon指令(详见后文游戏内操作章节)
  • tickrate 128 以128tick启动服务器

例如:./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地址
  • 1
  • 2

便可以进入游戏。

客户端内执行服务器指令(rcon)

以更换地图为例,在本地服务器更换地图时我们可以在控制台内输入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
  • 1
  • 2

每次客户端启动只需要输入一次rcon_password
同理,在本地服务器中在1s后重新开始游戏的指令为mp_restartgame 1,而在社区服中则对应的指令为rcon mp_restartgame 1

到此,已经成功地搭建了一个类似于官匹的具有最基础功能的社区服务器。但为了使服务器能够具有更多的功能,我们还需要SourceMod和一些插件,这些内容将会在下一篇文章中(预计三天内写完捏)进行介绍。

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/164904
推荐阅读
相关标签
  

闽ICP备14008679号