Files
singbox_glue/docs/operations.md
T

2.5 KiB

Эксплуатация

Ротация credential

Интерактивно:

sudo vpn-egressctl import --stdin

Из защищённого файла:

sudo vpn-egressctl import --file /run/credentials/new-hysteria2.uri

Файл должен иметь режим 0600. Не используйте positional argument, environment variable, shell history или URL в тикете/логе.

Изменение policy

install -m 0600 new-policy.json /etc/vpn-egress/policy.json
vpn-egressctl check
vpn-egressctl diff
vpn-egressctl sync

Path unit следит только за URI. Policy применяется явным sync, чтобы случайное редактирование инфраструктурных параметров не вызвало неожиданный restart.

Состояние

vpn-egressctl status
vpn-egressctl status --json

State содержит только hashes, endpoint без auth, версию, время и результат.

Rollback

vpn-egressctl rollback

Команда проверяет last-good реальным sing-box, атомарно меняет конфиги местами, перезапускает сервис и выполняет тот же healthcheck. Повторный rollback возвращает конфигурацию, которая была активна до первого rollback.

После ручного rollback desired URI остаётся прежним, поэтому status показывает drift. Перед включением нового sync нужно либо исправить URI, либо осознанно вернуть desired state.

Реакция systemd.path

PathChanged запускает oneshot vpn-egress-sync.service. Одновременный ручной import сериализуется lock-файлом. Если новый URI некорректен, production config не меняется, а unit завершается с ошибкой, видимой в journal.

journalctl -u vpn-egress-sync.service -n 100 --no-pager
systemctl reset-failed vpn-egress-sync.service

Плановое обновление

Обновление policy или пакета внутри 1.13.19:

  1. vpn-egressctl check;
  2. vpn-egressctl diff;
  3. backup артефакта пакета;
  4. обновление;
  5. vpn-egressctl sync;
  6. vpn-egressctl doctor;
  7. контролируемый rollback-тест на staging.