Как подключиться через ssh к домашней сети за ISP NAT (без публичного IP-адреса)?
Моя управляющая компания предоставляет бесплатный доступ в Интернет. Все квартиры во многих зданиях находятся за обычным NAT, поэтому ни у кого из нас нет своих публичных IP-адресов. Таким образом, такие сервисы, как dyndns.org, не работают, по крайней мере, я не могу это понять. Все, что я хочу сделать, - это иметь возможность подключиться к ssh на компьютере в моей домашней локальной сети (который находится за 2 уровнями NAT, один на ISP, который я не контролирую, и один на моем маршрутизаторе, который я контролирую). Я могу настроить переадресацию портов и так далее на моем маршрутизаторе без проблем. Я подозреваю, что какая-то машина в моей локальной сети (машина 1) должна подключиться к внешней машине (машина 2) с общедоступным IP-адресом, чтобы установить туннель SSH, а затем я могу туннелировать с компьютеров в другом месте (машина 3) через машину 2, чтобы Машина 1.
Мои вопросы:
- Верно ли мое подозрение или есть какой-то другой подход?
- Если мне нужно туннелировать к какой-то другой коробке, есть ли общедоступные ssh-прокси или аналогичные, или мне нужно дать кому-нибудь ошибку с публичным IP, чтобы я смог туннелировать через их машину?
5 ответов
Я хотел бы уточнить ответ Брайана о Hamachi с акцентом на 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
Затем перейдите на страницу hamachi и создайте новую сеть mash, запомните "номер сети", так как do-login это нужно.
Вернуться к командной строке
sudo hamachi login
sudo hamachi set-nick $HOSTNAME
sudo hamachi do-join XXX-XXX-XXX
Затем вернитесь на веб-страницу еще раз и разрешите клиентам находиться в этой сети. (возможно, необходимо снова подключиться к клиенту)
Затем проверьте, какой компьютер находится в сети:
sudo hamachi list
Теперь вы можете получить этот ip-номер и ssh напрямую, независимо от того, есть ли на пути NAT!
/Повеселись
Вы можете получить удаленный доступ к оболочке SSH на свой компьютер без IP Public, используя рабочий стол или просто смартфон (например, Android), установив robotito на свой компьютер, который вы хотите получить доступ к SSH удаленно.
- Это позволит вам получить доступ к SSH с помощью клиентских приложений Google Talk в любом месте.
- Нет необходимости в общедоступном IP-адресе или специальных настройках.
- Я бесплатно и с открытым исходным кодом, не оплачивая никаких приложений приложений.
Я сделал скрипт (протестирован на моей raspbian OS в Raspberry Pi), чтобы вы могли легко установить robotito на Raspberry Pi, Debian или Ubuntu Box(дистрибутив пакетов Debian). это шаги для получения удаленной Linux-коробки:
Откройте Команду Shell или вы можете назвать ее Терминалом, перейти в свою домашнюю папку, скачать скрипт установщика командой:
$wget https://opengateway.googlecode.com/files/robotito
после этого запустим скрипт, введя команду:
$sudo ./robotito
а затем вы можете отредактировать файл credentials.rb из папки config, если robotito использует вашу учетную запись gtalk, и сохранить его, нажав ctrl+x и y. По умолчанию используется нано-редактор.
запуск робота из папки robotito по команде
$cd robotito
$./jabbershd start
Теперь, когда это сделано, вы можете использовать ssh из любого клиента Google Talk, не забудьте добавить учетную запись robotito gtalk в свою учетную запись Google Talk и проверить ее в чате друг с другом, прежде чем использовать эту учетную запись.
Вы смотрели на сервис, подобный Hamachi, который действует как своего рода VPN? Так как клиенты обращаются к своим серверам, это не должно иметь значения, будет открытое соединение с вашим домашним компьютером.
Вы правы, без помощи вашего провайдера невозможно подключиться напрямую к вашей сети. Возможно, стоит с ними поговорить.
Если это не удастся, вам придется, как вы выразились, высовываться, а затем возвращаться обратно. Я не знаю ни о каких бесплатных сервисах, подобных этому, и буду обеспокоен последствиями их использования для безопасности.
Для raspbmc: после загрузки скрипта и его запуска
sudo apt-get install ruby1.8 rubygems bundler
cd robotito-master
bundle install
./jabbershd run (to see it connect)
Одно замечание: вы должны настроить учетную запись Google для принятия менее безопасных приложений.