что такое rcon в майнкрафте
Что такое rcon в майнкрафте
Contents
Server Config
The default port is 25575.
Packet Format
Integers are little-endian, in contrast with the Minecraft protocol.
Field name | Field type | Notes |
---|---|---|
Length | int | Length of remainder of packet |
Request ID | int | Client-generated ID |
Type | int | 3 for login, 2 to run a command, 0 for a multi-packet response |
Payload | byte[] | NULL-terminated ASCII text |
1-byte pad | byte | NULL |
Note on ASCII text: Some servers reply with color codes prefixed by a section sign in their replies. (For example Craftbukkit for Minecraft 1.4.7 does this)
The section sign is sent by those servers as byte 0xA7 or 167. This is not part of the US-ASCII charset and will cause errors for clients that strictly use the US-ASCII charset.
Using the ISO-LATIN-1/ISO-8859_1 charset instead of the US-ASCII charset yields much better results for those servers.
Alternatively removeing byte 167 and one subsequent byte from the payload will remove all color tokens makeing the text more human readable for clients that do not subsequently colorize those tokens.
Packets
3: Login
Outgoing payload: password.
2: Command
Outgoing payload should be the command to run, e.g. time set 0
0: Command response
Incoming payload is the output of the command, though many commands return nothing, and there’s no way of detecting unknown commands.
The output of the command may be split over multiple packets, each containing 4096 bytes (less for the last packet). Each packet contains part of the payload (and the two-byte padding). The last packet sent is the end of the output.
Fragmentation
Maximum S->C packet payload length: 4096 (total: 4110)
The minecraft server can fragment responses across multiple packets. There’s no simple way to know when the last response packet has been received; approaches include:
Как настроить rcon на сервере майнкрафт
Для начала работы вам необходимо настроить RCON.
1. Откройте файл server.properties в корневой папке сервера (возможно, просто файл server).
2. Добавьте в файл следующие строки:
3. Найдите опцию enable-rcon и измените ее значение на true (enable-rcon=true)
4. Замените «ключ_магазина» на ключ магазина со страницы «мои магазины».
5. Сделайте рестарт сервера.
Отлично! Ваш сервер успешно настроен.
Для начала работы вам необходимо настроить RCON.
1. Откройте файл server.properties в корневой папке сервера (возможно, просто файл server).
2. Добавьте в файл следующую строку:
3. Найдите опцию enable-rcon и измените ее значение на on (enable-rcon=on)
4. Замените «ключ_магазина» на ключ магазина со страницы «мои магазины».
5. Сделайте рестарт сервера.
6. Укажите порт сервера в поле «порт RCON», в настройках магазина.
Отлично! Ваш сервер успешно настроен.
Необходимо скачать и настроить плагин Bungeecord RCON.
1. Установите на сервер Bungeecord плагин Yamler.
2. Установите на сервер Bungeecord плагин Bungeecord RCON.
3. Настройте Bungeecord RCON, согласно инструкции на странице плагина.
Отлично! Ваш сервер успешно настроен.
Пример успешно настроенного конфига Bungeecord RCON
Если необходимо подключиться к серверам в сети BungeeCord:
Если сервера в сети BungeeCord доступны как самостоятельные сервера и войти на эти сервера можно напрямую, то подключиться к данным серверам по RCON можно точно так же, как и к обычному серверу.
Если сервера в сети BungeeCord доступны только по 127.0.0.1:
Если сервера в вашей сети BungeeCord доступны только по локальному IP-адресу, то в данном случае необходимо сделать следующее:
1. Запустите новый сервер, выделив ему 200-300 МБ. В настройках сервера включите whitelist, чтобы на него никто не смог зайти.
2. Если вам необходимо выполнять команды на всех серверах, то подключите сервер к сети BungeeCord и перейдите к пункту ниже. Если вам необходимо выполнить команду, которая сделает изменения в БД (например, выдача прав), то просто установите на данный сервер плагин, реализующий данную команду. В этом случае сервер подключать к сети BungeeCord необязательно.
Все готово. Прекрасная работа!
Если необходимо выполнять какие-то команды на всех серверах в сети BungeeCord одновременно:
Для этого вам необходим плагин для BungeeCord: Command Sync.
Используя его, можно выполнять команды на всех серверах, соединенных с помощью BungeeCord.
1. Установите на сервер Bungeecord и сервера сети Bungeecord плагин Command Sync.
2. Настройте Command Sync, согласно инструкции на странице плагина.
3. Далее в настройках товара впишите команду выдачи. Например: sync console all op %username%.
4. Теперь настройте подключение к какому-нибудь любому серверу в сети Bungeecord.
Великолепно! Теперь, при покупке товара, будет выполняться команда /op %username% на всех серверах.
При успешной настройке RCON, при запуске сервера должна быть примерно следующая строка в файле лога запуска и в консоли: Если вы не видите данную строку при запуске, то:
Во всяком случае, если у вас не получается настроить RCON, обратитесь в техническую поддержку вашего хостинга.
San Andreas Multiplayer
Для начала работы вам необходимо настроить RCON.
1. Откройте файл server.cfg в корневой папке сервера (возможно, просто файл server).
2. Найдите строку rcon_password
3. Поставьте после нее пробел и напишите «ключ_магазина» со страницы «мои магазины».
4. Сделайте рестарт сервера.
5. Укажите порт сервера в поле «порт RCON», в настройках магазина.
Просто. Не правда ли?
ARK: Survival Evolved
Начиная с патча 185.0 ваш сервер поддерживает протокол RCON. Для начала работы его необходимо настроить.
1. Добавьте следующие параметры в команду старта сервера: Где «ключ_магазина» это ключ со страницы «мои магазины».
На этом все, вы молодец!
Для начала работы вам необходимо настроить RCON.
1. Откройте файл server.cfg (возможно, просто файл server).
2. Найдите строку rcon.password. Если такая строка отсутствует, то добавьте ее.
3. Установите значение строки, равное «ключ_магазина» со страницы «мои магазины». Должно получиться что-то вроде такого: 4. Сделайте рестарт сервера.
5. Укажите порт_сервера + 1 в поле «порт RCON», в настройках магазина. Например: у вашего сервера порт 10000, соответственно, в поле «порт RCON» необходимо указать 10001.
Отлично! Ваш сервер сервер Rust настроен.
Multi Theft Auto
Все готово. Прекрасная работа!
Остальные игры
Для начала работы вам необходимо настроить RCON.
1. Откройте файл server.cfg (возможно, просто файл server).
2. Найдите строку rcon_password, либо rcon.password
3. Установите ее значение, равное «ключ_магазина» со страницы «мои магазины».
4. Сделайте рестарт сервера.
5. Укажите порт сервера в поле «порт RCON», в настройках магазина.
Отлично! Ваш сервер успешно настроен.
Сервис создания площадок по приему
пожертвований для владельцев игровых серверов.
Соглашение об использовании сервиса.
Source RCON Protocol
The Source RCON Protocol is a TCP/IP-based communication protocol used by Source Dedicated Server, which allows console commands to be issued to the server via a «remote console», or RCON. The most common use of RCON is to allow server owners to control their game servers without direct access to the machine the server is running on. In order for commands to be accepted, the connection must first be authenticated using the server’s RCON password, which can be set using the console variable rcon_password.
Contents
Using Source RCON
By default, SRCDS listens for RCON connections on TCP port 27015. If the server’s port number is changed using the -port option, the RCON port will change as well. SRCDS will always refuse any RCON connection attempt originating from an IP on its banlist.
Once a connection is established, it must be authenticated with a SERVERDATA_AUTH packet before any commands can be issued (see «Requests and Responses» below).
An RCON connection can have multiple outstanding requests at any given time; it is not necessary to wait for a response to one request before writing another. These requests are guaranteed to be executed in the order they are received, and responses will be sent out in the same order. However, if an implementation of this protocol allows for requests to be executed asynchronously, there is the possibility that the responses could be sent out of order. In this case, responses can be identified using their ID. See «Multiple-packet Responses» and «SERVERDATA_RESPONSE_VALUE»
If the rcon_password cvar is written to for any reason, the server will immediately close all authenticated RCON connections. This happens even if the new value of rcon_password is identical to the old one. These connections will need to be re-opened and re-authenticated before any further commands can be issued. Connections which have not been authenticated yet are not dropped. If the password was changed remotely, the server will not respond to the command which caused the password to change.
Basic Packet Structure
Both requests and responses are sent as TCP packets. Their payload follows the following basic structure:
Field | Type | Value |
---|---|---|
Size | 32-bit little-endian Signed Integer | Varies, see below. |
ID | 32-bit little-endian Signed Integer | Varies, see below. |
Type | 32-bit little-endian Signed Integer | Varies, see below. |
Body | Null-terminated ASCII String | Varies, see below. |
Empty String | Null-terminated ASCII String | 0x00 |
Packet Size
The packet size field is a 32-bit little endian integer, representing the length of the request in bytes. Note that the packet size field itself is not included when determining the size of the packet, so the value of this field is always 4 less than the packet’s actual length. The minimum possible value for packet size is 10:
Size | Containing |
---|---|
4 Bytes | ID Field |
4 Bytes | Type Field |
At least 1 Byte | Packet body (potentially empty) |
1 Bytes | Empty string terminator |
Since the only one of these values that can change in length is the body, an easy way to calculate the size of a packet is to find the byte-length of the packet body, then add 10 to it.
The maximum possible value of packet size is 4096. If the response is too large to fit into one packet, it will be split and sent as multiple packets. See «Multiple-packet Responses» below for more information on how to determine when a packet is split.
Packet ID
Packet Type
The packet type field is a 32-bit little endian integer, which indicates the purpose of the packet. Its value will always be either 0, 2, or 3, depending on which of the following request/response types the packet represents:
Value | String Descriptor |
---|---|
3 | SERVERDATA_AUTH |
2 | SERVERDATA_AUTH_RESPONSE |
2 | SERVERDATA_EXECCOMMAND |
0 | SERVERDATA_RESPONSE_VALUE |
Note that the repetition in the above table is not an error: SERVERDATA_AUTH_RESPONSE and SERVERDATA_EXECCOMMAND both have a numeric value of 2.
See «Requests and Responses» below for an explanation of each packet type.
Packet Body
The packet body field is a null-terminated string encoded in ASCII (i.e. ASCIIZ). Depending on the packet type, it may contain either the RCON password for the server, the command to be executed, or the server’s response to a request. See «Requests and Responses» below for details on what each packet type’s body contains.
Empty String
Requests and Responses
SERVERDATA_AUTH
Typically, the first packet sent by the client will be a SERVERDATA_AUTH packet, which is used to authenticate the connection with the server. The value of the packet’s fields are as follows:
Field | Contains |
---|---|
ID | any positive integer, chosen by the client (will be mirrored back in the server’s response) |
Type | 3 |
Body | the RCON password of the server (if this matches the server’s rcon_password cvar, the auth will succeed) |
If the rcon_password cvar is not set, or if it is set to empty string, all SERVERDATA_AUTH requests will be refused.
SERVERDATA_EXECCOMMAND
This packet type represents a command issued to the server by a client. This can be a ConCommand such as mp_switchteams or changelevel, a command to set a cvar such as sv_cheats 1, or a command to fetch the value of a cvar, such as sv_cheats. The response will vary depending on the command issued.
Field | Contains |
---|---|
ID | any positive integer, chosen by the client (will be mirrored back in the server’s response) |
Type | 2 |
Body | the command to be executed on the server |
SERVERDATA_AUTH_RESPONSE
This packet is a notification of the connection’s current auth status. When the server receives an auth request, it will respond with an empty SERVERDATA_RESPONSE_VALUE, followed immediately by a SERVERDATA_AUTH_RESPONSE indicating whether authentication succeeded or failed. Note that the status code is returned in the packet id field, so when pairing the response with the original auth request, you may need to look at the packet id of the preceeding SERVERDATA_RESPONSE_VALUE.
SERVERDATA_RESPONSE_VALUE
A SERVERDATA_RESPONSE_VALUE packet is the response to a SERVERDATA_EXECCOMMAND request.
Field | Contains |
---|---|
ID | The ID assigned by the original request |
Type | 0 |
Body | The server’s response to the original command. May be empty string (0x00) in some cases. |
Multiple-packet Responses
Most responses are small enough to fit within the maximum possible packet size of 4096 bytes. However, a few commands such as cvarlist and, occasionally, status produce responses too long to be sent in one response packet. When this happens, the server will split the response into multiple SERVERDATA_RESPONSE_VALUE packets. Unfortunately, it can be difficult to accurately determine from the first packet alone whether the response has been split.
One common workaround is for the client to send an empty SERVERDATA_RESPONSE_VALUE packet after every SERVERDATA_EXECCOMMAND request. Rather than throwing out the erroneous request, SRCDS mirrors it back to the client, followed by another RESPONSE_VALUE packet containing 0x0000 0001 0000 0000 in the packet body field. Because SRCDS always responds to requests in the order it receives them, receiving a response packet with an empty packet body guarantees that all of the meaningful response packets have already been received. Then, the response bodies can simply be concatenated to build the full response.
Special thanks to Koraktor for discovering this trick.
Example Packets
The log below shows an example of communication between an RCON client and Source Dedicated Server. The client first sends an authentication request with password «passwrd», then executes commands «echo HLSW: Test», «log», and «status». Lines in red represent request packets, and lines in blue represent the server’s responses.