ProxyLab CLI
Headless network debugging из Terminal
proxylab запускает тот же proxy engine без GUI: печатает завершённые flows, сохраняет HAR и ProxyLab Session, применяет rules и умеет явно включать HTTPS interception.
Начало
Быстрый старт
proxylab доступен в PATH.proxylab --version
proxylab --help
proxylab --listen 127.0.0.1 --port 9090По умолчанию listener работает только на loopback. Чтобы проверить обычный HTTP-трафик через proxy:
curl --noproxy '' -x http://127.0.0.1:9090 http://example.com/Каждый завершённый или failed flow печатается в stdout. Остановить процесс можно через Ctrl-C.
HAR / Session
Capture и export
HAR и нативный ProxyLab Session можно сохранить одновременно после graceful shutdown:
proxylab --listen 127.0.0.1 --port 9090 --har ./capture.har --session ./capture.proxylabsession- HAR подходит для обмена с другими HTTP-инструментами.
- .proxylabsession читается и CLI, и GUI ProxyLab.
- Forwarded body не обрезается из-за capture limits; лимиты относятся только к сохранённым данным инспектора.
Sessions
proxylab session info ./capture.proxylabsession
proxylab session list ./capture.proxylabsessionCLI использует тот же versioned SessionArchive, что и приложение, поэтому формат совместим между headless и GUI workflow.
Opt-in
HTTPS inspection
Без дополнительного флага HTTPS идёт через обычный opaque CONNECT tunnel. Для расшифровки HTTPS сначала экспортируйте публичный Root CA, затем включите interception.
proxylab certificate info
proxylab certificate export ./proxylab-root.pem --format pem
proxylab --https-interceptПример curl, который доверяет CA только для одного запроса:
curl --noproxy '' -x http://127.0.0.1:9090 --cacert ./proxylab-root.pem https://example.com/Rules
CLI использует тот же versioned rules format и порядок выполнения, что ProxyCore.
proxylab rules init ./rules.json
proxylab rules validate ./rules.json
proxylab rules list ./rules.json
proxylab rules disable ./rules.json RULE_UUID
proxylab rules enable ./rules.json RULE_UUID
proxylab --rules ./rules.jsonPlugins
CLI никогда не подхватывает AppKit plugin directory и trust state автоматически. Для plugin runtime нужно явно передать оба пути.
proxylab plugins list --plugins-dir ./Plugins --plugin-state ./plugin-state.json
proxylab plugins approve dev.example.plugin --plugins-dir ./Plugins --plugin-state ./plugin-state.json --grants requestHeadersRead,requestHeadersWrite,responseHeadersWrite
proxylab plugins enable dev.example.plugin --plugins-dir ./Plugins --plugin-state ./plugin-state.json
proxylab serve --plugins-dir ./Plugins --plugin-state ./plugin-state.jsonЕсли bundle изменился после approval, ProxyLab требует reapproval и fail-closed не запускает изменённый plugin молча.
Справка
Основные команды
proxylab [serve] [--listen HOST] [--port PORT]
[--har PATH] [--session PATH] [--rules PATH]
[--plugins-dir PATH --plugin-state PATH]
[--https-intercept]
proxylab session info PATH
proxylab session list PATH
proxylab rules init PATH
proxylab rules validate PATH
proxylab rules list PATH
proxylab rules enable PATH RULE_UUID
proxylab rules disable PATH RULE_UUID
proxylab certificate info
proxylab certificate export PATH --format der|pem
proxylab plugins list ...
proxylab plugins approve ...
proxylab plugins enable ...
proxylab plugins disable ...Точная справка для установленной версии всегда доступна через proxylab --help и proxylab plugins --help.