Сетевая отладка из терминала.
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.
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.
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.