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