1

Есть ли программное обеспечение, которое поможет мне ssh/ подключиться к моему домашнему компьютеру из общедоступного Интернета? (Скажем, кофейня).

Я понимаю, что вопросы, подобные этому, были заданы, но, похоже, никто не отвечает на этот вопрос. Позвольте мне добавить некоторые детали, чтобы избежать обычного множества ответов о DynDns и переадресации портов.

  • У меня есть доступ к общедоступному серверу SSH. Простое переадресация портов оттуда не является стабильным решением, которое длится несколько дней. Переадресация портов приводит к потере соединений, замедлению и т.д.

  • Я не хочу устанавливать / оплачивать DynDns и настраивать прохождение NAT на моем маршрутизаторе.

Я чувствую, что следующее возможно, я просто не знаю, существует ли программное обеспечение, которое уже выполняет это:

Как способ обхода NAT через дырокол в одноранговых программах, на моей домашней машине должна быть запущена программа, открывающая внешний доступ к соответствующим портам посредством перфорирования. Кроме того, программа может транслировать общедоступный IP-адрес домашних компьютеров и пробитый внешне видимый порт где-нибудь (скажем, на общедоступном сервере или по электронной почте) и периодически обновлять эту информацию.

Существует ли подобное программное обеспечение? Часть этой функциональности уже реализована различными торрент-программами.

2 ответа2

0

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

0

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

Существует программное обеспечение, которое может эмулировать локальную сеть через Интернет, называемое 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-адресов.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .