seedex-agent
Эта страница описывает команду sdx на сервере.
Команда sdx
sdx на сервере построен вокруг трёх сервисов — vpn, proxy и link — и следует тому же шаблону, что на роутере:
sdxпоказывает статус сервера.sdx <service>показывает статус одного сервиса.sdx <service> <action>выполняет одно действие над одним сервисом.sdx <action>выполняет то же действие над каждым сервисом, у которого оно есть.sdx <service> helpперечисляет действия сервиса.
С роутера через sdx link <name> ... можно посмотреть статус сервера и выполнить ограниченный
набор команд vpn и proxy. Общие команды firewall и собственные команды link сервера через
Link недоступны.
Действия каждого сервиса
sdx <service> start,stopиrestartуправляют сервисом. Без сервисаsdx startзапускает все три сервиса. Установщик включает сервисы, но не запускает их, а VPN-протокол не запускается при добавлении первого клиента: выполнитеsdx startпосле первогоadd.
Действия сервера в целом
sdx firewall setupнастраивает файрвол под используемые порты,sdx firewall statusпоказывает файрвол.sdx versionпечатает версию установленного агента.
VPN
Сервис VPN держит серверы WireGuard (WG) и AmneziaWG (AWG), по одному на протокол: awg (AWG, параметры обфускации генерируются для каждой установки, так что никакие два сервера не выглядят одинаково для DPI) и wg (обычный WG для клиентов, которые не умеют AWG). У каждого протокола свои порт, подсеть и интерфейс; он поднимается, когда добавлен первый клиент.
Обычный WG распознаётся DPI: в сетях, где его фильтруют, handshake проходит, а туннель умирает через несколько секунд. Из России и похожих сетей используйте awg. wg подходит для сетей без такой фильтрации или чтобы проверить сервер до настройки клиентов.
sdx vpnпоказывает, работает ли сервис, и перечисляет настроенные протоколы с портами и клиентами.sdx vpn add <protocol> [<name>]добавляет клиента. Команда генерирует ключи и preshared key, назначает следующий свободный адрес, добавляет peer на работающий интерфейс без его перезапуска и записывает клиентский конфиг. Первый клиент заодно настраивает протокол, но не запускает его. Без имени клиенты нумеруются.sdx vpn remove <protocol> <name>отзывает клиента.sdx vpn remove <protocol> --allотзывает всех клиентов протокола.sdx vpn config [<protocol>]показывает endpoint, публичный ключ и, дляawg, параметры обфускации.sdx vpn export [<protocol> [<name>]] [-o <dir>]записывает клиентские конфиги в файлы.conf, которые принимаетsdx importна роутере. Файлы называются<server>-<protocol>-<name>.conf. С линком это не нужно: роутер забирает конфиги сам.sdx vpn rotate [<protocol>]заново генерирует ключи сервера и, дляawg, параметры обфускации. Все клиенты протокола перестают работать. Добавьте их заново.sdx vpn start,stopиrestartпринимают необязательный протокол.
Proxy
Сервис Proxy — сервер sing-box с протоколами, которые выбираете вы: vless (Reality), trojan, shadowsocks, shadowtls, vmess, hysteria2, tuic и anytls.
sdx proxyпоказывает, работает ли сервис, и перечисляет протоколы с их портами.sdx proxy add <protocol> <port>добавляет протокол на указанном порту. Команда генерирует учётные данные, открывает порт и перезапускает sing-box, а если он не работает — запускает.sdx proxy remove <protocol>удаляет протокол и закрывает его порт.sdx proxy configпоказывает учётные данные для подключения по каждому протоколу.sdx proxy export [<protocol>] [-o <dir>]выдаёт клиентский конфиг.json, который принимаетsdx importна роутере. Без протокола это один конфиг<сервер>-proxyсо всеми протоколами: клиент меряет их URL-тестом и идёт через самый быстрый. С протоколом — конфиг<сервер>-<протокол>только для него. Без-oконфиг печатается, так чтоsdx proxy export > proxy.jsonдаёт готовый файл.sdx proxy export [<protocol>] --linkвместо этого печатает ссылки для приложений на телефоне и компьютере. Ссылки для TLS-протоколов несутinsecure=1, потому что ссылка не может содержать сертификат; форма.jsonего закрепляет. У ShadowTLS формы ссылки нет.sdx proxy export [<protocol>] --link --base64кодирует те же ссылки как тело подписки — в том виде, в каком его отдают панели.sdx importна роутере принимает такое файлом или по HTTP.sdx proxy rotate [<protocol>]генерирует учётные данные заново для одного протокола или для всех. Порты не меняются.
Link
Сервис Link — API, с которым соединяется роутер. Через него роутер забирает конфиги и запускает sdx на сервере. Он слушает порт 8282, если установщику не указан другой:
SEEDEX_LINK_PORT=9443 wget -O - https://github.com/aggnostos/seedex-agent/releases/latest/download/install.sh | bashТокен роутера — это полный доступ к VPN и Proxy сервера. Один сервер — один круг доверия: не связывайте с одним сервером роутеры, которым не доверяете по отношению друг к другу. Link не открывает команды сервера firewall и link, но это не делает токен средством изоляции недоверенных роутеров.
Порт в этот момент записывается в юнит systemd, поэтому позже переменная ничего не меняет.
sdx linkпоказывает, работает ли сервис, порт, отпечаток сертификата и соединённые роутеры.sdx link add <router>соединяет роутер. Команда выпускает токен, затем печатает его вместе с отпечатком и точной командойsdx link addдля роутера. Токен показывается один раз.sdx link remove <router>отсоединяет роутер. Его токен перестаёт работать.sdx link rotateгенерирует сертификат API заново. Каждый роутер должен соединиться заново с полученным отпечатком.
