Настройка сервера Team Fortress 2 в Arch Linux

В этом руководстве объясняется, как настроить сервер Team Fortress 2 в Arch Linux. Я предполагаю, что вы вошли в систему с учетной записью без полномочий root, у которой есть доступ sudo. В этом руководстве для сборки пакетов используется AUR, и эту операцию не следует выполнять с учетной записью root.

Прежде чем вы начнете

Очень важно, чтобы у вас был multilibвключен репозиторий, если и только если вы находитесь на 64-битном (amd64) сервере. Если он не включен, SteamCMD не может запуститься, и вы даже не можете загружать файлы сервера. Для этого вы должны раскомментировать следующие строки в /etc/pacman.conf.

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

Если вы используете 32-битную (i686) Arch, вы можете спокойно это игнорировать.

Установить SteamCMD

Существует пакет AUR для SteamCMD, и это один из самых простых способов установить SteamCMD на Arch. Есть несколько странных вещей об этом, хотя:

  • Все относительные пути относительно /usr/share/steamcmd.
  • Чтобы обновить сам SteamCMD, вы должны быть пользователем root.

Если вы находитесь на 64-битном сервере, вы должны установить пакет lib32-gcc-libs.

sudo pacman -Sy lib32-gcc-libs

Теперь мы должны собрать пакет. Используя curl, скачайте tarball для пакета.

curl -O http://media.steampowered.com/installer/steamcmd_linux.tar.gz

После завершения загрузки распакуйте и перейдите в созданный каталог.

tar -xvzf steamcmd.tar.gz
cd steamcmd

Теперь, используя makepkg, соберите пакет.

makepkg -ci

Если вы не передали -iфлаг команде makepkg, используйте pacman для его установки.

sudo pacman -U *.pkg.tar.xz

Теперь у вас установлен SteamCMD и вы можете загрузить сервер Team Fortress 2.

Установите сервер Team Fortress 2

В этом руководстве для запуска сервера используется отдельный пользователь, поэтому мы создадим нового пользователя и группу tf2 с собственной домашней папкой в /var/lib.

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

Теперь для установки сервера.

sudo -u tf2 steamcmd +login anonymous +force_install_dir ~tf2/server +app_update 232250 validate +quit

Как только это завершит загрузку, у вас будет установлен сервер.

Настройка

Хотя вы можете запустить сервер, необходимо выполнить некоторую настройку, чтобы сервер не был слишком универсальным. Основной файл, в который мы помещаем настройки, это server.cfgфайл. Ниже приведен очень простой server.cfgфайл.

Чтобы открыть / создать файл, используйте ваш любимый редактор. Здесь используется vim, но вы можете использовать любой текстовый редактор, например, nano.

sudo -u tf2 vim ~tf2/server/tf/cfg/server.cfg

Добавьте следующее. Дополнительные настройки можно найти на вики-странице Team Fortress 2 и на странице разработчиков Valve. Обязательно измените некоторые настройки в соответствии с вашими потребностями.

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 Screen или tmux, для запуска вашего сервера без присмотра. Здесь мы собираемся использовать tmux для запуска сервера, но если вы предпочитаете и знаете, как использовать экран, не стесняйтесь его использовать.

Установите tmux с помощью pacman.

sudo pacman -Sy tmux

Вы можете запустить сервер с помощью следующей команды. Вы можете изменить карту и maxplayers, если хотите.

sudo -u tf2 tmux new-session -d -s tf2-console -d '~tf2/server/srcds_run -console -game tf +map cp_dustbowl +maxplayers 24'

Если вам когда-либо понадобится подключиться к консоли, выполните следующее.

sudo -u tf2 tmux attach -t tf2-console

Вы можете оставить консоль сервера, набрав CTRL + B , то отпуская эти кнопки , а затем нажав D .

Работает с systemd

Запуск сервера с помощью systemd удобен по многим причинам. Основным является то, что вы можете запустить его при запуске VPS. Это требует написания скрипта и системного модуля. Хотя это хорошая идея, она не обязательна .

Первое, что нужно написать, это стартовый скрипт. Чтобы создать сценарий, используйте ваш любимый редактор. Здесь используется vim, но вы можете использовать любой текстовый редактор, например, nano.

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

Добавьте следующее.

#!/bin/sh

USER=$2

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

case "$1" in
  start)
    sudo -u $ tmux new-session -d -s tf2-console -d '/var/lib/tf2/server/srcds_run -console -game tf +map cp_dustbowl +maxplayers 24'
    ;;

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

  *)
    echo "Usage: $0  user"
esac

exit 0

