Document server link generation and channel addition commands
This commit is contained in:
1 parent
f1ff394f83
commit
52dadf8b23
3 files changed
+32
-5
No files matched your search
@@ -73,7 +73,7 @@ Servers, clients, networks, маршруты, allowed_keys и NTP добавля
|
||||
| nat | tun_ifname, tun_ip (IPv4), nat_via, port_start/end, forward=proto:node_id:IPv4:internal_port:external_port |
|
||||
| tcp_proxy_client | enabled, tun_name/ip, mtu, via_node, socks/http_proxy enabled/addr, forward=port -> IPv4:port |
|
||||
| tcp_proxy_server | tcp_recv_buf, fib, so_mark, netif, bind_ip, connect_timeout |
|
||||
| chatserver / chat | db_path, join_password, allowed_groups, storage sizes, headless/audio binds и chat_setting API |
|
||||
| chatserver / chat | db_path, add_key, allowed_groups, storage sizes, headless/audio binds и chat_setting API |
|
||||
| ntp | enabled, server, interval |
|
||||
| stun | enabled, server |
|
||||
| reality | enabled, server_name, dest, short_id/short_ids, public/private_key, version, time_window, relay_idle_timeout, fingerprint |
|
||||
@@ -93,9 +93,17 @@ auto_sockets принимает no/yes/android, auto_socket_protocols — tcp/ud
|
||||
|
||||
`print_config` выводит снимок в config/INFO. Private/signing keys заменены признаками наличия;
|
||||
сети выводятся независимо от количества firewall rules.
|
||||
`print_chatserver_invite_link` печатает bootstrap utun:// v3 в config/INFO и stderr при включённом чате:
|
||||
channel_id=join_key=0, до 32 конфигурационных адресов, socketId=0, SNI до 63 байтов.
|
||||
Это не invite конкретного канала и не снимок фактического bind/NAT.
|
||||
`[chatserver] add_key` — 32 ненулевых случайных байта (64 HEX-символа), разрешающие запросить
|
||||
добавление сервера в произвольный канал приглашающего. При загрузке из файла отсутствующий ключ
|
||||
создаёт и атомарно сохраняет config_updater; заданный ошибочный/нулевой ключ отклоняется.
|
||||
Ключ постоянный: перезапуск сохраняет ссылку, явная замена запрещает новые операции по старой ссылке.
|
||||
Уже добавленные каналы от смены ключа не удаляются. Старое join_password больше не используется.
|
||||
|
||||
Серверную ссылку собирает `chat_server_link_build` через общий кодек из текущей проекции NODEINFO:
|
||||
публичный ключ, socket_id, IP/port, протоколы и REALITY плюс add_key. Отдельный тип SERVER версии 0x04
|
||||
не содержит ID канала или временного JOIN-ключа. Получить её можно через `chatcli server_link`;
|
||||
foreground CLI также выводит её в stderr после старта. Обычный лог содержит только node/endpoints,
|
||||
полную ссылку и add_key в него не выводим.
|
||||
|
||||
`update_config_keys` — устаревшее добавление global-секции с двумя проверенными HEX-ключами в конец файла.
|
||||
Возвращает 0/-1, проверяет запись/закрытие, но не атомарно и не согласует node_id; штатный путь — config_updater.
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
Модуль обеспечивает согласованные X25519-ключи и node_id в INI-файле до его загрузки ядром.
|
||||
При включённом REALITY также обеспечивает private_key и непустой список short_ids.
|
||||
При наличии [chatserver] или global.chatserver_enabled обеспечивает постоянный add_key сервера.
|
||||
Публичный контракт приведён в config_updater.h, общий разбор строк — в config_ini.h.
|
||||
|
||||
## Выбор значений
|
||||
@@ -21,6 +22,9 @@
|
||||
Некорректный/пустой/отсутствующий short_ids заменяется четырьмя случайными ID.
|
||||
Корректный список сохраняется целиком. Ошибка одного элемента отклоняет весь список.
|
||||
- При выключенном REALITY его параметры не исправляются.
|
||||
- Отсутствующий [chatserver] add_key генерируется через RAND_bytes (32 байта) и сохраняется
|
||||
той же атомарной заменой файла. Заданный неверный/нулевой ключ вызывает отказ без изменения файла:
|
||||
автоматическая ротация секрета запрещена. Повторный запуск сохраняет корректный ключ побайтно.
|
||||
|
||||
HEX проверяется посимвольно до декодирования. Частичные результаты проверки не применяются.
|
||||
Встроенный NUL и физические строки длиннее 1022 байтов до LF запрещены; CR учитывается в этом пределе.
|
||||
|
||||
@@ -106,11 +106,26 @@ invite_nodes <ch_id>
|
||||
и список nodes (node_id, имя).
|
||||
Пример: chatcli invite_nodes 12345
|
||||
|
||||
server_link
|
||||
Получить серверную utun:// ссылку текущего узла с постоянным ключом добавления.
|
||||
Требуются включённый chatserver, сохранённый add_key и опубликованные адреса.
|
||||
Ссылка секретная; старые серверные ссылки версии 0x03 нужно получить заново.
|
||||
Пример на сервере: chatcli server_link
|
||||
|
||||
server_add <ch_id> <utun://...>
|
||||
Добавить выбранный свой канал на сервер по его серверной ссылке.
|
||||
Клиент создаёт обычное приглашение через себя и передаёт его серверу вместе с кодом доступа.
|
||||
Сервер проверяет код и выполняет обычный JOIN по установленному соединению.
|
||||
Ответ adding=true означает запуск; итог приходит событием connect_result через listen.
|
||||
Повторное добавление не создаёт второй канал. Неверный/сменённый ключ даёт результат -10.
|
||||
Пример на клиенте: chatcli server_add 12345 'utun://...'
|
||||
|
||||
connect <utun://...>
|
||||
Подключиться к каналу по invite-ссылке.
|
||||
Декодирует ссылку, сохраняет pubkey и адреса узла в БД,
|
||||
запускает процесс подключения.
|
||||
Пример: chatcli connect utun://AgR0ZXN0...
|
||||
Принимает только ссылку CHANNEL версии 0x04; серверная ссылка требует server_add.
|
||||
Пример: chatcli connect 'utun://...'
|
||||
|
||||
create <name>
|
||||
Создать новый канал. Генерирует ключи X25519/Ed25519,
|
||||
|
||||
Reference in new issue
Block a user