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 — 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 заново. Каждый роутер должен соединиться заново с полученным отпечатком.