Я хочу для обхода брандмауэра интернет-провайдера, и успешно сделал это на Windowsи Android, отправив набор заголовков HTTP и используя метод CONNECT для установления SSH-соединения с удаленным (пример ) SSH-сервер.
POST http://host.com/ HTTP/1.0[crlf][crlf]
CONNECT host.com@[host_port] [protocol][crlf][crlf]
Затем я использую это соединение как прокси SOCKS5 и освобождаюсь от ограничений, наложенных провайдером.
Теперь я хочу сделать то же самое на Linux, но я не могу найти альтернативу Linux, а мой ноутбук довольно слаб, чтобы постоянно работать с VirtualBox. Какие-либо предложения? Я понимаю, что для этого, вероятно, нет хорошего графического интерфейса, но я не боюсь консоли
Предлагаемый дубликат, Подключение к хосту с помощью SSH-клиента в Linux через прокси обеспечивает почти точное решение вашего требования. Небольшая настройка дает эти два решения, которые работают для меня через прокси-сервер Squid (, один из которых модифицирован, чтобы разрешить туннелирование на порт 22, помните ),
Сначала установите соответствующий пакет для инструмента ProxyTunnel . В Debian/Raspbian это «proxytunnel»
.Теперь вы можете напрямую подключаться по ssh через HTTP CONNECT
прокси и к целевому устройству
ssh -o ProxyCommand='proxytunnel -p proxyHost:proxyPort -d %h:%p' user@remoteHost
Если вы собираетесь регулярно подключаться к remoteHost
, рассмотрите возможность добавления записи в свой~/.ssh/config
Host remoteHost
ProxyCommand proxytunnel -p proxyHost:proxyPort -d %h:%p
В Cygwin (Windows )есть другой пакет «connect -proxy» с немного другим синтаксисом
ssh -o ProxyCommand='connect-proxy -d -H proxyHost:proxyPort %h %p' user@remoteHost
И
Host remoteHost
ProxyCommand connect-proxy -d -H proxyHost:proxyPort %h %p