Установка игрового сервера Terraria на Linux: различия между версиями
Починка разметки: ссылки и жирный шрифт из Markdown, лишние обратные косые черты в коде, заголовки — проверка вики 13.11.2026 |
Статья переписана по результатам установки на чистой Ubuntu 24.04, добавлены снимки экрана |
||
| Строка 1: | Строка 1: | ||
Инструкция по установке выделенного сервера 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. Обновите систему == | |||
<pre>sudo apt update && sudo apt upgrade -y</pre> | |||
На свежей системе обновление идёт от 5 минут до получаса. По ходу могут появиться два места, где нужно ваше участие. | |||
'''Окно выбора раскладки клавиатуры.''' Обновление остановится и покажет окно «Configuring keyboard-configuration». Ничего менять не нужно: нажмите '''Enter''', в следующем окне снова '''Enter'''. | |||
<pre>sudo | [[Файл:Ubuntu-apt-keyboard-dialog.png|800px]] | ||
'''Сообщение о новом ядре.''' Если в конце вы видите «Pending kernel upgrade», система обновила ядро и ждёт перезагрузки. | |||
[[Файл:Ubuntu-apt-kernel-reboot.png|800px]] | |||
Перезагрузите сервер и подключитесь снова через минуту: | |||
<pre>sudo reboot</pre> | |||
== 2. Установите нужные пакеты == | |||
<pre>sudo apt install -y wget unzip screen</pre> | |||
* <code>unzip</code> распаковывает архив с сервером. | |||
* <code>screen</code> даёт серверу консоль. Без неё сервер Terraria постоянно занимает целое ядро процессора и не сохраняет мир при остановке — подробнее в шаге 6. | |||
== 3. Создайте пользователя для сервера == | |||
Игровой сервер не должен работать от root. Создайте для него отдельного пользователя и переключитесь на него: | |||
<pre>sudo useradd -m -s /bin/bash terraria | |||
sudo su - terraria</pre> | |||
Пароль этому пользователю не нужен: входить под ним по SSH никто не будет. | |||
== 4. Скачайте сервер == | |||
<pre>mkdir -p ~/terraria-server ~/worlds | |||
<pre>wget https://terraria.org/api/download/pc-dedicated-server/terraria-server- | 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</pre> | |||
4. | Число в имени архива — это версия игры без точек: <code>1458</code> означает 1.4.5.8. Версия сервера должна совпадать с версией игры у игроков. Ссылка на архив последней версии есть внизу главной страницы [https://terraria.org terraria.org] («PC Dedicated Server»); если версия изменилась, замените <code>1458</code> в командах на новый номер. | ||
< | |||
[[Файл:Terraria-linux-download.png|800px]] | |||
== 5. Настройте сервер == | |||
Создайте файл настроек: | |||
<pre>nano ~/terraria-server/serverconfig.txt</pre> | |||
Вставьте в него: | |||
<pre>world=/home/terraria/worlds/MyWorld.wld | |||
<pre>world | autocreate=2 | ||
worldname=MyWorld | |||
worldname= | difficulty=0 | ||
difficulty= | |||
maxplayers=8 | maxplayers=8 | ||
port=7777 | port=7777 | ||
password= | password= | ||
motd=Welcome to Terraria | motd=Welcome to my Terraria server! | ||
worldpath=/home/terraria/worlds</pre> | |||
Что означают параметры: | |||
1. | * <code>world</code> — файл мира. Если его нет, сервер создаст мир сам. | ||
<pre>nano | * <code>autocreate</code> — размер создаваемого мира: 1 — маленький, 2 — средний, 3 — большой. | ||
* <code>worldname</code> — название мира. | |||
* <code>difficulty</code> — сложность создаваемого мира: 0 — классика, 1 — эксперт, 2 — мастер, 3 — путешествие. | |||
* <code>maxplayers</code> — сколько игроков может зайти одновременно (от 1 до 255). | |||
* <code>port</code> — порт сервера. | |||
* <code>password</code> — пароль для входа. Пустое значение — вход без пароля. | |||
* <code>motd</code> — приветствие, которое видит игрок при входе. | |||
Сохраните файл (в nano: '''Ctrl+O''', '''Enter''', '''Ctrl+X''') и создайте скрипт запуска: | |||
<pre>nano ~/terraria-server/start-server.sh</pre> | |||
<pre>#!/bin/bash | <pre>#!/bin/bash | ||
cd /home/terraria/terraria-server/ | cd /home/terraria/terraria-server/bin | ||
exec ./TerrariaServer.bin.x86_64 -config /home/terraria/terraria-server/serverconfig.txt</pre> | |||
Сделайте его исполняемым: | |||
== | <pre>chmod +x ~/terraria-server/start-server.sh</pre> | ||
== 6. Запустите сервер первый раз вручную == | |||
<pre>~/terraria-server/start-server.sh</pre> | |||
Сервер создаст мир — на экране побегут проценты, для среднего мира это около минуты. Когда появятся строки «Listening on port 7777» и «Server started», сервер готов. Остановите его командой <code>exit</code>: он сохранит мир и завершится. | |||
[[Файл:Terraria-linux-first-run.png|800px]] | |||
Вернитесь к root: | |||
<pre>exit</pre> | <pre>exit</pre> | ||
== 7. Настройте автозапуск == | |||
Сервер Terraria рассчитан на работу с консолью. Если запустить его обычной службой без консоли, он постоянно занимает целое ядро процессора (у нас — 110% вместо 10%), а при остановке службы не сохраняет мир. Поэтому служба запускает сервер внутри <code>screen</code> и останавливает его командой <code>exit</code>. | |||
<pre>sudo nano /etc/systemd/system/terraria-server.service</pre> | <pre>sudo nano /etc/systemd/system/terraria-server.service</pre> | ||
Вставьте: | |||
<pre>[Unit] | <pre>[Unit] | ||
Description=Terraria Dedicated Server | Description=Terraria Dedicated Server | ||
| Строка 91: | Строка 123: | ||
[Service] | [Service] | ||
Type= | Type=forking | ||
User=terraria | User=terraria | ||
WorkingDirectory=/home/terraria/terraria-server | WorkingDirectory=/home/terraria/terraria-server | ||
ExecStart=/home/terraria/terraria-server/start-server.sh | 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 | Restart=always | ||
RestartSec=5 | |||
[Install] | [Install] | ||
WantedBy=multi-user.target</pre> | WantedBy=multi-user.target</pre> | ||
Строка <code>ExecStop</code> должна быть одной строкой, а <code>^M</code> в ней — это два обычных символа: «крышка» и буква M. | |||
== 8. Запустите сервер и проверьте его == | |||
<pre>sudo systemctl daemon-reload | <pre>sudo systemctl daemon-reload | ||
sudo systemctl enable terraria-server | sudo systemctl enable terraria-server | ||
sudo systemctl start terraria-server</pre> | sudo systemctl start terraria-server</pre> | ||
== | Через 20–30 секунд проверьте состояние службы и порт: | ||
<pre>sudo systemctl status terraria-server --no-pager -n 0 | |||
sudo ss -tln | grep 7777</pre> | |||
[[Файл:Terraria-linux-service-status.png|800px]] | |||
Управление службой: | |||
<pre>sudo systemctl stop terraria-server # остановить (мир сохраняется) | |||
sudo systemctl restart terraria-server # перезапустить</pre> | |||
При остановке сервер сохраняет мир — время изменения файла мира совпадает со временем остановки: | |||
[[Файл:Terraria-linux-stop-save.png|800px]] | |||
== 9. Консоль сервера == | |||
Чтобы вводить команды сервера, подключитесь к его консоли: | |||
<pre>sudo -u terraria screen -r terraria</pre> | |||
[[Файл:Terraria-linux-console.png|800px]] | |||
Полезные команды: <code>help</code> — список команд, <code>playing</code> — кто на сервере, <code>save</code> — сохранить мир, <code>say текст</code> — сообщение всем игрокам, <code>kick имя</code> и <code>ban имя</code> — выгнать и заблокировать игрока. | |||
< | |||
Чтобы выйти из консоли, не останавливая сервер, нажмите '''Ctrl+A''', затем '''D'''. Команду <code>exit</code> здесь не вводите: она остановит сервер, и служба через 5 секунд запустит его заново. | |||
== 10. | == 10. Откройте порт в файрволе == | ||
'''Внимание:''' сначала разрешите SSH и только потом включайте файрвол. Иначе связь с сервером оборвётся. Если SSH у вас на нестандартном порту, вместо первой команды выполните <code>sudo ufw allow НОМЕР_ПОРТА/tcp</code>. | |||
<pre>sudo ufw allow OpenSSH | |||
<pre> | sudo ufw allow 7777/tcp | ||
sudo ufw enable</pre> | |||
Если появится вопрос «Command may disrupt existing ssh connections. Proceed with operation (y|n)?», ответьте '''y'''. Проверьте результат: | |||
<pre>sudo | |||
<pre>sudo ufw status</pre> | |||
[[Файл:Terraria-linux-ufw.png|800px]] | |||
== 11. Зайдите на сервер == | |||
В игре выберите «Сетевая игра» → «Присоединиться по IP» (Multiplayer → Join via IP), затем персонажа, и введите IP-адрес сервера и порт 7777. | |||
== Обновление сервера == | |||
После выхода новой версии игры остановите сервер, скачайте новый архив и замените каталог <code>bin</code>. В командах подставьте номер новой версии вместо <code>НОМЕР</code>: | |||
<pre>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</pre> | |||
Файл настроек, скрипт запуска и миры при этом не затрагиваются. Скачанные архивы и каталоги с номерами старых версий в <code>~/terraria-server</code> после обновления больше не нужны, их можно удалить. | |||
== Где лежит мир == | |||
<pre>/home/terraria/worlds/</pre> | |||
<pre> | |||
Рядом с файлом мира сервер хранит его резервные копии с окончаниями <code>.bak</code> и <code>.bak2</code>. Чтобы перенести или сохранить мир, остановите сервер и скопируйте файл <code>.wld</code>. | |||
== Если что-то пошло не так == | |||
{| class="wikitable" | |||
! Что видите !! Причина и решение | |||
|- | |||
| При скачивании «404 Not Found» || Архива с таким номером версии нет. Возьмите действующую ссылку внизу страницы terraria.org. | |||
|- | |||
| Сервер занимает 100% одного ядра || Он запущен без консоли. Запускайте его через службу из шага 7 или внутри <code>screen</code>. | |||
|- | |||
| После перезапуска пропали последние постройки || Сервер был остановлен без команды <code>exit</code>. Останавливайте его только командой <code>sudo systemctl stop terraria-server</code>. | |||
|- | |||
| Служба в состоянии «failed» || Посмотрите причину: <code>sudo journalctl -u terraria-server -n 50 --no-pager</code>. Чаще всего это опечатка в пути или скрипт запуска не сделан исполняемым. | |||
|- | |||
| После обновления игры игроки не могут подключиться || Версия сервера отличается от версии игры. Обновите сервер. | |||
|- | |||
| Сервер запущен, но зайти не удаётся || Проверьте, что порт открыт (<code>sudo ufw status</code>) и что в игре указан порт 7777. | |||
|} | |||
'''Для размещения игровых серверов рекомендуем услуги [https://ark-hoster.ru ARK-HOSTER.RU]:''' | |||
* '''[https://ark-hoster.ru/vpsgame/ VPS/VDS серверы]''' — для небольших и средних серверов | |||
* '''[https://ark-hoster.ru/dedicated/ Выделенные серверы]''' — для высоконагруженных игровых серверов | |||
Текущая версия от 18:15, 14 ноября 2026
Инструкция по установке выделенного сервера 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:
- VPS/VDS серверы — для небольших и средних серверов
- Выделенные серверы — для высоконагруженных игровых серверов