моя контактная информация
Почтамезофия@protonmail.com
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Сопоставление портов, также известное как переадресация портов, — это технология, которая перенаправляет поток данных с одного сетевого порта на другой сетевой порт. Обычно это используется для служб, работающих за брандмауэром или маршрутизатором, что позволяет внешним устройствам получать доступ к определенным службам во внутренней сети. Сопоставление портов может выполняться внутри локальной сети или между сетями с использованием таких протоколов, как SSH.
Переадресация локального порта:
8080
сопоставлен с удаленным сервером80
порт, чтобы его можно было передать локальноlocalhost:8080
Получите доступ к веб-сервису удаленного сервера.Удаленная переадресация портов:
2222
Сопоставление портов с локальным компьютером22
порт, чтобы к службе SSH локального компьютера можно было получить доступ через удаленный сервер.Динамическая переадресация портов:
Удаленный доступ к внутренним сервисам: Благодаря сопоставлению портов из внешней сети можно получить доступ к определенным службам внутри компании или домашней сети, например веб-серверам, серверам баз данных и т. д.
Проникнуть через брандмауэр: посредством сопоставления портов вы можете обойти ограничения брандмауэра и получить доступ к службам, заблокированным брандмауэром.
Повышение безопасности: Сопоставление портов через туннель SSH может зашифровать передачу данных и повысить безопасность.
Балансировка нагрузки и прокси: Балансировщики нагрузки и прокси-серверы часто используют технологию сопоставления портов для распределения и пересылки трафика для повышения надежности и производительности обслуживания.
Предположим, что на удаленном сервере работает веб-служба, и порт, который она прослушивает,80
. Чтобы получить доступ к этой службе с вашего локального компьютера, создайте сопоставление локальных портов, используя следующую команду SSH:
ssh -L 8080:localhost:80 user@remote-server
Эта команда изменит настройки локального компьютера.8080
Сопоставление портов с удаленным сервером80
порт.Теперь откройте его в локальном браузере.http://localhost:8080
, что эквивалентно доступу к веб-службе удаленного сервера.
Существует несколько основных причин для сопоставления портов (или перенаправления портов) во время разработки:
Доступ к защищенным сервисам: Некоторые службы на машине разработки могут прослушивать только локальный хост (127.0.0.1
) и не может быть доступен напрямую извне. Благодаря сопоставлению портов эти службы можно открыть и сделать доступными извне.
безопасность : переадресация портов через SSH-туннель обеспечивает безопасный доступ к внутренним службам без прямого раскрытия службы. Туннель SSH шифрует передачу данных для дополнительной безопасности.
Легко отлаживать : В процессе разработки разработчикам может потребоваться доступ к нескольким службам, работающим на машине разработки. Благодаря сопоставлению портов доступ к этим службам можно получить напрямую локально, без необходимости каждый раз входить на компьютер разработки.
Обход ограничений брандмауэра или сети : В некоторых сетевых средах могут существовать брандмауэры или сетевые ограничения, препятствующие прямому доступу к службам на компьютере разработки. Благодаря туннелированию SSH эти ограничения можно обойти и получить доступ к сервисам.
Многопользовательский доступ: Если нескольким разработчикам требуется доступ к одной и той же службе, сопоставление портов позволяет каждому разработчику получить доступ к службе в своей локальной среде без входа непосредственно на компьютер разработки.
например:
Предположим, на вашей машине разработки работает сервер Jupyter Notebook. Он прослушивает порт 7860, но разрешает только локальный доступ. С помощью следующей команды SSH вы можете сопоставить порт 7860 машины разработки с вашим локальным портом 7860:
ssh -p 37367 [email protected] -CNg -L 7860:127.0.0.1:7860 -o StrictHostKeyChecking=no
Таким образом, вы можете получить к нему доступ в своем локальном браузере. http://127.0.0.1:7860
для просмотра и использования сервера Jupyter Notebook на вашей машине разработки.
Машина разработки имеет собственнуюоткрытый портиПубличный IP, можно использовать для нашего локального SSH-соединения.
Но в машине разработки, то есть на сервереЗапустить программуКогда его программа находится на серверев определенном портуВ ходе выполнения
Итак, если мы хотим увидеть эффект работы программы на локальном сервере, нам нужно создатьСопоставление портов, когда браузер откроет локальный порт, перенаправьте его на порт сервера для просмотра.
ssh -p 37367 [email protected] -CNg -L {本地机器_PORT}:127.0.0.1:{开发机_PORT} -o StrictHostKeyChecking=no
Например:
ssh -p 37367 [email protected] -CNg -L 7860:127.0.0.1:7860 -o StrictHostKeyChecking=no
Эта команда используется для создания SSH-туннеля. Ниже приводится подробное объяснение каждой части:
ssh
: команда, используемая для инициации SSH-соединения.-p 37367
: укажите номер порта удаленного хоста для подключения (в данном примере порт 37367).[email protected]
: имя пользователя (root) и имя хоста (ssh.intern-ai.org.cn).-CNg
: Комбинация опций: -C
: Активировать сжатие.-N
: Скажите SSH не выполнять удаленные команды, а только переадресацию портов.-g
: разрешить удаленным хостам подключаться к перенаправленному порту.-L 7860:127.0.0.1:7860
: выполнить переадресацию локального порта и сопоставить порт 7860 локального компьютера с портом 7860 из 127.0.0.1 удаленного хоста.-o StrictHostKeyChecking=no
: отключить проверку ключа хоста, что предотвращает появление интерактивных подсказок при первом подключении.Таким образом, эта команда создаст туннель SSH между локальным компьютером и удаленным хостом, перенаправит локальный порт 7860 на порт 7860 удаленного хоста и не будет выполнять удаленные команды или проверять ключ хоста.
Как показано ниже:
После сопоставления портов отображается программа, работающая на порту сервера 7860.