在Arch Linux上设置反恐精英:全球攻势(CSGO)服务器

本教程说明了如何在Arch Linux上设置“反恐精英:全球攻势”服务器。

本教程假定您使用标准用户帐户登录并具有sudo特权。我们将使用普通用户帐户,因为不应使用root帐户来构建具有AUR的软件包。

在你开始之前

如果使用的是Arch Linux的64位版本,则multilib启用存储库非常重要。如果未启用,SteamCMD无法下载或运行游戏服务器文件。要启用multilib,只需在中取消注释以下行/etc/pacman.conf

[multilib]
Include = /etc/pacman.d/mirrorlist

这不适用于32位Arch Linux系统。

安装SteamCMD

SteamCMD有一个AUR软件包。这可能是在Arch上安装SteamCMD的最简单方法。但是,有一些注意事项:

  • 所有相对路径都相对于/usr/share/steamcmd
  • 要升级SteamCMD本身,您必须具有root帐户。

如果您使用的是64位服务器,则必须安装该软件包lib32-gcc-libs

sudo pacman -Sy lib32-gcc-libs

现在我们必须构建软件包。使用curl,下载软件包的压缩包。

curl -O https://aur.archlinux.org/packages/st/steamcmd/steamcmd.tar.gz

下载完成后,解压缩并更改为创建的目录。

tar -xvzf steamcmd.tar.gz
cd steamcmd

现在,使用makepkg构建软件包。

makepkg -ci

如果您没有将-i标志传递给makepkg命令,请使用以下命令进行安装。

sudo pacman -U *.pkg.tar.xz

现在,您已经安装了SteamCMD,并准备下载“反恐精英:全球攻势”服务器。

安装反恐精英:全球攻势服务器

本指南使用一个单独的用户来运行服务器,因此我们将在中创建一个新的csgo用户并对其自身的主文件夹进行分组/var/lib

sudo groupadd csgo
sudo mkdir /var/lib/csgo
sudo useradd -d /var/lib/csgo -g csgo -s /bin/bash csgo
sudo chown csgo.csgo -R /var/lib/csgo

现在安装服务器。

sudo -u csgo steamcmd +login anonymous +force_install_dir ~csgo/server +app_update 740 validate +quit

下载完成后,就已经安装了服务器。

配置中

尽管可以运行服务器,但应进行一些配置,以使服务器不太通用。我们放入设置的主要文件是该server.cfg文件。下面是一个非常基本的server.cfg文件。

要打开/创建文件,请使用您喜欢的编辑器。我在这个例子中使用vim。

sudo -u csgo vim ~csgo/server/csgo/cfg/server.cfg

添加以下内容。可以在Valve Developer Wiki上找到更多设置。确保更改某些设置以适合您的需求。

hostname "Server Name"
rcon_password "password"
sv_password ""
sv_contact "email@example.com"
sv_tags ""
sv_region "255"
sv_lan "0"

exec banned_user.cfg
exec banned_ip.cfg
writeid
writeip

运行服务器

要在无人看管的情况下运行服务器,您将需要一个GNU Screentmux之类的多路复用器。在本文中,我将使用tmux来运行服务器,但是如果您喜欢并知道如何使用屏幕,请随时使用它。

使用pacman安装tmux。

sudo pacman -Sy tmux

您可以使用以下命令启动服务器。您可以根据需要更改地图。请阅读“最终注释”以获取有关game_typegame_mode值的更多信息。本示例适用于经典休闲服务器。

sudo -u csgo tmux new-session -d -s csgo-console -d 'cd /var/lib/csgo/server/; ./srcds_run -console -game csgo -usercon +game_type 0 +game_mode 0 +mapgroup mg_active +map de_dust2'

如果您需要附加到控制台,请运行以下命令。

sudo -u csgo tmux attach -t csgo-console

您可以通过键入CTRL + B然后释放这些键,然后按D离开服务器控制台。

与systemd一起运行

由于许多原因,使用systemd运行服务器很方便。最主要的是您可以在VPS启动时启动它。这需要编写脚本和systemd单元。即使这是一个好主意,它也是可选的

首先要写的是启动脚本。要创建脚本,请使用您喜欢的编辑器。这里使用了vim,但是您可以使用任何文本编辑器,例如nano。

sudo -u csgo vim ~csgo/server/csgo.sh

添加以下内容,并确保使用start命令查看该行,因为它具有游戏模式和类型。

#!/bin/sh

USER=$2

if [ -z $2 ]; then
  USER="csgo"
fi

case "$1" in
  start)
    sudo -u $ tmux new-session -d -s csgo-console -d 'cd /var/lib/csgo/server/; /var/lib/csgo/server/srcds_run -console -game csgo -usercon +game_type 0 +game_mode 0 +mapgroup mg_active +map de_dust2'
    ;;

  stop)
    sudo -u $ tmux send-keys -t csgo-console 'say Server shutting down in 10 seconds!' C-m
    sleep 10
    sudo -u $ tmux send-keys -t csgo-console 'quit' C-m
    sleep 5
    ;;

  *)
    echo "Usage: $0  user"
