TGViewer
METANIT.COM METANIT.COM @devnull22 · 5.82K subscribers
Post #2911 1.72K
Как работает SSH Tunnels Remote Port Forwarding
(продолжение предыдущего поста)

SSH Remote Port Forwarding («удалённое перенаправление портов») позволяет открыть порт на удалённом SSH-сервере, а трафик с этого порта перенаправить на локальный компьютер (или другую указанную цель). Это создаёт защищённый SSH-туннель между клиентом и сервером.
SSH Remote Port Forwarding позволяет безопасно «опубликовать» локальные сервисы в интернете через защищённый туннель, управляя трафиком между клиентом, сервером и внешними пользователями.

2. Основные компоненты на схеме

- SSH Client (клиент SSH) — локальная машина (например, компьютер Джеймса), где запущен сервис (веб-сервер на localhost:80).
- Public SSH Server (публичный SSH-сервер) — сервер, к которому подключается клиент для создания туннеля. Служит «мостом» между клиентом и внешним миром.
- Remote Side Private Network (удалённая приватная сеть) — сторона, откуда идёт запрос к публичному SSH-серверу (например, пользователь Кей).
- SSH Tunnel (SSH-туннель) — зашифрованный канал передачи данных между клиентом и сервером.

3. Процесс работы

Шаг 1. Установка SSH-соединения с параметром `-R`

Клиент (Джеймс) инициирует SSH-сессию с публичным сервером, используя команду:
ssh -R 0.0.0.0:8080:localhost:80 user@pub-ssh-server

Где:
- -R — флаг для удалённого перенаправления портов;
- 0.0.0.0:8080 — адрес и порт на SSH-сервере, которые будут слушать трафик (0.0.0.0 означает «все интерфейсы»);
- localhost:80 — локальный адрес и порт, куда перенаправляется трафик (веб-сервер Джеймса);
- user@pub-ssh-server — учётная запись и адрес SSH-сервера.

Шаг 2. Настройка GatewayPorts

По умолчанию SSH слушает только интерфейс 127.0.0.1 (loopback). Чтобы сервер принимал соединения со всех интерфейсов (0.0.0.0), нужно в файле sshd_config на SSH-сервере установить:
GatewayPorts yes

Альтернативно можно использовать GatewayPorts clientspecified, чтобы сервер использовал адрес из команды -R.

Шаг 3. Перенаправление трафика

1. Пользователь (Кей) на удалённой стороне отправляет запрос на публичный SSH-сервер (curl public-ssh-server:8080).
2. SSH-сервер получает запрос на порт 8080 и перенаправляет его через туннель на локальный компьютер Джеймса (localhost:80).
3. Веб-сервер Джеймса обрабатывает запрос и возвращает ответ через тот же туннель.
4. Публичный SSH-сервер передаёт ответ пользователю (Кей).

4. Ключевые особенности

- Безопасность: весь трафик зашифрован благодаря SSH-туннелю.
- Доступность локальных сервисов: сервисы, доступные только локально (например, веб-сервер на localhost:80), становятся доступны извне через публичный SSH-сервер.
- Гибкость: можно пробрасывать любые порты (базы данных, API, RDP и т. д.).
- Контроль доступа: доступ к перенаправленным портам можно ограничить настройками SSH-сервера.

5. Пример из схемы

- Джеймс запускает веб-сервер на localhost:80.
- Создаёт SSH-туннель с публичным сервером, пробрасывая порт 8080 на свой веб-сервер.
- Кей может открыть public-ssh-server:8080 в браузере и увидеть веб-страницу Джеймса, хотя сервер работает только в локальной сети.
Telegram METANIT.COM Как работает SSH Tunnels Remote Port Forwarding (продолжение в следующем посте)
  • ❤ 13
  • 👍 2
  • 👏 1
More from @devnull22
  1. Mar 19, 2026Добавил в руководство по JavaScript главу про работу с датами и временем с помощью Tempora…
  2. Mar 19, 2026Роскомнадзор перестал полностью справляться с блокировками в интернете Роскомнадзор (РКН)…
  3. Mar 18, 2026Минцифры опубликовало законопроект о государственном регулировании ИИ. Закон должен начать…
  4. Mar 18, 2026Microsoft призвала разработчиков создавать ИИ-приложения в Electron на Windows 11 Microsof…
  5. Mar 18, 2026Oracle анонсировала проект Detroit, который будет развиваться в составе OpenJDK и нацелен…
  6. Mar 17, 2026Вышла новая версия платформы Java - JDK 26. JDK 26 — краткосрочная версия с поддержкой Pre…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →