Налаштуйте сервер Team Fortress 2 на Arch Linux

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

Перед тим як ти почнеш

Дуже важливо, щоб у вас було 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 завантажте tar-архів для пакета.

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. Для цього потрібен сценарій і модуль systemd. Незважаючи на те, що це хороша ідея, вона необов’язкова .

Перше, що потрібно написати, це стартовий скрипт. Для створення сценарію скористайтеся улюбленим редактором. Тут використовується 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

Тепер потрібно створити модуль systemd. Для створення блоку використовуйте свій улюблений редактор. Тут використовується 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.

Залишити коментар

Повстання машин: застосування ШІ в реальному світі

Повстання машин: застосування ШІ в реальному світі

Штучний інтелект не в майбутньому, він тут прямо в сьогоденні У цьому блозі Прочитайте, як програми штучного інтелекту вплинули на різні сектори.

DDOS-атаки: короткий огляд

DDOS-атаки: короткий огляд

Ви також стали жертвою DDOS-атак і спантеличені методами запобігання? Прочитайте цю статтю, щоб вирішити свої запитання.

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

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

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

Революційні винаходи від Google, які полегшать ваше життя.

Революційні винаходи від Google, які полегшать ваше життя.

Ви хочете побачити революційні винаходи Google і як ці винаходи змінили життя кожної людини сьогодні? Тоді читайте в блозі, щоб побачити винаходи Google.

Friday Essential: Що сталося з автомобілями, керованими штучним інтелектом?

Friday Essential: Що сталося з автомобілями, керованими штучним інтелектом?

Концепція самокерованих автомобілів, щоб вирушати в дороги за допомогою штучного інтелекту, є мрією, яку ми давно мріємо. Але, незважаючи на кілька обіцянок, їх ніде не видно. Прочитайте цей блог, щоб дізнатися більше…

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

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

Оскільки наука розвивається швидкими темпами, бере на себе багато наших зусиль, ризики піддати себе незрозумілій Сингулярності також зростає. Читайте, що може означати для нас сингулярність.

Функціональні можливості шарів еталонної архітектури великих даних

Функціональні можливості шарів еталонної архітектури великих даних

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

Еволюція зберігання даних – інфографіка

Еволюція зберігання даних – інфографіка

Методи зберігання даних можуть розвиватися з моменту народження Даних. Цей блог висвітлює еволюцію зберігання даних на основі інфографіки.

6 дивовижних переваг використання пристроїв розумного дому в нашому житті

6 дивовижних переваг використання пристроїв розумного дому в нашому житті

У цьому цифровому світі пристрої розумного дому стали важливою частиною життя. Ось кілька дивовижних переваг пристроїв розумного дому щодо того, як вони роблять наше життя гідним життя та спрощують його.

Оновлення доповнення macOS Catalina 10.15.4 спричиняє більше проблем, ніж вирішує

Оновлення доповнення macOS Catalina 10.15.4 спричиняє більше проблем, ніж вирішує

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