esac

exit 0

现在您需要制作systemd单元。

sudo vim /usr/lib/systemd/system/csgo.service

添加以下内容。

[Unit]
Description=Counter-Strike: Global Offensive Server (SRCDS)
After=local-fs.target network.target

[Service]
ExecStart=/var/lib/csgo/server/csgo.sh start
ExecStop=/var/lib/csgo/server/csgo.sh stop
Type=forking

[Install]
WantedBy=multi-user.target

现在确保该csgo.sh文件是可执行文件。

sudo chmod +x ~csgo/server/csgo.sh

毕竟,您可以systemctl用来启动和停止服务器。您也可以使用它来使其在启动时启动。

开始:

sudo systemctl start csgo.service

停止:

sudo systemctl stop csgo.service

重启:

sudo systemctl restart csgo.service

要在启动时启用:

sudo systemctl enable csgo.service

要在启动时禁用:

sudo systemctl disable csgo.service

即使systemd处理启动和停止服务器,您也可以使用以下命令访问控制台。

sudo -u csgo tmux attach -t csgo-console

最后说明

SteamCMD安装在只有root才能更改文件的区域中(请参阅“安装SteamCMD”部分中的注释)。如果您需要自己升级SteamCMD,只需以root身份运行它即可。

sudo steamcmd +quit

如果需要更新服务器。首先停止服务器,然后使用SteamCMD进行更新(使用相同的命令进行安装)。

sudo systemctl stop csgo.service
sudo -u csgo steamcmd +login anonymous +force_install_dir ~csgo/server +app_update 740 validate +quit
sudo systemctl start csgo.service

启动命令中的游戏模式和游戏类型很重要,具体取决于所需的服务器类型。这是可能值的快速表格。

      Game Mode      | game_type | game_mode
Classic Casual       | 0         | 0
Classic Competitive  | 0         | 1
Arms Race            | 1         | 0
Demolition           | 1         | 1
Deathmatch           | 1         | 2

本教程中没有涉及更多配置主题。如果您需要更多信息,请参考Valve Developer Wiki。

留下評論

在Arch Linux上使用Makepkg

在Arch Linux上使用Makepkg

在Arch Linux上使用Makepkg可以避免系统污染,确保仅安装必要的依赖关系。

如何在Ubuntu 16.04上安装OpenSIPS控制面板

如何在Ubuntu 16.04上安装OpenSIPS控制面板

快速学习如何在Ubuntu 16.04上安装OpenSIPS控制面板,为VoIP提供商提供支持的功能。

在Fedora 28上安装Akaunting

在Fedora 28上安装Akaunting

学习如何在Fedora 28上安装Akaunting,一款适合小型企业和自由职业者的开源会计软件。

如何在CentOS 7上安装Mailtrain新闻通讯应用程序

如何在CentOS 7上安装Mailtrain新闻通讯应用程序

使用其他系统?Mailtrain是一个基于Node.js和MySQL / MariaDB构建的开源自托管新闻通讯应用程序。

诊断Minecraft服务器延迟和低TPS

诊断Minecraft服务器延迟和低TPS

了解導致Minecraft延遲的原因和解決方案,包括優化伺服器性能和減少滯後的步驟。

AI 能否應對越來越多的勒索軟件攻擊?

AI 能否應對越來越多的勒索軟件攻擊?

勒索軟件攻擊呈上升趨勢,但人工智能能否幫助應對最新的計算機病毒?AI 是答案嗎?在這裡閱讀知道是 AI 布恩還是禍根

ReactOS:這是 Windows 的未來嗎?

ReactOS:這是 Windows 的未來嗎?

ReactOS,一個開源和免費的操作系統,這裡有最新版本。它能否滿足現代 Windows 用戶的需求並打倒微軟?讓我們更多地了解這種老式但更新的操作系統體驗。

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

Whatsapp 終於為 Mac 和 Windows 用戶推出了桌面應用程序。現在您可以輕鬆地從 Windows 或 Mac 訪問 Whatsapp。適用於 Windows 8+ 和 Mac OS 10.9+

人工智能如何將流程自動化提升到新的水平?

人工智能如何將流程自動化提升到新的水平?

閱讀本文以了解人工智能如何在小型公司中變得流行,以及它如何增加使它們成長並為競爭對手提供優勢的可能性。

macOS Catalina 10.15.4 補充更新引發的問題多於解決

macOS Catalina 10.15.4 補充更新引發的問題多於解決

最近,Apple 發布了 macOS Catalina 10.15.4 補充更新以修復問題,但似乎該更新引起了更多問題,導致 mac 機器變磚。閱讀這篇文章以了解更多信息