Я не предлагаю помещать ваше устройство в демилитаризованную зону ни при каких обстоятельствах, если только вы действительно не знаете, что делаете, и не можете должным образом защитить устройство и сеть, окружающую его.
Существует программное обеспечение, которое может эмулировать локальную сеть через Интернет, называемое LogMeIn Hamachi. Установив и включив его на хосте, вы можете получить к нему доступ, войдя в VLAN в любом месте интернета.
Хотя я не обязательно вижу проблему с переадресацией портов.
Другой вариант - использовать встроенную функцию переадресации портов SSH. Если есть другой SSH-хост, доступный из Интернета (назовем его «Хост 1») в той же локальной сети, что и хост, к которому вы пытаетесь подключиться (Хост 2), вы можете выполнить команду, которая сбрасывает соединение с вашего компьютера. (через определенный локальный порт) через узел 1, а узел 1 направляет ваш трафик на узел 2 без переадресации в своей локальной сети.
Команда выглядит следующим образом и выполняется на локальном компьютере, который вы пытаетесь использовать для подключения к Хосту 2
ssh -L [local-port-to-open]:[local-IP-of-Host-2-according-to-Host-1]:[port-to-connect-to-on-Host-2-from-Host-1] [user-of-Host-1]@[Host-1-address]
Это откроет порт на вашей машине (ваш аргумент [local-port-to-open]
), которым управляет SSH, послав любой трафик с этого порта через зашифрованный туннель, сделав мой [user-of-Host-1]@[Host-1-address]
аргументы для Host-2, как указано в [local-IP-of-Host-2-according-to-Host-1]:[port-to-connect-to-on-Host-2-from-Host-1]
. Этот метод называется локальной переадресацией портов (я не очень понимаю переадресацию удаленных портов).
Например, скажем, я хочу подключиться к хосту 2, который не перенаправлен через порт, из моей локальной кофейни, используя хост 1, который переадресован через порт, чтобы сбросить соединение в его локальной сети. Обратите внимание, что это откроет PTS на удаленном компьютере, но его можно игнорировать, пока вы не захотите закрыть этот туннель. Затем вы можете просто закрыть сеанс терминала, как обычно.
Общедоступный IP- адрес хоста 1 - 201.31.103.212
(NAT, который инкапсулирует хост 1 и хост 2) на порту 1337
для SSH. Хост 2 в локальной сети имеет локальный IP-адрес 192.168.254.40
и использует порт 22
для SSH. Имя пользователя для входа на хост 1 - fish
.
Хорошо, я просто скажу, что у меня не используется локальный порт 8080
и я могу временно использовать его для этой демонстрации.
Команда, которую я бы сформировал, такова:
ssh -L 8080:192.168.254.40:22 fish@201.31.103.212
Теперь это открывает порт 8080
на вашем локальном компьютере и отправляет на 192.168.254.40
на порт 22
(хост 2) в соответствии с хостом 1 (это fish@201.31.103.212
)
Теперь, если вы хотите подключиться по SSH к Host 2, все, что вам нужно сделать, это указать свой компьютер на порту 8080
. Допустим, что логин пользователя Host 2 - turtle
ssh turtle@127.0.0.1 -p 8080
SSH управляет вашим портом 8080
и отправляет ваш запрос SSH на хост 1, который отправляет его на хост 2. Обратите внимание, что в отличие от использования 127.0.0.1
, вы также можете просто использовать localhost
. Это просто предпочтение.
Другое использование переадресации портов SSH - прокси.
Сценарий: я в школе со своим персональным ноутбуком и хочу получить доступ к Твиттеру, который заблокирован (на самом деле он в моей средней школе, поэтому я сделал именно это). У меня дома есть переадресованный хост SSH с IP- 39.34.81.56
на порту 1337
. Я хочу сбросить соединение с Twitter (веб-серверы чаще всего размещаются на порте 80
) с моего порта 8080
на моем ноутбуке через мой хост дома.
Я бы выполнил команду на моем ноутбуке:
ssh -L 8080:twitter.com:80 root@39.34.81.56 -p 1337
Теперь я могу получить доступ к localhost:8080
в своем веб-браузере, и он будет направлять Twitter через мой зашифрованный туннель, с их серверов на мой дом, а затем на мой ноутбук в школе.
Я могу использовать этот же метод для входа на сайт, который не использует SSL (например, pastebin) публично, и быть уверенным, что мои учетные данные безопасны, поскольку они зашифрованы с использованием SSH и отправляются только без SSH из моего дома, что я и сделал конечно это безопасно.
Удачи!
РЕДАКТИРОВАТЬ: просто примечание, IP-адреса, показанные здесь, не должны быть действительными адресами, но в случае их несоответствия, пожалуйста, не преследуйте пользователей этих IP-адресов.