Моя компания по управлению недвижимостью предоставляет бесплатный доступ в Интернет. Все квартиры во многих зданиях находятся за каким-то общим 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 удаленным:
Откройте Shell Command или вы можете назвать его Terminal, перейдите в домашнюю папку, загрузите скрипт установки с помощью команды:
$wget https://opengateway.googlecode.com/files/robotito
после этого запустите скрипт, введя команду:
$sudo ./robotito
и затем вы можете редактировать файл credentials.rb из папки config, если robotito использует вашу учетную запись gtalk, и сохранить его, нажав ctrl+x и y. По умолчанию используется редактор nano.
запуск robotito из папки robotito командой
$cd robotito
$./jabbershd start
Теперь, когда все сделано, вы можете использовать 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 на прием менее безопасных приложений.