Установка игрового сервера Terraria на Linux

Материал из ARK-HOSTER.RU | Документация хостинга
Версия от 18:15, 14 ноября 2026; Maintenance script (обсуждение | вклад) (Статья переписана по результатам установки на чистой Ubuntu 24.04, добавлены снимки экрана)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигации Перейти к поиску

Инструкция по установке выделенного сервера Terraria на VDS с Ubuntu 24.04. Все команды и снимки экрана сняты с настоящего сервера: инструкция проверена 14 ноября 2026 года на чистой Ubuntu 24.04.4 с сервером версии 1.4.5.8.

Что понадобится

  • VDS с Ubuntu 24.04 LTS и доступом root по SSH.
  • Память: сервер со средним миром занимает около 800 МБ. Хватит VDS с 2 ГБ.
  • Диск: файлы сервера занимают меньше 200 МБ, мир — от 3 МБ (маленький) до 15 МБ. Достаточно 1 ГБ свободного места.
  • Процессор: от 1 ядра.

Сервер скачивается с сайта разработчика бесплатно, учётная запись Steam и купленная игра для него не нужны. Программа Mono тоже не нужна: в архиве есть готовый исполняемый файл для Linux.

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 unzip screen
  • unzip распаковывает архив с сервером.
  • screen даёт серверу консоль. Без неё сервер Terraria постоянно занимает целое ядро процессора и не сохраняет мир при остановке — подробнее в шаге 6.

3. Создайте пользователя для сервера

Игровой сервер не должен работать от root. Создайте для него отдельного пользователя и переключитесь на него:

sudo useradd -m -s /bin/bash terraria
sudo su - terraria

Пароль этому пользователю не нужен: входить под ним по SSH никто не будет.

4. Скачайте сервер

mkdir -p ~/terraria-server ~/worlds
cd ~/terraria-server
wget https://terraria.org/api/download/pc-dedicated-server/terraria-server-1458.zip
unzip -q terraria-server-1458.zip
mv 1458/Linux bin
chmod +x bin/TerrariaServer.bin.x86_64

Число в имени архива — это версия игры без точек: 1458 означает 1.4.5.8. Версия сервера должна совпадать с версией игры у игроков. Ссылка на архив последней версии есть внизу главной страницы terraria.org («PC Dedicated Server»); если версия изменилась, замените 1458 в командах на новый номер.

5. Настройте сервер

Создайте файл настроек:

nano ~/terraria-server/serverconfig.txt

Вставьте в него:

world=/home/terraria/worlds/MyWorld.wld
autocreate=2
worldname=MyWorld
difficulty=0
maxplayers=8
port=7777
password=
motd=Welcome to my Terraria server!
worldpath=/home/terraria/worlds

Что означают параметры:

  • world — файл мира. Если его нет, сервер создаст мир сам.
  • autocreate — размер создаваемого мира: 1 — маленький, 2 — средний, 3 — большой.
  • worldname — название мира.
  • difficulty — сложность создаваемого мира: 0 — классика, 1 — эксперт, 2 — мастер, 3 — путешествие.
  • maxplayers — сколько игроков может зайти одновременно (от 1 до 255).
  • port — порт сервера.
  • password — пароль для входа. Пустое значение — вход без пароля.
  • motd — приветствие, которое видит игрок при входе.

Сохраните файл (в nano: Ctrl+O, Enter, Ctrl+X) и создайте скрипт запуска:

nano ~/terraria-server/start-server.sh
#!/bin/bash
cd /home/terraria/terraria-server/bin
exec ./TerrariaServer.bin.x86_64 -config /home/terraria/terraria-server/serverconfig.txt

Сделайте его исполняемым:

chmod +x ~/terraria-server/start-server.sh

6. Запустите сервер первый раз вручную

~/terraria-server/start-server.sh

Сервер создаст мир — на экране побегут проценты, для среднего мира это около минуты. Когда появятся строки «Listening on port 7777» и «Server started», сервер готов. Остановите его командой exit: он сохранит мир и завершится.

Вернитесь к root:

exit

7. Настройте автозапуск

Сервер Terraria рассчитан на работу с консолью. Если запустить его обычной службой без консоли, он постоянно занимает целое ядро процессора (у нас — 110% вместо 10%), а при остановке службы не сохраняет мир. Поэтому служба запускает сервер внутри screen и останавливает его командой exit.

sudo nano /etc/systemd/system/terraria-server.service

Вставьте:

[Unit]
Description=Terraria Dedicated Server
After=network.target

[Service]
Type=forking
User=terraria
WorkingDirectory=/home/terraria/terraria-server
ExecStart=/usr/bin/screen -dmS terraria /home/terraria/terraria-server/start-server.sh
ExecStop=/bin/sh -c '/usr/bin/screen -S terraria -p 0 -X stuff "exit^M"; while pgrep -u terraria -f "[T]errariaServer.bin" > /dev/null; do sleep 1; done'
TimeoutStopSec=60
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target

Строка ExecStop должна быть одной строкой, а ^M в ней — это два обычных символа: «крышка» и буква M.

8. Запустите сервер и проверьте его

sudo systemctl daemon-reload
sudo systemctl enable terraria-server
sudo systemctl start terraria-server

Через 20–30 секунд проверьте состояние службы и порт:

sudo systemctl status terraria-server --no-pager -n 0
sudo ss -tln | grep 7777

Управление службой:

sudo systemctl stop terraria-server      # остановить (мир сохраняется)
sudo systemctl restart terraria-server   # перезапустить

При остановке сервер сохраняет мир — время изменения файла мира совпадает со временем остановки:

9. Консоль сервера

Чтобы вводить команды сервера, подключитесь к его консоли:

sudo -u terraria screen -r terraria

Полезные команды: help — список команд, playing — кто на сервере, save — сохранить мир, say текст — сообщение всем игрокам, kick имя и ban имя — выгнать и заблокировать игрока.

Чтобы выйти из консоли, не останавливая сервер, нажмите Ctrl+A, затем D. Команду exit здесь не вводите: она остановит сервер, и служба через 5 секунд запустит его заново.

10. Откройте порт в файрволе

Внимание: сначала разрешите SSH и только потом включайте файрвол. Иначе связь с сервером оборвётся. Если SSH у вас на нестандартном порту, вместо первой команды выполните sudo ufw allow НОМЕР_ПОРТА/tcp.

sudo ufw allow OpenSSH
sudo ufw allow 7777/tcp
sudo ufw enable

Если появится вопрос «Command may disrupt existing ssh connections. Proceed with operation (y|n)?», ответьте y. Проверьте результат:

sudo ufw status

11. Зайдите на сервер

В игре выберите «Сетевая игра» → «Присоединиться по IP» (Multiplayer → Join via IP), затем персонажа, и введите IP-адрес сервера и порт 7777.

Обновление сервера

После выхода новой версии игры остановите сервер, скачайте новый архив и замените каталог bin. В командах подставьте номер новой версии вместо НОМЕР:

sudo systemctl stop terraria-server
sudo su - terraria
cd ~/terraria-server
wget https://terraria.org/api/download/pc-dedicated-server/terraria-server-НОМЕР.zip
unzip -q terraria-server-НОМЕР.zip
rm -rf bin
mv НОМЕР/Linux bin
chmod +x bin/TerrariaServer.bin.x86_64
exit
sudo systemctl start terraria-server

Файл настроек, скрипт запуска и миры при этом не затрагиваются. Скачанные архивы и каталоги с номерами старых версий в ~/terraria-server после обновления больше не нужны, их можно удалить.

Где лежит мир

/home/terraria/worlds/

Рядом с файлом мира сервер хранит его резервные копии с окончаниями .bak и .bak2. Чтобы перенести или сохранить мир, остановите сервер и скопируйте файл .wld.

Если что-то пошло не так

Что видите Причина и решение
При скачивании «404 Not Found» Архива с таким номером версии нет. Возьмите действующую ссылку внизу страницы terraria.org.
Сервер занимает 100% одного ядра Он запущен без консоли. Запускайте его через службу из шага 7 или внутри screen.
После перезапуска пропали последние постройки Сервер был остановлен без команды exit. Останавливайте его только командой sudo systemctl stop terraria-server.
Служба в состоянии «failed» Посмотрите причину: sudo journalctl -u terraria-server -n 50 --no-pager. Чаще всего это опечатка в пути или скрипт запуска не сделан исполняемым.
После обновления игры игроки не могут подключиться Версия сервера отличается от версии игры. Обновите сервер.
Сервер запущен, но зайти не удаётся Проверьте, что порт открыт (sudo ufw status) и что в игре указан порт 7777.

Для размещения игровых серверов рекомендуем услуги ARK-HOSTER.RU: