Files
singbox_glue/docs/operations.md
T

2.7 KiB
Raw Permalink Blame History

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

Ротация 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 показывает status=rolled_back, а doctor сообщает config-drift, потому что production config отличается от заново отрендеренного desired state. Перед новым 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.