Как я могу подключиться к моему домашнему компьютеру из интернета?

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

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

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

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

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

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

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

2 ответа

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

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

ssh turtle@127.0.0.1 -p 8080

SSH управляет вашим портом 8080, и он отправляет ваш запрос SSH на хост 1, который отправляет его на хост 2. Обратите внимание, что в отличие от использования 127.0.0.1Вы также можете просто использовать localhost, Это просто предпочтение.

Другое использование переадресации портов SSH - прокси.

Сценарий: я нахожусь в школе со своим персональным ноутбуком и хочу получить доступ к Twitter, который заблокирован (на самом деле он в моей средней школе, поэтому я сделал именно это). У меня в доме есть переадресованный хост 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-адресов.

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

Другие вопросы по тегам