Rust+ на своём сервере
Companion — канал, через который приложение Раст+ говорит с игровым сервером. Если канал закрыт, пара в приложении не помогает: клиент долго крутит загрузку и пишет, что сервер недоступен.
Справка
- Уведомления и удалённые действия в Раст+ идут через этот канал.
- Снаружи открыт TCP-порт. Формула ниже, проверка — команда
app.info. - Приложение говорит с сервером по WebSocket.
- Сервер сам достучивается до
companion-rust.facepunch.com.
Пока канал мёртв, в приложении сервер офлайн, уведомления и команды не уходят.
Основные поля:
| Поле | Смысл |
|---|---|
app.port | TCP-порт канала, не ниже 10000 |
app.listenip | адрес, на котором сервер слушает |
app.publicip | адрес, который видит приложение |
companion.id | файл личности этого сервера |
WARNING
Выключение Раст+ — это +app.port -1 в параметрах запуска. Другие способы оставляют игрокам вечную загрузку вместо честной надписи «выключено».
Настройка работы
Обычному серверу достаточно, чтобы TCP-порт был доступен из интернета.
- Проброс на роутере или в панели хостинга.
- Разрешение в брандмауэре.
- Перезапуск после смены порта.
Порт по умолчанию считается так: берётся большее из игрового порта и порта RCON, затем прибавляется 67. В нашем start.bat игра на 28015, RCON на 28016, значит канал на 28083. Если порты не трогали и оба остались на схеме Facepunch, часто получается 28082. Не гадайте: app.info печатает порт, который слушает этот процесс.
Полезные команды
app.info
app.port 28083app.info показывает фактический порт. app.port задаёт другой, но не ниже 10000. После смены порта сервер перезапускают.
Если сеть с несколькими адресами:
app.listenip— на каком адресе слушать.app.publicip— какой адрес отдавать приложению, если оно стучится не туда.
И сам хост должен открывать companion-rust.facepunch.com. Без этого проверка Facepunch канал погасит.
Проверка работы
Проще всего спарить сервер в приложении Раст+. Если серверов много, тот же канал открывается любым WebSocket-клиентом, например Postman.
- Новый запрос WebSocket.
- Адрес вида
ws://203.0.113.111:28083. - 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 минут и поднимите их по очереди.