Если вы задаетесь этим вопросом, то наверняка уже определились для чего нужен свой собственный сервер RUST, и в этой статье я постараюсь наиболее содержательно рассказать обо всех нюансах установки и настройки сервера.

Обращаю ваше внимание, что речь идет об официальной легальной steam-версии Rust experimental. На текущий момент (весна 2016) игра стоит символические 420 рублей, а я купил ее вообще с 50% скидкой, поэтому даже не рассматриваю пиратские репаки. RUST стОит своих денег, но мои впечатления об игре я постараюсь уместить в рамках обзора. Пропустить лирику и перейти к инструкции.

Для чего нужен собственный сервер RUST

  1. Для игры с друзьями без постороннего вмешательства со стороны третьих лиц.
  2. Для экпериментов.
  3. Для монетизации.

Может быть есть и еще какие-либо причины для открытия собственного сервера, однако я до них пока не додумался.

Лично для меня сервер RUST - это прежде всего площадка для экспериментов. Здесь я могу протестировать новые, вводимые в игру предметы, построить рейдоустойчивый дом и проверить его на прочность, высчитать количество ресурсов для крафта определенного количества предметов за определенное время, потренироваться в стрельбе по вертолетам и медведям из базуки и многое другое.

Имеет место и монетизация при помощи магазина вещей (и подкупа администратора :) ), но тут я мало что могу сказать, кроме того - конкуренция здесь на уровень выше, чем вы можете себе представить.

Игра с друзьями меня так же прошла мимо, так как с друзьями я замечательно играю и на чужих серверах, хотя не редки случаи, когда поднятый кем-либо сервер полностью предоставлен сам себе, наводнен читерами и после очередного обновления игры уже не запустится. В этом случае имеет смысл самому держать сервер и быть там царем и богом.

Так или иначе я однажды поднял свой сервер и теперь хочу поделиться этим опытом с вами.

Технические требования для сервера Rust Experimental

Вопреки всему я не знаю реальных требований к серверу, однако могу сказать, что важен прежде всего объем оперативной памяти. В зависимости от количества объектов на карте и количества активных игроков объем занимаемой памяти будет увеличиваться. Поэтому в зависимости от целей сервера рассчитывайте и конфигурацию.

В моем случае я запустил сервер на том же ПК, с которого я запускаю и клиента игры. У меня i5/8GB и этого оказалось более чем достаточно, чтобы комфортно играть против 20 вертолетов и стрелять в них ракетами с высоты 15-этажного дома с диаметром более 15-ти блоков. Никаких лагов не было замечено.

При загрузке сервера процессор используется на 100%, но потом в состоянии простоя жизнь на сервере расходует 4-6% процессорного времени моего айпятого.

Резюмируя, скажу, что тут у меня пробел в информации и если кто-то что-то выяснит - поделитесь в комментах, пожалуйста. Буду крайне признателен. В свою очередь, если что узнаю - дополню этот раздел.

Консоль SteamCMD

Говоря словами VALVE: консольный клиент Steam или SteamCMD - новая утилита для установки и обновления выделенных серверов через интерфейс командной строки. Мы будем использовать эту консоль для установки сервера rust, соответственно. Скачать данную консоль можно и нужно, разумеется, с официального сайта (https://developer.valvesoftware.com/wiki/SteamCMD:ru). Там же находится инструкция по установке, однако, не всем достаточно этой инструкции, чтобы запустить полноценный сервер.

Дистрибутив представлен архивом и для его установки достаточно распаковать содержимое в какой-нибудь каталог. Здесь сразу оговорюсь - для разных семейств операционных систем существуют свои дистрибутивы, но в рамках данной статьи мы рассмотрим установку и запуск серверов Rust experimental под управлением ОС MS Windows 10 и Debian 8 GNU/Linux (Squeeze).

Установка сервера Rust experimental на MS Windows 10

Установка ничем не отличается от установки на более ранние версии операционной системы Windows (ранних, но в пределах разумного). Кроме того, установку можно осуществлять на core-версии, которые не требуют приобретения лицензии - идеально для серверных платформ.

Предлагаю  создать каталог на каком-нибудь разделе локального жесткого диска, например: C:\SteamCMD и сюда распаковать содержимое свежего дистрибутива. Там на самом деле всего один исполняемый файл: steamcmd.exe, который после распаковки следует запустить. При первом запуске консоль сама скачает необходимые файлы и доведет себя до актуального состояния. Дождитесь пока выйдет приглашение к вводу команд.

Теперь можно устанавливать и обновлять наши приложения steam. Вот краткая инструкция как создать или обновить свой сервер Rust experimental:

  1. В первую очередь нужно авторизоваться в сервисе. Делается это консольной командой login anonymous. Аноним пароль не требует, поэтому использовать его несколько проще.
  2. Во вторую очередь нужно указать каталог, куда будет выполнена установка сервера. Это совершается при помощи команды force_install_dir <Адрес каталога>. Здесь есть одна особенность, на которую не все обращают внимание - желательно, чтобы сервер располагался на разделе жесткого диска, который наименее загружен другими приложениями, а так же обладающим наибольшей пропускной способностью (скорость чтения и записи). В моем случае SSD с виндой на борту - наиболее подходящий вариант, так как клиент игры установлен на другом жестком диске, что несомненно скажется на производительности в лучшую сторону. Итак, force_install_dir C:\res01 (название каталога может быть произвольным, каталог будет создан автоматически).
  3. И, наконец, в третью очередь нужно запустить установку (или обновление) приложения. Как и все steam-приложения сервер Rust experimental имеет свой идентификатор - 258550, поэтому особо не вдаваясь в детали, пишите команду в консоль: app_update 258550. Данная команда запустит скачивание и распаковку ресурсов сервера в каталог, указанный на втором шаге. В интернете вы можете столкнуться еще с более полной командой:  app_update 258550 -beta public. Все дело в том, что ранее было разделение на Rust legacy и Rust experimental. Последний считался тестовым, поэтому было разделение. Теперь legacy недоступен. Ключи и параметры (-beta) нужны теперь, чтобы указать какую версию устанавливать, ведь помимо публичного релиза - есть еще пререлиз и другие. Об этом подробнее написал здесь.

Итак, после того, как скачается парочка гигабайт файловых ресурсов, можно приступить к запуску сервера.

Опять же, в данной статье будет рассмотрены лишь запуск и управление оригинальным (классическим) сервером. Использование модификаций я опишу в других статьях, если на это будет спрос.

Для запуска сервера можно воспользоваться консолью или создать пакетный (batch) файл. Множество параметров запуска можно указать сразу же в команде запуска.

Минимально необходимо включить в bat-файл лишь команду: RustDedicated.exe -batchmode.

Но я создал файл C:\res01\start.bat следующего содержания:

RustDedicated.exe -batchmode +server.hostname "MyRustServer" +server.port 28015 -logFile "output.txt

Здесь я указал (абсолютно ненужные параметры) наименование сервера, порт и файл, куда сервер будет записывать свои логи.

Важно: обязательно нужно указывать разные порты для нескольких серверов, одновременно запущенных на одной машинке. То есть второй сервер, который бы я развернул на своем ПК, запускался бы командой с параметром +server.port 29015 или +server.port 28016

При старте сервера данной командой запустится генерация мира. В этом же окне доступны команды для управления сервером напрямую.

Проверяем - запускаем клиент игры и в консоли (F1) вводим команду: connect localhost:28015. Здесь localhost при условии, что клиент на той же машине, что и сервер, а порт (28015) мы указали в параметрах запуска сервера. У меня сразу же пошел коннект и через пару минут я уже тряс своими (не своими а своего ГГ) гениталиями на необитаемом острове.

Автоматизация процесса обновления сервера Rust experimental

Уровень автоматизации каждый для себя отмечает сам. И первое, что следует сделать - создать, опять же, пакетный файл (например, C:\SteamCMD\ update_res01.bat) следующего содержания:

@echo off
cls
echo "Update server Rust: RES01"
start /wait/high steamcmd.exe +login anonymous +force_install_dir C:\RES01 +app_update 258550 validate +quit

Теперь достаточно остановить сервер, запустить данный файл, дождаться окончания обновления и снова запустить сервер.

Однако можно пойти еще дальше и написать скрипт, который будет самостоятельно останавливать сервер, запускать обновление и запускать сервер. Потом данный сценарий повесить в планировщик задач и поставить на ежедневный ночной триггер. Однако, если сервер использует модификации - после очередного обновления моды перестанут работать. Автоматизировать процесс автоматического обновления еще и модов сервера - гораздо сложнее. Здесь я вам ничем не помогу, хотя может когда-нибудь и доберусь до такого маразма.

Установка сервера Rust experimental на Debian Squeeze

Процесс запуска сервера под управлением операционных систем linux не многим сложнее, чем под windows:

  1. Под суперпользователем (su) выполнить команду: apt-get install lib32gcc1. Это мы устанавливаем библиотеку, необходимую для GCC (GNU Compiler Collection) - коллекции компиляторов.
  2. Далее нам рекомендуется создать отдельного пользователя для SteamCMD, а не запускать консоль от имени суперпользователя. Создадим пользователя steam и войдем под ним, выполнив последовательно команды в консоли:  useradd -m steam, а затем su - steam.
  3. Создать каталог steamcmd и перейти в него: mkdir ~/steamcmd, а затем cd ~/steamcmd. Каталог будет создан в домашнем каталоге пользователя steam.
  4. Загрузить дистрибутив консоли: wget http://media.steampowered.com/client/installer/steamcmd_linux.tar.gz
  5. Распаковать: tar -xvzf steamcmd_linux.tar.gz. После распаковки гляньте какие файлы извлеклись командой ls.
  6. Ну и теперь запустить шелловский скрипт: ./steamcmd.sh. После этой команды мы увидим приглашение консоли Steam>. Дальше уже нужно вводить команды стимовской консоли, их вы уже знаете:
    • login anonymous
    • force_install_dir ./res02
    • app_update 258550
  7. После установки перейдем в каталог res02 (предварительно выйдя из консоли steam - quit) командой: cd ./res02 и глянем какие там есть файлы: ls. Среди файлов я увидел знакомый уже RustDedicated.
  8. Запускаем этот скрипт с аналогичными параметрами, как и под виндой, используя команду: ./RustDedicated -batchmode. При этом консоль вывела какие-то информативные сообщения, которые не содержат ни варнингов ни эрроров и я решил, что это победа.

Удостоверился я в работоспособности сервера, когда запустил клиента Rust experimental и подключился: connect 192.168.0.80:28015. Здесь адрес машинки с дебианом и порт по умолчанию. Подключение к серверу прошло успешно, однако сервер под линуксом выжрал много памяти - почти 5ГБ, в то время как на винде планку 1,3  не превышал, но копаться с оптимизацией я буду уже в другой раз.

Управление сервером Rust experimental

Прежде всего следует сделать себя администратором, или кого-то назначить администратором (и/или модератором). Сделать игрока админом можно, прописав команду ownerid <Steam64 ID> <Nik> прямо в окне консоли управления сервером. У меня, правда, хоть команда и была принята - админом я не стал, поэтому я воспользовался вторым способом, чтобы стать админом собственного сервера Rust experimental:

  1. Создал файл c:\res01\server\my_server_identity\cfg\users.cfg
  2. Вписал туда команду ownerid <Steam64 ID> <Nik>

Здесь важно узнать свой Steam64 ID, который совсем не лежит на поверхности. Здесь нужен именно 64-битный код, который можно получить на множестве ресурсов, например - steamid.xyz. Там достаточно указать свой логин steam.

После сохранения файла необходимо перезапустить сервер Rust.

  1. Остановка при помощи команды stop не закрыла у меня окно сервера, но при этом написало что он остановлен.
  2. Перезагрузка сервер осуществляется командой restart. При этом будет выдано 60-секундное ожидание и пойдет обратный отсчет. Интересно, что после остановки окно консоли сервера закрылось, а вновь не открылось.

Ниже приведу несколько полезных команд, которые нужно вводить уже в консоли в клиенте (F1), войдя под администратором. Полный список команд есть можно найти здесь.

  • Например, очень полезно установить время командой: env.time 8 (установит 8 утра)
  • Вызвать вертолет: heli.call или heli.calltome (прилетит к вам)
  • Или выдать себе предмет:  inventory.give wood 1000 (выдаст 1К дерева)

Список предметов с их идентификаторами можно найти здесь.

Важно, на данном сайте не везде правильно указаны идентификаторы - наследование признаков ведется через точку (не подчеркивание), то есть чтобы выдать себе разрывные патроны нужно прописать:

inventory.give ammo.rifle.explosive  64

Дальше вы уже сами разберетесь, что вам нужно и в каких количествах. А я на этом прощаюсь с вами и желаю вам прибыльных рейдов и отсутствия читеров. Надеюсь, что статья получилась достаточно всеобъемлющей и чем-то была для вас полезна.

На всякий пожарный прикладываю скрины установки, может что будет понятнее:

Добавить комментарий

Защитный код

Введите код с картинки в текстовое поле

Комментарии   

Поклонник
+7 # Поклонник 02.04.2016 18:48
Всех благ тебе дорогой! красавчик кратко и внятно
очень жду дальнейших статей по администрированию сервера
Ответить | Ответить с цитатой | Цитировать
Олег Колесников
+1 # Олег Колесников 10.04.2016 10:27
Подскажите, как запускать сервер Rust Experimental после обновления 105?
Ответить | Ответить с цитатой | Цитировать
Олег Колесников
0 # Олег Колесников 10.04.2016 10:40
Всё, разобрался. Первоначально сервер не полностью скачался.
Ответить | Ответить с цитатой | Цитировать
Андрей
+1 # Андрей 20.04.2016 07:24
Попробовал развернуть на следующей системе:
QX6700\ DDR2-8500 2G/4\ MSI GTX770 OC 2gb\ Asus P5B deluxe
При игре в 6 человек на сервере постройки вокруг одного из радов, активных перестрелках и вертолете. иногда подлагивает на выносе построек. Обычно в момент разрушения 3-5 кубов постройки. В остальном полет вполне нормальный.
Ответить | Ответить с цитатой | Цитировать
Rust wiki RustWiki
0 # Rust wiki RustWiki 20.06.2016 13:47
Есть генератор конфиг файлов, может полезно кому будет
rust-wiki.com/ConfigGenerator/
Ответить | Ответить с цитатой | Цитировать
Константин
0 # Константин 20.06.2016 16:33
Спасибо БОЛЬШОЕ!
Не поможете настроить сервер, чтобы могли подключаться мои друзья. Порт в модеме открыл, но ничего не помогло. Можем договориться об оплате. Переведу деньги на карту.
Ответить | Ответить с цитатой | Цитировать
Rust wiki RustWiki
0 # Rust wiki RustWiki 20.06.2016 16:35
Цитирую Константин:
Спасибо БОЛЬШОЕ!
Не поможете настроить сервер, чтобы могли подключаться мои друзья. Порт в модеме открыл, но ничего не помогло. Можем договориться об оплате. Переведу деньги на карту.

Открыть порт мало, необходимо еще пробросить его на комп.
Google > Проброс портов (Port Forwarding)
Ответить | Ответить с цитатой | Цитировать
LIZARDGOD
-7 # LIZARDGOD 05.07.2016 19:35
Молодец какой.. рассказал нам то, что и так уже несколько лет по всему инету рассказано. Лучше б написал как запустить сервер для предрелизной версии. \Когда указываю в бета-тесте предрелиз, игра обновляется, после этого иду обновить сервер, а он мне пишет, что уже все последнее стоит. Запускаю сервер, захожу в игру, жму коннект к своему серверу, а там мне пишут, что нужно обновить сервер
Ответить | Ответить с цитатой | Цитировать
Юрий Деменский
0 # Юрий Деменский 28.01.2017 07:33
Предложение исполнено, статья написана - seoskop.ru/.../...
Ответить | Ответить с цитатой | Цитировать
Максим Нуждин
0 # Максим Нуждин 21.07.2016 17:28
Как включить я понял,start bat все дела,а как выключить???
Ответить | Ответить с цитатой | Цитировать
Юра
0 # Юра 08.09.2016 23:04
Чувак от всего сердца прошу опиши подробнее в некоторых местах и напиши о модификациях,зарание спасибо!
Ответить | Ответить с цитатой | Цитировать
Юрий Деменский
+1 # Юрий Деменский 17.09.2016 12:19
Какие "некоторые" места тебя интересуют? У меня слабо развиты экстрасенсорные возможности.
Ответить | Ответить с цитатой | Цитировать
pirat_2-5
0 # pirat_2-5 07.11.2016 12:59
Алярм! После создания батника и попытки запустить его через staemcmd, получаю в ответ >>> command not found: C:\res01\start.bat Всё делал по инструкции, что не так подскажите?
Ответить | Ответить с цитатой | Цитировать
Юрий Деменский
0 # Юрий Деменский 28.01.2017 07:35
Читай внимательно - бат нужно запускать не через steamcmd а через WinCMD. А еще лучше запускать не батником, а просто через ВинКонсоль
Ответить | Ответить с цитатой | Цитировать
Дмитрий Степанюк
+2 # Дмитрий Степанюк 21.12.2016 20:35
Добрый вечер)
Сервер можно создавать только на лицензии или можно на пиратке?
Ответить | Ответить с цитатой | Цитировать
zummabox
0 # zummabox 13.01.2017 15:22
Помогите, почему то не создается папка с сервером
Ответить | Ответить с цитатой | Цитировать
Юрий Деменский
0 # Юрий Деменский 28.01.2017 07:35
Ну так создай вручную
Ответить | Ответить с цитатой | Цитировать
Ander
0 # Ander 03.02.2017 04:51
Наконец-то нашел гайд от знающего и доступно излагающего свои мысли автора. А то одни школьники со своими пиратками 2013 года. Благодарю, всё сделал и настроил буквально за 15 минут.
Ответить | Ответить с цитатой | Цитировать
Evil
0 # Evil 04.01.2018 09:55
а после остановки снова батником запускать его?
Ответить | Ответить с цитатой | Цитировать
Юрий Деменский
0 # Юрий Деменский 05.01.2018 07:15
Можно батником, а можно просто через сеанс cmd.exe, тогда и команды рестарта работают нормально
Ответить | Ответить с цитатой | Цитировать
Лёха
0 # Лёха 19.01.2018 09:30
Отличный гайд,уже сижу тестирую новую анимацию сишек
Ответить | Ответить с цитатой | Цитировать
Андрей
0 # Андрей 26.01.2018 05:14
Как вести полноценный лог файл, чтобы в отдельном файле был чат, в другом общий поток. В обоих случаях нужны даты для каждого события в логе. Мой сервер ведет лог файл, но там загрузочная информация только и никаких данных из общего потока, хотя команду в батнике вести лог файл прописывал.
Ответить | Ответить с цитатой | Цитировать
Андрей
0 # Андрей 26.01.2018 05:58
Цитирую Юрий Деменский:
Можно батником, а можно просто через сеанс cmd.exe, тогда и команды рестарта работают нормально

Я пробовал батник запустить через командную строку в режиме администратора - не запускает. Пробовал в чистом виде через командную строку - запускает, но не показывает сам процесс. Как корректно запустить, чтобы перезагрузка севера не сворачивала программу?
Как везти лог файл на чат и на команды, чтобы время прописывало у каждого события?
Ответить | Ответить с цитатой | Цитировать
андрей
0 # андрей 06.03.2018 00:57
Смогу ли я по этой схеме сделать сервак и играть с друзьями, если у меня нет внешнего ip aдреса?
Ответить | Ответить с цитатой | Цитировать
Юрий Деменский
0 # Юрий Деменский 06.03.2018 07:17
По этой схеме сервак создается в любом случае, а потом уже открывается доступ к нему извне. Я для этого использую Hamachi - отлично работает, но бесплатная версия ограничена по количеству коннектов, если не ошибаюсь. К тому же не у всех провайдеров отсутствие статического белого IP означает невозможность подключения. Когда я был на билайне - настраивали VPN стандартными средствами винды.
Ответить | Ответить с цитатой | Цитировать