2026 SSH через корпоративные HTTP CONNECT-прокси к арендованной Mac mini ProxyMac
Команды безопасности всё чаще выдают ноутбуки, где без тикета наружу в интернет открыты только TCP 443 (иногда 80), а ваша Mac mini ProxyMac в Гонконге, Японии, Корее, Сингапуре или США по-прежнему слушает TCP 22 для SSH. Редко виноват «сломанный SSH у ProxyMac»: трафик браузера идёт через туннель HTTP CONNECT на forward-прокси, а голый ssh в терминале этот контракт не знает. Статья объясняет, кому реально нужен CONNECT по сравнению с полнотуннельным VPN, сравнивает четыре режима транспорта в матрице с оценками (таймауты аутентификации прокси 30–120 с, потолки SCP 512 КБ–8 МБ/с на части DLP-путей), даёт готовый блок ProxyCommand с OpenBSD nc в macOS, предупреждает об устройствах TLS MITM, переписывающих ключи хоста, ведёт восьмишаговый сценарий от PAC до пакетных доказательств и показывает связку с jump-хостами, zero-trust-маршрутизацией и настройкой TCP keepalive, чтобы сессии жили после успешного CONNECT.
Сверьтесь с справочным центром и ценами, выберите регион заранее и не тратьте неделю на доказательство прокси вместо нагрузки.
Когда из офиса уходит только HTTPS, а mini всё ещё говорит по SSH
Компании сходятся на явных forward-прокси, чтобы классифицировать URL, сканировать вредоносное ПО и применять DLP к каждому исходящему байту. Это рационально — и конфликтует с разработчиками, которым нужны git push, rsync и ssh -L на сборочный хост. Симптомы повторяются: ssh -vvv замирает на Connecting to ... port 22, а curl https://example.com сразу успешен — браузер подхватил HTTPS_PROXY, оболочка нет.
- Сплит-туннель VPN может показывать порт 22 только в «полном» режиме туннеля — зафиксируйте фактический режим от IT.
- WPAD может указывать на разные прокси по SSID; гостевой Wi-Fi — не офисный PAC.
- SOCKS5 из браузерных расширений не попадает в терминал без стабильного экспорта переменных.
Матрица транспорта: прямой SSH, CONNECT, полный VPN, сплит VPN
| Режим | Кто открывает TCP 22 | Типичная добавка задержки | Признак сбоя |
|---|---|---|---|
| Прямо с доверенного домашнего ISP | Ноутбук → mini | 0 мс налога прокси | Таймеры простоя CGNAT — см. статью про keepalive |
| HTTP CONNECT через явный прокси | Прокси → mini | 3–15 мс на хоп | Петли HTTP 407 |
| Полнотуннельный VPN | Концентратор VPN → интернет | 8–40 мс | Политические маршруты всё ещё обходят регион mini |
| Сплит VPN + корпоративный прокси | Ноутбук → прокси → mini | сумма обоих | SCP медленнее интерактивной оболочки |
ProxyCommand в macOS с nc -X connect
В macOS есть OpenBSD nc с -X connect для классического HTTP CONNECT. Замените плейсхолдеры на host:port из документации IT — не угадывайте со скриншота.
Host proxymac-jp-via-proxy
HostName jp-node.proxymac.com
User youruser
ProxyCommand nc -X connect -x corporate-proxy.corp.local:8080 %h %p
ServerAliveInterval 30
ServerAliveCountMax 4
Если прокси требует Basic-учётные данные, предпочитайте помощник, который внедряет их в CONNECT без паролей открытым текстом в world-readable файлах — часто оборачивают corkscrew-подобные утилиты в небольшой подписанный бинарник вместо ~/.ssh/config.
TLS-инспекция, PAC и иллюзия «в Chrome работает»
Аппарат TLS-инспекции может завершать исходящий TLS и при этом разрешать CONNECT к произвольным портам — или блокировать CONNECT не на 443 без тикета. Если IT разрешает только CONNECT :443, до :22 этим путём не дойти; нужен whitelist 22 для публичного имени mini или перенос SSH на 443/tcp под контролируемую точку (не в стандартных образах ProxyMac — отдельная инженерия).
ssh предупреждает, сверьте отпечатки вне канала — MITM часто выпускает корпоративные УЦ, которым ноутбук уже доверяет, поэтому предупреждение едва заметно.
Восемь шагов, прежде чем винить регион
- Снять PAC из «Системные настройки → Сеть → Подробнее → Прокси» (macOS 15) и сохранить URL.
- Проверить CONNECT командой
nc -vz -X connect -x proxy:port mini-host 22. - Сравнить RTT с VPN и без через
ping, если разрешён ICMP — иначеssh -Gдля разрешённой конфигурации. - Наложить keepalive по статье про TCP keepalive, чтобы прокси не убирал простаивающий CONNECT.
- Проверить MTU по руководству PMTUD, если массовое копирование замирает посередине.
- Попробовать jump, если у bastion в DMZ чистый 22 — см. статью о bastion.
- Зеркалировать конфиг в Git с замаскированными именами прокси для аудита.
- Эскалировать с pcap только после того, как шаги 1–6 дважды воспроизводимы в один день.
Складывать ProxyCommand и ProxyJump без циклов
Многие ставят небольшую bastion в DMZ с исходящим 22, пока ноутбуки остаются заблокированными. ProxyJump bastion на первый хоп, ProxyCommand на ногу ноутбук→корпоративный прокси — или наоборот, если сама bastion ходит через CONNECT. ASCII-схема в runbook, чтобы дежурный не перепутал вложенность. Статья о jump показывает имена Host, переживающие блоки Match exec.
Вопросы и ответы
Починит ли один HTTPS_PROXY ssh? Сам по себе нет — OpenSSH читает свои директивы; переменные среды действуют только на инструменты, которые их учитывают.
Почему GitHub SSH работает, а ProxyMac нет? Разные имена хостов могут попадать в разные корзины политики прокси — сравните метки категорий в админке.
Наследуют ли демоны OpenClaw настройки CONNECT? LaunchAgent нужны явные EnvironmentVariables; export в ~/.zprofile не действует — см. устранение неполадок OpenClaw.
Почему Mac mini ProxyMac остаётся правильной целью за корпоративными прокси
Apple Silicon M4 mini в HK / JP / KR / SG / US дают долгоживущее имя хоста для whitelist на прокси-устройстве вместо погони за эфемерными облачными ВМ с ротацией DNS после autoscale. Когда CONNECT и ключи хоста стабильны, вешайте агентов автоматизации, сборки Xcode или сканеры соответствия на тот же металл, уже одобренный security. Региональные цены для обоснования второй mini под DR и VNC для запросов TCC, которые один SSH не нажмёт.
Одна mini — один whitelist
HK / JP / KR / SG / US · стабильные SSH-эндпоинты