Установка игрового сервера Team Fortress 2 на Linux: различия между версиями
Admin (обсуждение | вклад) Новая страница: «= Установка игрового сервера Team Fortress 2 на Linux = == 1. Подготовка системы == * Войдите в систем…» |
Статья переписана по результатам установки на чистой Ubuntu 24.04, добавлены снимки экрана |
||
| (не показана 1 промежуточная версия этого же участника) | |||
| Строка 1: | Строка 1: | ||
Инструкция по установке выделенного сервера Team Fortress 2 на VDS с Ubuntu 24.04. Все команды и снимки экрана сняты с настоящего сервера: инструкция проверена 15 ноября 2026 года на чистой Ubuntu 24.04.4. | |||
== | == Что понадобится == | ||
* | * VDS с '''Ubuntu 24.04 LTS''' и доступом '''root''' по SSH. | ||
* | * '''Память:''' пустой сервер занимает около 700 МБ. Берите VDS от 2 ГБ. | ||
* | * '''Диск:''' файлы сервера занимают 15 ГБ; с запасом на обновления нужно от 25 ГБ свободного места. | ||
* '''Процессор:''' от 2 ядер. | |||
Учётная запись Steam и купленная игра для установки сервера не нужны. | |||
== 1. Обновите систему == | |||
<pre>sudo apt update && sudo apt upgrade -y</pre> | |||
На свежей системе обновление идёт от 5 минут до получаса. По ходу могут появиться два места, где нужно ваше участие. | |||
'''Окно выбора раскладки клавиатуры.''' Обновление остановится и покажет окно «Configuring keyboard-configuration». Ничего менять не нужно: нажмите '''Enter''', в следующем окне снова '''Enter'''. | |||
[[Файл:Ubuntu-apt-keyboard-dialog.png|800px]] | |||
'''Сообщение о новом ядре.''' Если в конце вы видите «Pending kernel upgrade», система обновила ядро и ждёт перезагрузки. | |||
[[Файл:Ubuntu-apt-kernel-reboot.png|800px]] | |||
Перезагрузите сервер и подключитесь снова через минуту: | |||
<pre>sudo reboot</pre> | |||
== 2. Установите нужные пакеты == | |||
<pre>sudo | |||
<pre>sudo apt install -y wget lib32gcc-s1 lib32stdc++6</pre> | |||
* <code>lib32gcc-s1</code> и <code>lib32stdc++6</code> нужны программе SteamCMD, через которую скачивается сервер. | |||
== 3. Создайте пользователя для сервера == | |||
Игровой сервер не должен работать от root. Создайте для него отдельного пользователя: | |||
<pre>sudo useradd -m -s /bin/bash tf2</pre> | |||
<pre>sudo | |||
Пароль этому пользователю не нужен: входить под ним по SSH никто не будет, а переключаться на него вы будете командой из шага 5. | |||
== | == 4. Скачайте SteamCMD == | ||
<pre>sudo mkdir -p /opt/steamcmd | |||
<pre>sudo | cd /opt/steamcmd | ||
sudo wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz | |||
sudo tar -xzf steamcmd_linux.tar.gz | |||
sudo chown -R tf2:tf2 /opt/steamcmd</pre> | |||
Архив маленький (2,3 МБ), но с серверов Steam он может качаться около минуты — это нормально. | |||
== 5. Установите сервер Team Fortress 2 == | |||
Переключитесь на пользователя <code>tf2</code> и запустите SteamCMD: | |||
< | |||
<pre>sudo su - tf2 | |||
cd /opt/steamcmd | |||
./steamcmd.sh</pre> | |||
При первом запуске SteamCMD скачивает собственное обновление (около 40 МБ). С серверов Steam оно может идти несколько минут — дождитесь приглашения <code>Steam></code> и ничего не вводите раньше. | |||
Затем введите по очереди три команды. Порядок важен: каталог установки задаётся '''до''' входа. | |||
<pre>force_install_dir /home/tf2/tf2-server | <pre>force_install_dir /home/tf2/tf2-server | ||
login anonymous | login anonymous | ||
app_update 232250 validate | app_update 232250 validate</pre> | ||
2. | [[Файл:Team-Fortress-2-linux-steamcmd-login.png|800px]] | ||
Если вместо загрузки появилась строка «ERROR! Failed to install app … (Missing configuration)», просто введите команду <code>app_update</code> ещё раз: при первом запуске SteamCMD такое случается, со второго раза загрузка начинается. | |||
Загрузка 10,7 ГБ (на диске 15 ГБ) занимает около получаса. Дождитесь строки «Success! App '232250' fully installed.»: | |||
[[Файл:Team-Fortress-2-linux-steamcmd-install.png|800px]] | |||
Выйдите из SteamCMD: | |||
<pre>quit</pre> | |||
<pre> | |||
Проверьте, что файлы на месте: | |||
<pre>ls /home/tf2/tf2-server</pre> | |||
[[Файл:Team-Fortress-2-linux-files.png|800px]] | |||
== | == 6. Настройте сервер == | ||
'''Библиотека Steam.''' 64-битный сервер ищет библиотеку Steam в каталоге <code>~/.steam/sdk64</code>, а её там нет. Без неё сервер запускается, но не соединяется со Steam. Сделайте ссылку на библиотеку из SteamCMD: | |||
<pre>mkdir -p ~/.steam/sdk64 | |||
<pre> | ln -s /opt/steamcmd/linux64/steamclient.so ~/.steam/sdk64/steamclient.so</pre> | ||
'''Настройки.''' Создайте файл <code>server.cfg</code>: | |||
< | |||
<pre>nano ~/tf2-server/tf/cfg/server.cfg</pre> | |||
<pre>hostname "My TF2 Server" | |||
sv_password ""</pre> | |||
* <code>hostname</code> — название сервера в списке. | |||
* <code>sv_password</code> — пароль для входа. Пустые кавычки — вход без пароля. | |||
Число игроков и карта в этом файле не задаются: они указываются ключами запуска в шаге 7. | |||
Сохраните файл (в nano: '''Ctrl+O''', '''Enter''', '''Ctrl+X'''), проверьте результат и вернитесь к root: | |||
<pre>ls -l ~/.steam/sdk64 | |||
cat ~/tf2-server/tf/cfg/server.cfg | |||
exit</pre> | |||
[[Файл:Team-Fortress-2-linux-config.png|800px]] | |||
== 7. Настройте автозапуск == | |||
Чтобы сервер запускался вместе с системой и поднимался после сбоя, создайте для него службу: | |||
<pre>sudo nano /etc/systemd/system/tf2-server.service</pre> | <pre>sudo nano /etc/systemd/system/tf2-server.service</pre> | ||
Вставьте: | |||
<pre>[Unit] | <pre>[Unit] | ||
Description=Team Fortress 2 Dedicated Server | Description=Team Fortress 2 Dedicated Server | ||
| Строка 139: | Строка 128: | ||
Type=simple | Type=simple | ||
User=tf2 | User=tf2 | ||
WorkingDirectory=/home/tf2/tf2-server | WorkingDirectory=/home/tf2/tf2-server | ||
ExecStart=/home/tf2/tf2-server/ | ExecStart=/home/tf2/tf2-server/srcds_run_64 -norestart -console -condebug -game tf +map cp_dustbowl +maxplayers 24 | ||
Restart=always | Restart=always | ||
RestartSec= | RestartSec=5 | ||
[Install] | [Install] | ||
WantedBy=multi-user.target</pre> | WantedBy=multi-user.target</pre> | ||
Что означают ключи запуска: | |||
* <code>srcds_run_64</code> — 64-битный сервер. 32-битный <code>srcds_run</code> из старых руководств на Ubuntu 24.04 не запускается: ему нужны 32-битные библиотеки, которых в системе больше нет. | |||
* <code>-norestart</code> — штатный скрипт не перезапускает сервер сам: за этим следит служба. | |||
* <code>-condebug</code> — сервер записывает свою консоль в файл <code>tf/console.log</code>. Без этого ключа под службой его сообщений не видно. | |||
* <code>+map cp_dustbowl</code> — карта, <code>+maxplayers 24</code> — предел числа игроков. | |||
== 8. Запустите сервер и проверьте его == | |||
<pre>sudo systemctl daemon-reload | <pre>sudo systemctl daemon-reload | ||
sudo systemctl enable tf2-server | sudo systemctl enable tf2-server | ||
sudo systemctl start tf2-server | sudo systemctl start tf2-server</pre> | ||
sudo systemctl status tf2-server</pre> | |||
Запуск занимает около минуты. Проверьте состояние службы — должно быть '''active (running)''': | |||
<pre>sudo systemctl status tf2-server --no-pager -n 0</pre> | |||
[[Файл:Team-Fortress-2-linux-service-status.png|800px]] | |||
Сервер готов, когда он занял порт 27015, а в его консоли есть строки «Connection to Steam servers successful» и «VAC secure mode is activated»: | |||
<pre>sudo ss -uln | grep 27015 | |||
sudo grep -E "Connection to Steam|VAC secure|account token" /home/tf2/tf2-server/tf/console.log | tail -n 3</pre> | |||
[[Файл:Team-Fortress-2-linux-check.png|800px]] | |||
Управление службой: | |||
<pre>sudo systemctl stop tf2-server # остановить | |||
sudo systemctl restart tf2-server # перезапустить | |||
sudo journalctl -u tf2-server -f # смотреть журнал, выход — Ctrl+C</pre> | |||
== 9. Откройте порты в файрволе == | |||
'''Внимание:''' сначала разрешите SSH и только потом включайте файрвол. Иначе связь с сервером оборвётся. Если SSH у вас на нестандартном порту, вместо первой команды выполните <code>sudo ufw allow НОМЕР_ПОРТА/tcp</code>. | |||
<pre>sudo ufw allow OpenSSH | |||
sudo ufw allow 27015/udp | |||
sudo ufw enable</pre> | |||
Если появится вопрос «Command may disrupt existing ssh connections. Proceed with operation (y|n)?», ответьте '''y'''. Проверьте результат: | |||
<pre>sudo ufw status</pre> | |||
[[Файл:Team-Fortress-2-linux-ufw.png|800px]] | |||
== 10. Зайдите на сервер == | |||
В игре откройте список серверов и найдите сервер по названию либо откройте консоль и введите <code>connect IP_СЕРВЕРА:27015</code>. | |||
== Токен сервера == | |||
Без токена Steam сервер входит в Steam под безымянной учётной записью — в консоли об этом строка «No account token specified». По правилам Valve такой сервер не показывается в общем списке серверов игры, зайти на него можно только по адресу. | |||
Токен бесплатный, его выдаёт Steam владельцу учётной записи: | |||
'''1.''' Откройте страницу [https://steamcommunity.com/dev/managegameservers steamcommunity.com/dev/managegameservers] и войдите в свою учётную запись Steam. | |||
'''2.''' В поле «App ID» введите <code>440</code> (это номер игры Team Fortress 2), в поле заметки — любое название, и создайте токен. | |||
'''3.''' Допишите токен в конец строки <code>ExecStart</code> в файле службы: | |||
<pre>+sv_setsteamaccount ВАШ_ТОКЕН</pre> | |||
'''4.''' Примените изменения: | |||
<pre>sudo systemctl daemon-reload | |||
sudo systemctl restart tf2-server</pre> | |||
Никому не передавайте токен: он привязан к вашей учётной записи Steam. Для каждого сервера нужен свой токен. | |||
== Обновление сервера == | |||
После выхода обновления игры остановите сервер, обновите файлы и запустите снова: | |||
<pre>sudo systemctl stop tf2-server | |||
sudo -u tf2 /opt/steamcmd/steamcmd.sh +force_install_dir /home/tf2/tf2-server +login anonymous +app_update 232250 validate +quit | |||
sudo systemctl start tf2-server</pre> | |||
Ваши настройки и сохранения при обновлении не затрагиваются. | |||
== | == Где лежат сохранения == | ||
У сервера нет мира, который нужно сохранять. Важные файлы: | |||
* <code>/home/tf2/tf2-server/tf/cfg/server.cfg</code> — настройки; | |||
* <code>/home/tf2/tf2-server/tf/maps/</code> — свои карты; | |||
* <code>/home/tf2/tf2-server/tf/addons/</code> — дополнения (например, SourceMod); | |||
* <code>/home/tf2/tf2-server/tf/console.log</code> — журнал консоли. | |||
== Если что-то пошло не так == | |||
{| class="wikitable" | |||
! Что видите !! Причина и решение | |||
|- | |||
| В журнале «FATAL ERROR: Could not load: replay_srv.so» || Запущен 32-битный <code>srcds_run</code>. На Ubuntu 24.04 используйте <code>srcds_run_64</code>, как в шаге 7. | |||
|- | |||
| В журнале «dlopen failed trying to load: …/.steam/sdk64/steamclient.so» || Не сделана ссылка на библиотеку Steam из шага 6. Без неё сервер не соединяется со Steam. | |||
|- | |||
| В журнале службы (<code>journalctl</code>) мало строк || Без терминала сервер не выводит свою консоль. Смотрите файл <code>tf/console.log</code> — его включает ключ <code>-condebug</code>. | |||
|- | |||
| Предел числа игроков не меняется || Строка <code>maxplayers</code> в <code>server.cfg</code> не действует. Меняйте ключ <code>+maxplayers</code> в строке <code>ExecStart</code> службы, затем выполните <code>sudo systemctl daemon-reload</code> и перезапустите службу. | |||
|- | |||
| SteamCMD отвечает «ERROR! Failed to install app '232250' (Missing configuration)» || Так иногда бывает при первом запуске SteamCMD. Введите команду <code>app_update</code> ещё раз — со второго раза загрузка начинается. | |||
|- | |||
| После установки нет каталога <code>/home/tf2/tf2-server</code> || Команда <code>force_install_dir</code> была введена с ошибкой или после <code>login</code>, и сервер установился в <code>/home/tf2/Steam/steamapps/common/</code>. Запустите SteamCMD заново и повторите три команды из шага 5 по порядку. | |||
|- | |||
| Служба в состоянии «failed» || Посмотрите причину: <code>sudo journalctl -u tf2-server -n 50 --no-pager</code>. Чаще всего это опечатка в пути или скрипт запуска не сделан исполняемым. | |||
|- | |||
| Сервер запущен, но зайти не удаётся || Проверьте, что порты открыты (<code>sudo ufw status</code>) и что в игре указан верный адрес и порт. | |||
|} | |||
'''Для размещения игровых серверов рекомендуем услуги [https://ark-hoster.ru ARK-HOSTER.RU]:''' | |||
* '''[https://ark-hoster.ru/vpsgame/ VPS/VDS серверы]''' — для небольших и средних серверов | |||
* '''[https://ark-hoster.ru/dedicated/ Выделенные серверы]''' — для высоконагруженных игровых серверов | |||
Текущая версия от 22:03, 14 ноября 2026
Инструкция по установке выделенного сервера Team Fortress 2 на VDS с Ubuntu 24.04. Все команды и снимки экрана сняты с настоящего сервера: инструкция проверена 15 ноября 2026 года на чистой Ubuntu 24.04.4.
Что понадобится
- VDS с Ubuntu 24.04 LTS и доступом root по SSH.
- Память: пустой сервер занимает около 700 МБ. Берите VDS от 2 ГБ.
- Диск: файлы сервера занимают 15 ГБ; с запасом на обновления нужно от 25 ГБ свободного места.
- Процессор: от 2 ядер.
Учётная запись Steam и купленная игра для установки сервера не нужны.
1. Обновите систему
sudo apt update && sudo apt upgrade -y
На свежей системе обновление идёт от 5 минут до получаса. По ходу могут появиться два места, где нужно ваше участие.
Окно выбора раскладки клавиатуры. Обновление остановится и покажет окно «Configuring keyboard-configuration». Ничего менять не нужно: нажмите Enter, в следующем окне снова Enter.
Сообщение о новом ядре. Если в конце вы видите «Pending kernel upgrade», система обновила ядро и ждёт перезагрузки.
Перезагрузите сервер и подключитесь снова через минуту:
sudo reboot
2. Установите нужные пакеты
sudo apt install -y wget lib32gcc-s1 lib32stdc++6
lib32gcc-s1иlib32stdc++6нужны программе SteamCMD, через которую скачивается сервер.
3. Создайте пользователя для сервера
Игровой сервер не должен работать от root. Создайте для него отдельного пользователя:
sudo useradd -m -s /bin/bash tf2
Пароль этому пользователю не нужен: входить под ним по SSH никто не будет, а переключаться на него вы будете командой из шага 5.
4. Скачайте SteamCMD
sudo mkdir -p /opt/steamcmd cd /opt/steamcmd sudo wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz sudo tar -xzf steamcmd_linux.tar.gz sudo chown -R tf2:tf2 /opt/steamcmd
Архив маленький (2,3 МБ), но с серверов Steam он может качаться около минуты — это нормально.
5. Установите сервер Team Fortress 2
Переключитесь на пользователя tf2 и запустите SteamCMD:
sudo su - tf2 cd /opt/steamcmd ./steamcmd.sh
При первом запуске SteamCMD скачивает собственное обновление (около 40 МБ). С серверов Steam оно может идти несколько минут — дождитесь приглашения Steam> и ничего не вводите раньше.
Затем введите по очереди три команды. Порядок важен: каталог установки задаётся до входа.
force_install_dir /home/tf2/tf2-server login anonymous app_update 232250 validate
Если вместо загрузки появилась строка «ERROR! Failed to install app … (Missing configuration)», просто введите команду app_update ещё раз: при первом запуске SteamCMD такое случается, со второго раза загрузка начинается.
Загрузка 10,7 ГБ (на диске 15 ГБ) занимает около получаса. Дождитесь строки «Success! App '232250' fully installed.»:
Выйдите из SteamCMD:
quit
Проверьте, что файлы на месте:
ls /home/tf2/tf2-server
6. Настройте сервер
Библиотека Steam. 64-битный сервер ищет библиотеку Steam в каталоге ~/.steam/sdk64, а её там нет. Без неё сервер запускается, но не соединяется со Steam. Сделайте ссылку на библиотеку из SteamCMD:
mkdir -p ~/.steam/sdk64 ln -s /opt/steamcmd/linux64/steamclient.so ~/.steam/sdk64/steamclient.so
Настройки. Создайте файл server.cfg:
nano ~/tf2-server/tf/cfg/server.cfg
hostname "My TF2 Server" sv_password ""
hostname— название сервера в списке.sv_password— пароль для входа. Пустые кавычки — вход без пароля.
Число игроков и карта в этом файле не задаются: они указываются ключами запуска в шаге 7.
Сохраните файл (в nano: Ctrl+O, Enter, Ctrl+X), проверьте результат и вернитесь к root:
ls -l ~/.steam/sdk64 cat ~/tf2-server/tf/cfg/server.cfg exit
7. Настройте автозапуск
Чтобы сервер запускался вместе с системой и поднимался после сбоя, создайте для него службу:
sudo nano /etc/systemd/system/tf2-server.service
Вставьте:
[Unit] Description=Team Fortress 2 Dedicated Server After=network.target [Service] Type=simple User=tf2 WorkingDirectory=/home/tf2/tf2-server ExecStart=/home/tf2/tf2-server/srcds_run_64 -norestart -console -condebug -game tf +map cp_dustbowl +maxplayers 24 Restart=always RestartSec=5 [Install] WantedBy=multi-user.target
Что означают ключи запуска:
srcds_run_64— 64-битный сервер. 32-битныйsrcds_runиз старых руководств на Ubuntu 24.04 не запускается: ему нужны 32-битные библиотеки, которых в системе больше нет.-norestart— штатный скрипт не перезапускает сервер сам: за этим следит служба.-condebug— сервер записывает свою консоль в файлtf/console.log. Без этого ключа под службой его сообщений не видно.+map cp_dustbowl— карта,+maxplayers 24— предел числа игроков.
8. Запустите сервер и проверьте его
sudo systemctl daemon-reload sudo systemctl enable tf2-server sudo systemctl start tf2-server
Запуск занимает около минуты. Проверьте состояние службы — должно быть active (running):
sudo systemctl status tf2-server --no-pager -n 0
Сервер готов, когда он занял порт 27015, а в его консоли есть строки «Connection to Steam servers successful» и «VAC secure mode is activated»:
sudo ss -uln | grep 27015 sudo grep -E "Connection to Steam|VAC secure|account token" /home/tf2/tf2-server/tf/console.log | tail -n 3
Управление службой:
sudo systemctl stop tf2-server # остановить sudo systemctl restart tf2-server # перезапустить sudo journalctl -u tf2-server -f # смотреть журнал, выход — Ctrl+C
9. Откройте порты в файрволе
Внимание: сначала разрешите SSH и только потом включайте файрвол. Иначе связь с сервером оборвётся. Если SSH у вас на нестандартном порту, вместо первой команды выполните sudo ufw allow НОМЕР_ПОРТА/tcp.
sudo ufw allow OpenSSH sudo ufw allow 27015/udp sudo ufw enable
Если появится вопрос «Command may disrupt existing ssh connections. Proceed with operation (y|n)?», ответьте y. Проверьте результат:
sudo ufw status
10. Зайдите на сервер
В игре откройте список серверов и найдите сервер по названию либо откройте консоль и введите connect IP_СЕРВЕРА:27015.
Токен сервера
Без токена Steam сервер входит в Steam под безымянной учётной записью — в консоли об этом строка «No account token specified». По правилам Valve такой сервер не показывается в общем списке серверов игры, зайти на него можно только по адресу.
Токен бесплатный, его выдаёт Steam владельцу учётной записи:
1. Откройте страницу steamcommunity.com/dev/managegameservers и войдите в свою учётную запись Steam.
2. В поле «App ID» введите 440 (это номер игры Team Fortress 2), в поле заметки — любое название, и создайте токен.
3. Допишите токен в конец строки ExecStart в файле службы:
+sv_setsteamaccount ВАШ_ТОКЕН
4. Примените изменения:
sudo systemctl daemon-reload sudo systemctl restart tf2-server
Никому не передавайте токен: он привязан к вашей учётной записи Steam. Для каждого сервера нужен свой токен.
Обновление сервера
После выхода обновления игры остановите сервер, обновите файлы и запустите снова:
sudo systemctl stop tf2-server sudo -u tf2 /opt/steamcmd/steamcmd.sh +force_install_dir /home/tf2/tf2-server +login anonymous +app_update 232250 validate +quit sudo systemctl start tf2-server
Ваши настройки и сохранения при обновлении не затрагиваются.
Где лежат сохранения
У сервера нет мира, который нужно сохранять. Важные файлы:
/home/tf2/tf2-server/tf/cfg/server.cfg— настройки;/home/tf2/tf2-server/tf/maps/— свои карты;/home/tf2/tf2-server/tf/addons/— дополнения (например, SourceMod);/home/tf2/tf2-server/tf/console.log— журнал консоли.
Если что-то пошло не так
| Что видите | Причина и решение |
|---|---|
| В журнале «FATAL ERROR: Could not load: replay_srv.so» | Запущен 32-битный srcds_run. На Ubuntu 24.04 используйте srcds_run_64, как в шаге 7.
|
| В журнале «dlopen failed trying to load: …/.steam/sdk64/steamclient.so» | Не сделана ссылка на библиотеку Steam из шага 6. Без неё сервер не соединяется со Steam. |
В журнале службы (journalctl) мало строк |
Без терминала сервер не выводит свою консоль. Смотрите файл tf/console.log — его включает ключ -condebug.
|
| Предел числа игроков не меняется | Строка maxplayers в server.cfg не действует. Меняйте ключ +maxplayers в строке ExecStart службы, затем выполните sudo systemctl daemon-reload и перезапустите службу.
|
| SteamCMD отвечает «ERROR! Failed to install app '232250' (Missing configuration)» | Так иногда бывает при первом запуске SteamCMD. Введите команду app_update ещё раз — со второго раза загрузка начинается.
|
После установки нет каталога /home/tf2/tf2-server |
Команда force_install_dir была введена с ошибкой или после login, и сервер установился в /home/tf2/Steam/steamapps/common/. Запустите SteamCMD заново и повторите три команды из шага 5 по порядку.
|
| Служба в состоянии «failed» | Посмотрите причину: sudo journalctl -u tf2-server -n 50 --no-pager. Чаще всего это опечатка в пути или скрипт запуска не сделан исполняемым.
|
| Сервер запущен, но зайти не удаётся | Проверьте, что порты открыты (sudo ufw status) и что в игре указан верный адрес и порт.
|
Для размещения игровых серверов рекомендуем услуги ARK-HOSTER.RU:
- VPS/VDS серверы — для небольших и средних серверов
- Выделенные серверы — для высоконагруженных игровых серверов