Теперь вам нужно сделать системный модуль. Чтобы создать модуль, используйте ваш любимый редактор. Здесь используется vim, но вы можете использовать любой текстовый редактор, например, nano.

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

Добавьте следующее.

[Unit]
Description=Team Fortress 2 Server (SRCDS)
After=local-fs.target network.target

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

[Install]
WantedBy=multi-user.target

Теперь убедитесь, что tf2.shфайл исполняемый.

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

После всего этого вы можете использовать systemctlдля запуска и остановки сервера. Также вы можете использовать его для запуска при загрузке.

Начать:

sudo systemctl start tf2.service

Прекратить:

sudo systemctl stop tf2.service

Перезапустить:

sudo systemctl restart tf2.service

Чтобы включить при загрузке:

sudo systemctl enable tf2.service

Чтобы отключить при загрузке:

sudo systemctl disable tf2.service

Хотя systemd обрабатывает запуск и остановку сервера, вы все равно можете получить доступ к консоли с помощью следующей команды:

sudo -u tf2 tmux attach -t tf2-console

Финальные заметки

SteamCMD устанавливается в области, где только root может изменять файлы (см. Примечание в разделе «Установка SteamCMD»). Если вам когда-нибудь понадобится обновить сам SteamCMD, просто запустите его как root.

sudo steamcmd +quit

Если вам нужно обновить сервер. Сначала остановите сервер, а затем используйте SteamCMD для обновления (используйте ту же команду для установки).

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

Есть много других тем по настройке, которые не рассматриваются в этом руководстве. Если вам нужна дополнительная информация, обратитесь к Team Fortress 2 Wiki и Valve Developer Wiki.

Оставить комментарий

Изучение 26 методов анализа больших данных: часть 1

Изучение 26 методов анализа больших данных: часть 1

Изучение 26 методов анализа больших данных: часть 1

Функциональные возможности уровней эталонной архитектуры больших данных

Функциональные возможности уровней эталонной архитектуры больших данных

Прочтите блог, чтобы узнать о различных уровнях архитектуры больших данных и их функциях самым простым способом.

6 невероятных фактов о Nintendo Switch

6 невероятных фактов о Nintendo Switch

Многие из вас знают Switch, который выйдет в марте 2017 года, и его новые функции. Для тех, кто не знает, мы подготовили список функций, которые делают «Switch» обязательным гаджетом.

Технические обещания, которые все еще не выполнены

Технические обещания, которые все еще не выполнены

Вы ждете, когда технологические гиганты выполнят свои обещания? проверить, что осталось недоставленным.

Как ИИ может вывести автоматизацию процессов на новый уровень?

Как ИИ может вывести автоматизацию процессов на новый уровень?

Прочтите это, чтобы узнать, как искусственный интеллект становится популярным среди небольших компаний и как он увеличивает вероятность их роста и дает преимущество перед конкурентами.

Технологическая сингулярность: далекое будущее человеческой цивилизации?

Технологическая сингулярность: далекое будущее человеческой цивилизации?

По мере того, как наука развивается быстрыми темпами, принимая на себя большую часть наших усилий, также возрастает риск подвергнуться необъяснимой сингулярности. Прочтите, что может значить для нас необычность.

CAPTCHA: как долго она может оставаться жизнеспособным методом различения между человеком и ИИ?

CAPTCHA: как долго она может оставаться жизнеспособным методом различения между человеком и ИИ?

CAPTCHA стало довольно сложно решать пользователям за последние несколько лет. Сможет ли он оставаться эффективным в обнаружении спама и ботов в ближайшем будущем?

Телемедицина и удаленное здравоохранение: будущее уже здесь

Телемедицина и удаленное здравоохранение: будущее уже здесь

Что такое телемедицина, дистанционное здравоохранение и их влияние на будущее поколение? Это хорошее место или нет в ситуации пандемии? Прочтите блог, чтобы узнать мнение!

Вы когда-нибудь задумывались, как хакеры зарабатывают деньги?

Вы когда-нибудь задумывались, как хакеры зарабатывают деньги?

Возможно, вы слышали, что хакеры зарабатывают много денег, но задумывались ли вы когда-нибудь о том, как они зарабатывают такие деньги? Давайте обсудим.

Обновление дополнения к macOS Catalina 10.15.4 вызывает больше проблем, чем решает

Обновление дополнения к macOS Catalina 10.15.4 вызывает больше проблем, чем решает

Недавно Apple выпустила macOS Catalina 10.15.4, дополнительное обновление для исправления проблем, но похоже, что это обновление вызывает больше проблем, приводящих к поломке компьютеров Mac. Прочтите эту статью, чтобы узнать больше