SSH-туннель: примеры -L, -R и -D для проброса портов
Как выбрать локальный, обратный или SOCKS-туннель SSH: команды, проверка соединения, ошибки портов и публичный HTTPS для localhost.

SSH-туннель передаёт TCP-соединения через SSH. Чтобы выбрать команду, сначала определите, где приложение будет подключаться к входному порту: на вашем компьютере или на удалённом сервере.
| Задача | Режим | Где вход |
|---|---|---|
| Открыть удалённый HTTP-сервис на своём компьютере | -L |
На компьютере |
| Дать серверу доступ к локальному приложению | -R |
На сервере |
| Направлять запросы программы через SOCKS | -D |
На компьютере |
Для примеров с user@server.example нужен ваш обычный SSH-сервер, разрешающий соответствующий forwarding. Замените имя пользователя и домен. TunnelHunt используется только в отдельном примере публичного HTTPS ниже.
Локальный туннель: ssh -L
Допустим, на сервере работает панель по адресу 127.0.0.1:8080. На своём компьютере выполните:
ssh -N -o ExitOnForwardFailure=yes -L 127.0.0.1:18080:127.0.0.1:8080 user@server.example
Оставьте терминал открытым, а во втором выполните:
curl -i http://127.0.0.1:18080/
Первый 127.0.0.1 — вход на вашем компьютере. Второй относится к стороне сервера: именно сервер соединяется с целевым портом 8080. Здесь разные порты специально помогают не перепутать стороны. В браузере компьютера панель будет доступна на http://127.0.0.1:18080.
Обратный туннель: ssh -R
Теперь приложение работает на вашем компьютере на порту 3000. Сначала проверьте его локально:
curl -i http://127.0.0.1:3000/
ssh -N -o ExitOnForwardFailure=yes -R 127.0.0.1:18080:127.0.0.1:3000 user@server.example
Во второй SSH-сессии на сервере проверьте:
curl -i http://127.0.0.1:18080/
Серверный вход 18080 ведёт к приложению на компьютере. Такой пример не создаёт публичную ссылку: адрес входа привязан к loopback сервера. Доступ извне зависит от настроек sshd, включая GatewayPorts, и сетевых правил. Сам по себе -R также не выпускает сертификат HTTPS.
Динамический туннель: ssh -D
Если программа умеет SOCKS, конечный адрес можно выбирать для каждого запроса:
ssh -N -o ExitOnForwardFailure=yes -D 127.0.0.1:1080 user@server.example
Во втором терминале:
curl --socks5-hostname 127.0.0.1:1080 https://example.com/
Этот запрос пойдёт через SSH-сервер; вариант --socks5-hostname передаёт разрешение имени стороне прокси. Остальные приложения компьютера автоматически на него не переключаются. SOCKS-вход здесь доступен только локально.
Синтаксис трёх режимов и опции -N описаны в справочнике OpenSSH. -N оставляет соединение для туннелей без запуска удалённой команды.
Публичный HTTPS без своего SSH-сервера
Для демонстрации сайта или приёма вебхука нужен URL, который откроется у внешнего клиента. Если приложение слушает 127.0.0.1:3000, команда TunnelHunt выглядит так:
ssh -p 2222 -o ExitOnForwardFailure=yes -R 80:127.0.0.1:3000 tunnelhunt.ru
Сервис выведет HTTPS-адрес. Число 80 здесь выбирает HTTP-туннель TunnelHunt; это не инструкция открыть системный порт 80 на произвольном VPS. Оставьте соединение работающим и откройте выданную ссылку с телефона. Пошаговый запуск есть в руководстве по публичному localhost.
Если туннель не работает
| Сообщение или симптом | Что проверить |
|---|---|
Address already in use |
Входной порт занят: выберите другой |
administratively prohibited |
Forwarding запрещён настройками SSH-сервера или ключа |
connect failed: Connection refused |
Целевой сервис не запущен или указан неверный адрес |
| SSH подключился, но HTTP не работает | Проверьте целевой HTTP-порт с той стороны, которая к нему обращается |
| Туннель пропадает при простое | Проверьте сон компьютера и сетевые разрывы |
ExitOnForwardFailure помогает обнаружить ошибку создания проброса, но не подтверждает доступность приложения. Поэтому после запуска всегда нужен отдельный HTTP-запрос. Для журналов добавьте -v; для остановки нажмите Ctrl+C в терминале туннеля. Если требуется восстановление после обрыва, используйте инструкцию по autossh.
Готовы запустить свой первый туннель?
Начните использовать TunnelHunt бесплатно уже сегодня и откройте доступ к локальному серверу всего одной командой.
Зарегистрироваться бесплатно →По теме

autossh: постоянный SSH-туннель, переподключение и systemd
16 июня 2026 г.
Настройка autossh с ServerAliveInterval и systemd: восстановление SSH-туннеля, проверка подключения и диагностика Broken pipe без обещаний вечного uptime.

Проброс TCP-порта через SSH: удалённый доступ к локальному сервису
20 июня 2026 г.
Как создать TCP-туннель в TunnelHunt: резервирование порта Business, команда ssh -R, тест echo-сервера и отличие от HTTPS и UDP.

Как открыть localhost в интернете: публичный HTTPS через SSH
11 сентября 2026 г.
Пошагово открываем локальный сайт из интернета без настройки роутера: SSH-туннель, проверка ссылки, Docker, Vite и диагностика ошибок.

Почему для туннелей достаточно одного лишь SSH
21 мая 2025 г.
Многие сервисы для туннелирования требуют установки специальных клиентов. Мы в TunnelHunt считаем, что это излишне, и вот почему.