SSH-туннелирование — это безопасный метод передачи данных, который позволяет нам устанавливать безопасное соединение через незащищенную сеть. SSH-туннели выполняют две основные функции:
Одной из основных функций туннеля SSH является переадресация портов, которая представляет собой метод установления безопасного канала между локальными и удаленными хостами через протокол SSH для пересылки данных между портами. Он позволяет пользователям получать доступ к службам на целевом хосте через безопасное соединение SSH без прямого доступа к хосту.
Некоторые инструменты удаленного терминала SSH, которые мы используем, такие как:, также могут настраивать функцию переадресации портов через визуальный интерфейс.
Переадресация портов SSH имеет широкий спектр применений, включая, помимо прочего:
переадресация локального порта:Данные передаются с локального компьютера на удаленный компьютер,Затем выполните потоковую передачу с удаленного компьютера обратно на локальный компьютер.
Подходит для ситуаций, когда вам необходим доступ к службам, находящимся за брандмауэром или доступным только на удаленном хосте.
Удаленная переадресация портов:Данные передаются с удаленной машины на локальную машину,Затем выполните потоковую передачу с локального компьютера обратно на удаленный компьютер.
Он подходит для ситуаций, когда службу на удаленном узле необходимо сопоставить с локальным узлом или другим компьютерам на удаленном узле необходимо получить доступ к службам на локальном узле.
Уведомление:Удаленная переадресация портов обычно нужно настроить на удаленном Хозяине.
Некоторые параметры, используемые SSH для переадресации портов, описаны ниже:
-C #Сжатие передачи и повышение эффективности передачи
-f #Воля SSH Передача осуществляется в фоновом режиме
-N #Установить тихое соединение
-g #В качестве шлюза при мультиплексировании доступа поддерживает множественный доступ к локальному порту прослушивания.
-L #переадресация локального порта
-R #Удаленная переадресация портов
-D #динамическая переадресация
-P #обозначение SSH порт
переадресация локального порта Формат команды:
ssh -L local_port:remote_host:remote_port username@ssh_server
в,local_port
локальная машинана устройствемониторпорт,remote_host
удален Служитьадрес сервера,remote_port
удален Служитьна устройстве Служитьпорт,username
удален Служить Имя пользователя для входа на сервер,ssh_server
используется для созданияSSHТуннель Служитьадрес сервера。
Удаленная переадресация портов Формат команды:
ssh -R remote_port:local_host:local_port username@ssh_server
в,remote_port
удален Служитьна устройствемониторпорт,local_host
是локальная машинаадрес сервера,local_port
是локальная машинана устройстве Служитьизпорт.
Пример 1. Чтобы перенаправить локальный порт 8080 на порт 80 удаленного сервера, вы можете использовать следующую команду:
ssh -L 8080:localhost:80 username@sshserver
Пример 2. Чтобы перенаправить порт 8080 удаленного сервера на локальный порт 80, вы можете использовать следующую команду:
ssh -R 8080:localhost:80 username@sshserver
среди этих команд,username@sshserver
используется для созданияSSHТуннель Начальная информация для входа。После создания SSH Туннель, вы можете получить доступ к порту 80 на удаленном сервере через локальный порт 8080 или получить доступ к локальному порту 80 через порт 8080 удаленного сервера.
Описание среды: Мы хотим создать туннель между серверами A и B и в конечном итоге получить доступ к службе http на сервере ServerC через туннель.
Служба http не включена на ServerA и ServerB. Служба http включена на ServerC и прослушивает порт 8080.
Здесь, если ServerA хочет получить доступ к службе http, работающей на ServerC, но из-за сетевых ограничений ServerA не может напрямую получить доступ к ServerC. Поэтому мы планируем использовать ServerB в качестве трамплина и использовать переадресацию портов SSH, чтобы позволить ServerA получить доступ к ServerC.
Мы открываем ssh-туннель на ServerA с помощью следующей команды:
ssh -N -L 8080:192.168.10.3:8080 root@192.168.10.2
Теперь сервер A начал прослушивать порт 8080. По умолчанию используется локальный адрес обратной связи. Если другим машинам необходим доступ к нему, вы можете указать IP-адрес или добавить параметр -g, чтобы включить режим шлюза.
[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, вы можете легко получить доступ к ограниченным службам, обходить сетевые ограничения и создавать прокси-серверы.
👍 Если вам понравилась эта статья, поставьте лайк и поделитесь ею с друзьями!