Как создать свой сервер Rust
Это руководство объясняет, как установить и настроить выделенный сервер Rust на вашем VPS или выделенном Linux-сервере, с возможностью добавления плагинов с помощью Oxide (uMod).
Заказать сервер
Для размещения вашего сервера Rust HostMyServers предлагает несколько вариантов, подходящих для игр. Rust — очень требовательная игра: отдавайте предпочтение быстрому процессору и большому объёму RAM (минимум 8 ГБ, больше для публичного сервера).
- Performance VPS - Выделенные ресурсы и быстрые процессоры, идеально для Rust
- NVMe VPS - Для небольшого сервера или тестового сервера
- Эко выделенные серверы - Для серверов с большим количеством игроков
- Выделенные серверы Performance - Максимальная производительность
Предварительные требования
Указанные ниже ресурсы соответствуют потребностям сервера и не учитывают ресурсы, уже используемые операционной системой, установл енным ПО или другими службами на машине. Рассчитывайте на 200 Мбит/с на 100 игроков при tickrate 30 (оценка сообщества). Требуемая конфигурация рассчитана на vanilla-сервер (без расширений и плагинов).
- SSH-доступ как root или пользователь с правами sudo
- 64-разрядная система Linux (рекомендуется Debian 12/13 или Ubuntu 22.04/24.04)
- Активный брандмауэр: nftables (рекомендуется), iptables или ufw (используйте только один инструмент брандмауэра одновременно)
- Минимум 8 ГБ RAM (рекомендуется 32 ГБ)
- Около 20 ГБ свободного места на диске (рекомендуется SSD NVMe)
- Порты 28015 UDP, 28017 UDP и 28082 TCP доступны, а порт 28016 TCP (RCON) доступен только с вашего фиксированного IP-адреса
Требуемая конфигурация
| Компонент | Минимум | Рекомендуется |
|---|---|---|
| RAM | 8 ГБ | 32 ГБ и более |
| CPU | 2 ядра | 4 ядра или больше, высокая частота |
| Хранилище | 20 ГБ SSD | 40 ГБ SSD NVMe |
| Сеть | 300 Мбит/с | 1 Гбит/с |
Движок Rust зависит в основном от производительности одного ядра: процессор с высокой частотой важнее большого количества ядер.
Обновление системы
sudo apt update && sudo apt upgrade -y
Установка зависимостей
Установите необходимые пакеты:
sudo apt install -y wget tar unzip screen lib32gcc-s1
Создание выделенного пользователя
По соображениям безопасности создайте выделенного пользователя:
sudo adduser --disabled-password --gecos "" rust
Используемые порты
| Порт | Протокол | Назначение |
|---|---|---|
| 28015 | UDP | Игра |
| 28017 | UDP | Запросы (список серверов) |
| 28016 | TCP | RCON (удалённое администрирование), следует ограничить вашими IP-адресами |
| 28082 | TCP | Rust+ (мобильное приложение) |
Настройка брандмауэра
Откройте необходимые порты. Порт RCON (28016 по TCP) должен быть ограничен вашим фиксированным IP-адресом: замените ВАШ_IP.
С UFW
sudo ufw allow 28015/udp
sudo ufw allow 28017/udp
sudo ufw allow from ВАШ_IP to any port 28016 proto tcp
sudo ufw allow 28082/tcp
sudo ufw reload
С iptables
sudo iptables -A INPUT -p udp --dport 28015 -j ACCEPT
sudo iptables -A INPUT -p udp --dport 28017 -j ACCEPT
sudo iptables -A INPUT -p tcp -s ВАШ_IP --dport 28016 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 28082 -j ACCEPT
sudo iptables-save | sudo tee /etc/iptables/rules.v4
Сохранение правил после перезагрузки требует пакета iptables-persistent.
С nftables
Эти команды используют таблицу inet filter и цепочку input, присутствующие по умолчанию в /etc/nftables.conf в Debian.
sudo nft add rule inet filter input udp dport 28015 accept
sudo nft add rule inet filter input udp dport 28017 accept
sudo nft add rule inet filter input ip saddr ВАШ_IP tcp dport 28016 accept
sudo nft add rule inet filter input tcp dport 28082 accept
(echo "flush ruleset"; sudo nft list ruleset) | sudo tee /etc/nftables.conf
Порт RCON (28016) позволяет администрировать сервер: никогда не открывайте его для всех. Если у вас нет фиксированного IP-адреса, не открывайте этот порт и используйте SSH-туннель.
Установка SteamCMD
Войдите как пользователь rust:
sudo -u rust bash
cd ~
Создайте директории и загрузите SteamCMD:
mkdir -p ~/steamcmd ~/rust-server
cd ~/steamcmd
wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
tar -xzf steamcmd_linux.tar.gz
Загрузка сервера Rust
Запустите установку сервера (идентификатор приложения 258550):
./steamcmd.sh +force_install_dir /home/rust/rust-server +login anonymous +app_update 258550 validate +quit
Если установка прерывается с ошибкой, просто повторно запустите ту же команду: SteamCMD продолжит с того места, где остановился.
По завершении отобразится сообщение Success! App '258550' fully installed.
Скрипт запуска
Скрипт запуска зависит от типа карты. Выберите одну из двух версий ниже.
Сгенерированная карта (по умолчанию)
Создайте скрипт запуска:
nano ~/rust-server/start.sh
#!/bin/bash
cd /home/rust/rust-server
export LD_LIBRARY_PATH="/home/rust/rust-server/RustDedicated_Data/Plugins/x86_64:$LD_LIBRARY_PATH"
exec ./RustDedicated -batchmode \
+server.ip 0.0.0.0 \
+server.port 28015 \
+server.queryport 28017 \
+server.identity "server1" \
+server.level "Procedural Map" \
+server.seed 12345 \
+server.worldsize 3500 \
+server.maxplayers 100 \
+server.hostname "Мой Rust Сервер" \
+server.description "Добро пожаловать на мой сервер Rust" \
+server.saveinterval 300 \
+rcon.port 28016 \
+rcon.password "ChangeMe" \
+rcon.web 1 \
+app.port 28082
Пользовательская карта
Чтобы использовать пользовательскую карту, размещённую в интернете, замените параметры генерации карты на +server.levelurl:
nano ~/rust-server/start.sh
#!/bin/bash
cd /home/rust/rust-server
export LD_LIBRARY_PATH="/home/rust/rust-server/RustDedicated_Data/Plugins/x86_64:$LD_LIBRARY_PATH"
exec ./RustDedicated -batchmode \
+server.ip 0.0.0.0 \
+server.port 28015 \
+server.queryport 28017 \
+server.identity "server1" \
+server.levelurl "https://ваш_домен.ru/моя_карта.map" \
+server.maxplayers 100 \
+server.hostname "Мой Rust Сервер" \
+server.description "Добро пожаловать на мой сервер Rust" \
+server.saveinterval 300 \
+rcon.port 28016 \
+rcon.password "ChangeMe" \
+rcon.web 1 \
+app.port 28082
Сделать скрипт исполняемым
Независимо от выбранной версии, сделайте скрипт исполняемым:
chmod +x ~/rust-server/start.sh
Выберите длинный и уникальный пароль rcon.password. Любой, кто его знает, может администрировать ваш сервер.
Основные параметры
| Параметр | Описание |
|---|---|
server.identity | Имя папки сохранений сервера (внутри server/) |
server.level | Тип карты (Procedural Map для сгенерированной карты) |
server.seed | Seed генерации карты |
server.worldsize | Размер карты (от 1000 до 6000) |
server.levelurl | Адрес загрузки пользовательской карты (если задан, server.worldsize и server.seed необходимо удалить) |
server.maxplayers | Максимальное количество игроков |
server.hostname | Публичное имя сервера |
server.description | Описание, отображаемое в списке серверов |
server.saveinterval | Интервал автоматического сохранения (секунды) |
rcon.port | Порт RCON |
rcon.password | Пароль RCON |
rcon.web | 1 = RCON WebSocket (используется инструментами администрирования) |
app.port | Порт Rust+ |
Пр и первом запуске генерация карты занимает несколько минут. Сервер готов, когда в логах появляется Server startup complete.
Первый запуск
~/rust-server/start.sh
Чтобы остановить сервер, используйте Ctrl+C или команду quit через RCON.
Установка Oxide (uMod)
Oxide позволяет добавлять плагины на ваш сервер. Остановите сервер, затем:
cd ~/rust-server
wget https://github.com/OxideMod/Oxide.Rust/releases/latest/download/Oxide.Rust-linux.zip
unzip -o Oxide.Rust-linux.zip
При следующем запуске будет создана папка oxide/. Плагины помещаются в oxide/plugins/.
Каждое обновление Rust перезаписывает файлы Oxide. После каждого обновления сервера переустанавливайте Oxide командой unzip -o, приведённой выше.