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:
vpn-egressctl check;vpn-egressctl diff;- backup артефакта пакета;
- обновление;
vpn-egressctl sync;vpn-egressctl doctor;- контролируемый rollback-тест на staging.