SSH-туннель: подробное объяснение функции переадресации портов!
SSH-туннель: подробное объяснение функции переадресации портов!

Введение

SSH-туннелирование — это безопасный метод передачи данных, который позволяет нам устанавливать безопасное соединение через незащищенную сеть. SSH-туннели выполняют две основные функции:

  • Передача данных между шифрованием SSH-клиента для SSH Служить.
  • Преодолевайте ограничения брандмауэра, чтобы завершить некоторые TCP-соединения, которые раньше не удавалось установить.

Одной из основных функций туннеля SSH является переадресация портов, которая представляет собой метод установления безопасного канала между локальными и удаленными хостами через протокол SSH для пересылки данных между портами. Он позволяет пользователям получать доступ к службам на целевом хосте через безопасное соединение SSH без прямого доступа к хосту.

Некоторые инструменты удаленного терминала SSH, которые мы используем, такие как:, также могут настраивать функцию переадресации портов через визуальный интерфейс.

Цель или сценарий применения

Переадресация портов SSH имеет широкий спектр применений, включая, помимо прочего:

  • Безопасный удаленный доступ:проходить SSH Переадресация портов обеспечивает безопасный доступ к Служить, расположенному за брандмауэром.
  • Обход сетевых ограничений:Когда локальная сеть ограничивает определенные Служитьпосещения,Можно использовать SSH Переадресация портов для обхода этих ограничений.
  • прокси-сервер:Динамическая переадресация портов может создать SOCKS прокси-сервер, используемый для доступа к определенным сетевым ресурсам через промежуточные узлы.
  • зашифрованное сообщение:SSH Переадресация портов обеспечиваетшифрованиеканал связи,Обеспечьте целостность данных во время передачи. Это очень важно для защиты конфиденциальной информации.,Особенно в нестабильной сетевой среде.
  • Доступ к внутренним сетевым ресурсам:верно Внутренние сетевые ресурсы компании или организации,Удаленный доступ к Безопасность может быть обеспечен через переадресацию портов SSH.,Никакого VPN или другой сложной конфигурации сети не требуется.
  • Удаленное управление и отладка:Системные администраторы или разработчики могут использовать SSH Переадресация порта в Удаленное управление и отладка Служить на устройстве Служить, не подвергая непосредственному воздействию эти Служить на устройстве Служить.

Тип переадресации портов

переадресация локального порта

переадресация локального порта:Данные передаются с локального компьютера на удаленный компьютер,Затем выполните потоковую передачу с удаленного компьютера обратно на локальный компьютер.

Подходит для ситуаций, когда вам необходим доступ к службам, находящимся за брандмауэром или доступным только на удаленном хосте.

Удаленная переадресация портов

Удаленная переадресация портов:Данные передаются с удаленной машины на локальную машину,Затем выполните потоковую передачу с локального компьютера обратно на удаленный компьютер.

Он подходит для ситуаций, когда службу на удаленном узле необходимо сопоставить с локальным узлом или другим компьютерам на удаленном узле необходимо получить доступ к службам на локальном узле.

Уведомление:Удаленная переадресация портов обычно нужно настроить на удаленном Хозяине.

Формат синтаксиса команды

Некоторые параметры, используемые SSH для переадресации портов, описаны ниже:

Язык кода:javascript
копировать
-C #Сжатие передачи и повышение эффективности передачи
-f #Воля SSH Передача осуществляется в фоновом режиме
-N #Установить тихое соединение
-g #В качестве шлюза при мультиплексировании доступа поддерживает множественный доступ к локальному порту прослушивания.
-L #переадресация локального порта
-R #Удаленная переадресация портов
-D #динамическая переадресация
-P #обозначение SSH порт

переадресация локального порта Формат команды:

Язык кода:javascript
копировать
ssh -L local_port:remote_host:remote_port username@ssh_server

в,local_portлокальная машинана устройствемониторпорт,remote_hostудален Служитьадрес сервера,remote_portудален Служитьна устройстве Служитьпорт,usernameудален Служить Имя пользователя для входа на сервер,ssh_serverиспользуется для созданияSSHТуннель Служитьадрес сервера。

Удаленная переадресация портов Формат команды:

Язык кода:javascript
копировать
ssh -R remote_port:local_host:local_port username@ssh_server

в,remote_portудален Служитьна устройствемониторпорт,local_host是локальная машинаадрес сервера,local_port是локальная машинана устройстве Служитьизпорт.

Примеры

Пример 1. Чтобы перенаправить локальный порт 8080 на порт 80 удаленного сервера, вы можете использовать следующую команду:

Язык кода:javascript
копировать
ssh -L 8080:localhost:80 username@sshserver

Пример 2. Чтобы перенаправить порт 8080 удаленного сервера на локальный порт 80, вы можете использовать следующую команду:

Язык кода:javascript
копировать
ssh -R 8080:localhost:80 username@sshserver

среди этих команд,username@sshserverиспользуется для созданияSSHТуннель Начальная информация для входа。После создания SSH Туннель, вы можете получить доступ к порту 80 на удаленном сервере через локальный порт 8080 или получить доступ к локальному порту 80 через порт 8080 удаленного сервера.

Расширить очки знаний

Пересылка между машинами

Описание среды: Мы хотим создать туннель между серверами A и B и в конечном итоге получить доступ к службе http на сервере ServerC через туннель.

  • ServerA_IP:192.168.10.1
  • ServerB_IP:192.168.10.2
  • ServerC_IP:192.168.10.3

Служба http не включена на ServerA и ServerB. Служба http включена на ServerC и прослушивает порт 8080.

Здесь, если ServerA хочет получить доступ к службе http, работающей на ServerC, но из-за сетевых ограничений ServerA не может напрямую получить доступ к ServerC. Поэтому мы планируем использовать ServerB в качестве трамплина и использовать переадресацию портов SSH, чтобы позволить ServerA получить доступ к ServerC.

Конфигурация следующая

Мы открываем ssh-туннель на ServerA с помощью следующей команды:

Язык кода:javascript
копировать
ssh -N -L 8080:192.168.10.3:8080 root@192.168.10.2

Теперь сервер A начал прослушивать порт 8080. По умолчанию используется локальный адрес обратной связи. Если другим машинам необходим доступ к нему, вы можете указать IP-адрес или добавить параметр -g, чтобы включить режим шлюза.

Язык кода:javascript
копировать
[root@ServerA ~]# netstat -tunlp|grep 8888                                             
tcp        0      0 127.0.0.1:8080         0.0.0.0:*               LISTEN      32464/ssh
tcp6       0      0 ::1:8080               :::*                    LISTEN      32464/ssh 

Примечание. В этом режиме возникнут проблемы с безопасностью данных, поскольку передача данных между ServerB и ServerC по-прежнему осуществляется в виде открытого текста, а передача данных между ServerA и ServerB защищена туннелем SSH, поэтому здесь нам сначала нужно рассмотреть ServerB и ServerB. Надежность сети ServerC.

Подвести итог

Таким образом, переадресация портов SSH — это мощный инструмент, который обеспечивает безопасную связь и пересылку данных между локальными и удаленными хостами через соединения SSH. Правильно настроив и используя функцию переадресации портов SSH, вы можете легко получить доступ к ограниченным службам, обходить сетевые ограничения и создавать прокси-серверы.

👍 Если вам понравилась эта статья, поставьте лайк и поделитесь ею с друзьями!

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose