Как поднять сервер Terraria: пошаговая инструкция
Хочешь погонять Terraria с друзьями без танцев с бубном вокруг домашнего роутера и постоянного "а ты не выключил комп?" — держи разбор, как поднять выделенный сервер на Linux-VPS. Terraria — едва ли не самая лёгкая игра из всех, под которые вообще стоит арендовать сервер: хватает 1 ГБ RAM, никакого GPU, а сам процесс поднятия занимает от силы 15–20 минут, если не путаться в консольных командах при создании мира.
Содержание
Минимальные требования и что понадобится
Terraria — 2D-песочница, и требования у дедиката смешные по меркам остальных игр каталога:
- RAM: от 1 ГБ хватает с запасом даже на средний мир и 4–6 игроков. Большой мир (large) и толпа NPC в City съедят чуть больше — закладывай 1,5–2 ГБ, если планируешь долгую фарм-сессию.
- CPU: 1 ядро тянет спокойно, Terraria не требовательна к процессору в отличие от того же Rust или ARK.
- Диск: несколько сотен мегабайт под сам сервер плюс место под миры и бэкапы — 5–10 ГБ SSD более чем достаточно.
- ОС: любой современный Linux — Ubuntu 22.04/24.04 или Debian 12 отлично подходят, дальше в статье команды под них.
- Доступ: SSH до сервера с правами sudo и открытый исходящий интернет для скачивания архива.
Если берёшь VPS под Terraria, младший тариф с 1 ГБ RAM из каталога MAATRIX GAMES закрывает вопрос — переплачивать за мощность тут особо не за что.
Скачиваем и распаковываем сервер
Официальный дедицированный сервер Terraria для Linux распространяется в виде архива с сайта terraria.org (раздел загрузок для дедиков) — внутри лежат сборки под Windows, Mac и Linux сразу. Альтернативный путь — через SteamCMD, у Terraria Dedicated Server есть отдельный App ID в Steam, что удобно, если сервер уже настроен на автообновления через steamcmd для других игр.
Вариант через прямую загрузку:
cd /opt
sudo mkdir terraria-server
sudo chown $USER:$USER terraria-server
cd terraria-server
wget https://terraria.org/api/download/pc-dedicated-server/terraria-server-XXXX.zip -O server.zip
sudo apt update && sudo apt install -y unzip
unzip server.zip
Номер версии в имени архива (XXXX) на сайте меняется с каждым патчем — просто бери ссылку из актуального раздела загрузок. После распаковки внутри появится папка с номером версии игры (например что-то вроде 1450 — конкретную цифру смотри у себя в архиве), а в ней — три подпапки: Windows, Mac и Linux. Тебе нужна именно Linux.
cd 1450/Linux
chmod +x TerrariaServer.bin
TerrariaServer.bin — это обёртка, которая поднимает сервер поверх Mono-рантайма; в актуальных сборках всё нужное уже упаковано в архив, доустанавливать зависимости вручную обычно не приходится. Если при первом запуске всё же ругается на нехватку какой-то системной библиотеки — это старая известная болячка Linux-сборок, лечится доустановкой недостающего пакета через apt install (в логе ошибки обычно прямо указано имя библиотеки).
Если предпочитаешь SteamCMD:
steamcmd +login anonymous +force_install_dir /opt/terraria-server +app_update 105601 validate +quit
Оба пути кладут одинаковый набор файлов, дальше инструкция одна для обоих случаев.
Поднять сервер Terraria за пару минут
Готовый образ MAATRIX GAMES: NVMe, AMD EPYC, DDoS-защита, панель управления. Локации UK, US, RU. Оплата картой РФ, СБП или криптой.
Создать серверПервый запуск и создание мира через консоль
Запускаем сервер напрямую, без конфига — он сам проведёт тебя по интерактивному мастеру создания мира:
./TerrariaServer.bin
Консоль последовательно спросит:
- Max Players — максимум игроков одновременно (по умолчанию 8, для соло-сессии с друзьями хватает 4–8).
- Server Port — порт, по умолчанию 7777. Меняй, только если знаешь зачем.
- Automatically forward port with UPnP — на VPS отвечай
n, UPnP там не работает, порт пробрасывать будем вручную через firewall (см. ниже). - Server Password — пароль на вход, можно оставить пустым для публичного сервера или задать, если играете закрытой командой.
- World — выбор существующего мира (если уже есть
.wldфайл) или создание нового (n→ New World). - При создании нового мира спросит Choose World Size (1 — small, 2 — medium, 3 — large), Choose Difficulty (0 — Classic, 1 — Expert, 2 — Master, 3 — Journey) и Enter name for world.
После ответа на последний вопрос сервер сгенерирует мир (на large-мире это может занять пару минут) и запустится. В логе появится Server started, и можно подключаться из клиента Terraria через "Join via IP" на IP_сервера:7777.
Миры по умолчанию сохраняются в ~/.local/share/Terraria/Worlds/ — этот путь пригодится, если захочешь позже перенести мир на другой сервер или сделать ручной бэкап через cp.
Настройка serverconfig.txt
Отвечать на вопросы мастера каждый раз при перезапуске — так себе удовольствие. Правильный путь — один раз описать все параметры в serverconfig.txt и запускать сервер с флагом -config, минуя интерактив полностью.
Создай файл рядом с TerrariaServer.bin:
nano serverconfig.txt
Базовый рабочий конфиг:
world=/opt/terraria-server/1450/Linux/Worlds/MyWorld.wld
autocreate=2
worldname=MyWorld
difficulty=0
maxplayers=8
port=7777
password=
motd=Добро пожаловать на сервер!
worldpath=/opt/terraria-server/1450/Linux/Worlds
banlist=banlist.txt
secure=1
language=en-US
upnp=0
npcstream=60
Что важно понимать по ключам:
world— путь к конкретному файлу мира. Если файла ещё нет и указанautocreate, сервер создаст его сам при первом запуске с этим конфигом.autocreate— размер нового мира (1/2/3), работает только еслиworldуказывает на несуществующий файл.difficulty— 0 Classic, 1 Expert, 2 Master, 3 Journey. Обрати внимание: Expert и Master заметно жёстче для выживания в одиночку, для казуальной игры с новичками бери Classic.secure=1— включает дополнительные серверные проверки анти-чита, рекомендуется держать включённым на публичных серверах.upnp=0— на VPS UPnP всё равно бесполезен, порт открываем через firewall вручную.banlist— путь к текстовому файлу со списком забаненных, создастся автоматически при первом бане через консоль (ban <имя>).
Запуск с этим конфигом:
./TerrariaServer.bin -config serverconfig.txt
Если хочешь переопределить что-то на лету без правки файла, доступны те же параметры флагами командной строки: -port 7778, -players 16, -pass secret123, -worldname MyWorld, -motd "текст" — они имеют приоритет над значениями из serverconfig.txt.
Для более гибкого управления сервером (права, регионы, экономика, античит поверх ванильного) многие держат вместо ванильного дедика TShock — сторонний серверный софт с системой плагинов и правами доступа. Ставится отдельно поверх той же логики, но это уже тема для отдельного разбора, если появится интерес к продвинутой админке.
Проброс порта и firewall
По умолчанию Terraria слушает TCP-порт 7777 — UDP ей не нужен, это частая путаница с играми на других движках. Если на VPS уже стоит ufw, открой порт так:
sudo ufw allow 7777/tcp
sudo ufw status
Если фильтруешь трафик через iptables напрямую:
sudo iptables -A INPUT -p tcp --dport 7777 -j ACCEPT
На арендованном VPS обычно нет NAT-роутера между сервером и интернетом — в отличие от домашнего сервера, где пришлось бы лезть в настройки роутера и пробрасывать порт вручную через его веб-морду. На VPS достаточно открыть порт в firewall самой машины, и всё. Если провайдер даёт отдельную панель с облачным firewall (security groups) — не забудь продублировать правило и там, иначе локальный ufw не спасёт.
Хочешь сменить порт с дефолтного 7777 — меняй значение port= в serverconfig.txt и синхронно открывай новый порт в firewall, иначе клиенты просто не достучатся до сервера.
Автозапуск и управление сервером через systemd
Ручной запуск через SSH-сессию умирает, как только ты закрываешь терминал (если не завернул команду в screen/tmux). Правильный вариант для боевого сервера — systemd-юнит, который держит процесс живым и поднимает его заново после перезагрузки VPS.
Создай юнит:
sudo nano /etc/systemd/system/terraria.service
Содержимое:
[Unit]
Description=Terraria Dedicated Server
After=network.target
[Service]
Type=simple
User=terraria
WorkingDirectory=/opt/terraria-server/1450/Linux
ExecStart=/opt/terraria-server/1450/Linux/TerrariaServer.bin -config serverconfig.txt
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.target
Замени пользователя terraria на актуального (для отдельного непривилегированного пользователя под игровые сервисы — хорошая практика, но подойдёт и обычный пользователь без root). Дальше:
sudo systemctl daemon-reload
sudo systemctl enable terraria
sudo systemctl start terraria
sudo systemctl status terraria
Логи сервера при таком запуске смотри через:
sudo journalctl -u terraria -f
Минус systemd-подхода — стандартный ExecStart не даёт интерактивной консоли сервера (команды вроде save, kick, ban вводятся обычно прямо в открытую консоль процесса). Для управления запущенным сервером без прямого доступа к stdin обычно либо держат сервер в screen/tmux вместо systemd и подключаются к сессии командой (screen -r terraria), либо используют внешние инструменты для RCON-подобного управления через TShock, где команды доступны через сетевой протокол, а не только локальную консоль.
Поднять сервер Terraria за пару минут
Готовый образ MAATRIX GAMES: NVMe, AMD EPYC, DDoS-защита, панель управления. Локации UK, US, RU. Оплата картой РФ, СБП или криптой.
Создать серверЧастые вопросы
Игроки не могут подключиться, хотя сервер запущен.
В 9 случаях из 10 дело в закрытом порте — проверь ufw status и правила облачного firewall у провайдера. Также убедись, что клиент подключается именно на TCP-порт из serverconfig.txt, а не на дефолтный, если ты его менял.
Сколько реально нужно RAM для 10+ игроков?
Для небольшой компании 1 ГБ хватает. При росте до 10+ игроков и большом мире с активным фармом лучше взять 2 ГБ — прямой корреляции "1 игрок = N мегабайт" официально нет, но с запасом жить спокойнее, чем упереться в своп на боевом мире.
Можно ли перенести существующий мир с домашнего компьютера на сервер?
Да — скопируй файл .wld (и опционально .twld для карты) из папки Worlds на своей машине в worldpath на сервере, укажи точный путь в параметре world= конфига и перезапусти сервер.
Как забанить или замьютить игрока?
Через консоль сервера командой ban <имя> (нужен интерактивный доступ к процессу — см. пункт про screen/tmux выше) или через админ-инструменты TShock, если используешь его вместо ванильного дедика.
Обязательно ли обновлять сервер вручную при каждом патче игры?
Да, ванильный дедик не обновляется сам — скачивай новый архив с terraria.org (или обнови через steamcmd) и замени файлы, сохранив папку Worlds отдельно перед обновлением на всякий случай.