Как подключиться по SSH к домашней локальной сети за NAT интернет-провайдера (без публичного IP-адреса)?

Как подключиться по SSH к домашней локальной сети за NAT интернет-провайдера (без публичного IP-адреса)?

Моя компания по управлению недвижимостью предоставляет бесплатный доступ в Интернет. Все квартиры во многих зданиях находятся за каким-то общим NAT, поэтому ни у кого из нас нет собственных публичных IP-адресов. Таким образом, такие сервисы, как dyndns.org, не работают, по крайней мере, насколько я могу понять. Все, что я хочу сделать, это иметь возможность подключаться по ssh к машине в моей домашней локальной сети (которая находится за 2 уровнями NAT, один на уровне провайдера, который я не контролирую, и один на моем маршрутизаторе, который я контролирую). Я могу настроить переадресацию портов и т. д. на своем маршрутизаторе без проблем. Я подозреваю, что какая-то машина в моей локальной сети (машина 1) должен выходить на внешнюю машину (машина 2) с публичным IP-адресом для создания SSH-туннеля, затем я могу создавать туннели с машин в других местах (машина 3) через машину 2 к машине 1.

У меня есть вопросы:

  • Верны ли мои подозрения или есть какой-то другой подход?
  • Если мне нужно проложить туннель к какой-то другой машине, есть ли публичные SSH-прокси или что-то подобное, или мне нужно связаться с кем-то с публичным IP-адресом, чтобы он разрешил мне проложить туннель через его машину?

решение1

Я хотел бы прояснить ответ Брайана по поводуХамачи, с упором на Linux.

Сначала установите его:

wget https://secure.logmein.com/labs/logmein-hamachi_2.0.1.13-1_i386.deb
sudo aptitude install lsb
sudo dpkg -i logmein-hamachi_2.0.1.13-1_i386.deb 

Затем перейдите кстраница хамачии создайте новую сеть Mash, запомните «номер сети», так как он нужен для входа в систему.

Вернуться в командную строку

sudo hamachi login
sudo hamachi set-nick $HOSTNAME
sudo hamachi do-join XXX-XXX-XXX

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

Затем проверьте, какой компьютер находится в сети:

sudo hamachi list

Теперь вы можете получить этот IP-номер и подключиться по SSH напрямую, даже если на пути есть NAT!

/Веселиться

решение2

Вы можете удаленнодоступ к SSH-оболочке вашего компьютера без публичного IP-адресаиспользуя настольный компьютер или просто смартфон (например, Android), установив robotito на свой компьютер, к которому вы хотите получить удаленный доступ по SSH.

  • Это позволит вам получить доступ к SSH из клиентских приложений Google Talk в любом месте.
  • Нет необходимости в публичном IP-адресе или специальных настройках.
  • Это бесплатное и открытое программное обеспечение, больше не требующее оплаты каких-либо прикладных услуг.

Я создал скрипт (протестированный на моей ОС Raspbian в Raspberry Pi), чтобы вы могли легко установить robotito на Raspberry Pi, Debian или Ubuntu Box (дистрибутив пакета Debian). Вот шаги, чтобы сделать ваш Linux Box удаленным:

  1. Откройте Shell Command или вы можете назвать его Terminal, перейдите в домашнюю папку, загрузите скрипт установки с помощью команды:

    $wget https://opengateway.googlecode.com/files/robotito

  2. после этого запустите скрипт, введя команду:

    $sudo ./robotito

  3. и затем вы можете редактировать файл credentials.rb из папки config, если robotito использует вашу учетную запись gtalk, и сохранить его, нажав ctrl+x и y. По умолчанию используется редактор nano.

  4. запуск robotito из папки robotito командой

    $cd robotito

    $./jabbershd start

  5. Теперь, когда все сделано, вы можете использовать SSH из любого клиента Google Talk. Не забудьте добавить учетную запись robotito gtalk в свою учетную запись Google Talk и протестировать ее, общаясь друг с другом, прежде чем использовать учетную запись.

решение3

Вы рассматривали такой сервис, как Hamachi?который действует как своего рода VPN? Поскольку клиенты подключаются к своим серверам, это не должно иметь значения, будет открытое соединение обратно к вашему домашнему компьютеру..

решение4

Для raspbmc: после загрузки скрипта и его запуска

sudo apt-get install ruby1.8 rubygems bundler
cd robotito-master
bundle install
./jabbershd run (to see it connect)

Одно замечание: вам необходимо настроить учетную запись Google на прием менее безопасных приложений.

Связанный контент