Skip to content

Rust+ на своём сервере ​

Companion — канал, через который приложение Раст+ говорит с игровым сервером. Если канал закрыт, пара в приложении не помогает: клиент долго крутит загрузку и пишет, что сервер недоступен.

Справка ​

  • Уведомления и удалённые действия в Раст+ идут через этот канал.
  • Снаружи открыт TCP-порт. Формула ниже, проверка — команда app.info.
  • Приложение говорит с сервером по WebSocket.
  • Сервер сам достучивается до companion-rust.facepunch.com.

Пока канал мёртв, в приложении сервер офлайн, уведомления и команды не уходят.

Основные поля:

ПолеСмысл
app.portTCP-порт канала, не ниже 10000
app.listenipадрес, на котором сервер слушает
app.publicipадрес, который видит приложение
companion.idфайл личности этого сервера

WARNING

Выключение Раст+ — это +app.port -1 в параметрах запуска. Другие способы оставляют игрокам вечную загрузку вместо честной надписи «выключено».

Настройка работы ​

Обычному серверу достаточно, чтобы TCP-порт был доступен из интернета.

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

Порт по умолчанию считается так: берётся большее из игрового порта и порта RCON, затем прибавляется 67. В нашем start.bat игра на 28015, RCON на 28016, значит канал на 28083. Если порты не трогали и оба остались на схеме Facepunch, часто получается 28082. Не гадайте: app.info печатает порт, который слушает этот процесс.

Полезные команды ​

app.info
app.port 28083

app.info показывает фактический порт. app.port задаёт другой, но не ниже 10000. После смены порта сервер перезапускают.

Если сеть с несколькими адресами:

  • app.listenip — на каком адресе слушать.
  • app.publicip — какой адрес отдавать приложению, если оно стучится не туда.

И сам хост должен открывать companion-rust.facepunch.com. Без этого проверка Facepunch канал погасит.

Проверка работы ​

Проще всего спарить сервер в приложении Раст+. Если серверов много, тот же канал открывается любым WebSocket-клиентом, например Postman.

  1. Новый запрос WebSocket.
  2. Адрес вида ws://203.0.113.111:28083.
  3. Connect. Соединение либо поднимается, либо сразу обрывается.

Файл companion.id ​

В папке сохранений server/server1 лежит companion.id. Это личность сервера для Раст+.

  • Не отправляйте файл другим.
  • Не подкладывайте чужой.
  • Не копируйте один файл на второй сервер.
  • Не удаляйте без причины.
  • Не меняйте app.serverid.

Иначе уведомления отвалятся, и каждому придётся спаривать сервер заново.

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

Отключение Rust+ ​

В параметрах запуска:

+app.port -1

Это штатный выключатель. В меню клиента у игрока будет видно, что Раст+ на этом сервере выключен, а не «сервер думает».

Автоматическая проверка подключения ​

Сервер при старте проверяет, доступен ли Companion снаружи. Не прошла проверка — в логе строка:

Rust+ companion server connectivity test failed! Disabling Rust+ features.

Дальше Раст+ на этом запуске выключен. Что сделать:

  • порт не ниже 10000 и он реально открыт в интернет;
  • либо честно выключить канал через +app.port -1.

С одного IP Facepunch принимает не больше 10 таких проверок за 5 минут. Несколько серверов на одном адресе легко упираются в потолок. После превышения подождите 5 минут и поднимите их по очереди.

Опубликовано под лицензией MIT.
Данный проект не является официальной документацией Facepunch/Rust.
Это общественная база знаний, созданная для удобства администраторов и игроков.