Удаленный доступ при динамическом IP или Настраиваем DynDNS в Linux
Оговорки:
— писалось как пособие для начинающих.
— способ не подходит для «серых» IP.
Удаленно управлять рабочим столом можно с помощью TeamViewer. Однако, например, для управления домашним ПК с Linux на борту, если необходима только правка конфигов или работа с файлами, а не с X-приложениями, проще всего использовать ssh. Но как быть, если IP удаленной машины постоянно меняется? В таком случае поможет сервис DynDNS. Принцип его действия прост: сервис создает для вас определенный домен, а ваш компьютер с помощью этого сервиса присваивает домену текущий IP-адрес.
Регистрация аккаунта и домена
DynDNS предусматривает несколько тарифных планов, однако, мы рассмотрим бесплатный вариант его использования. Для создания доменного имени достаточно зарегистрироваться на сервисе и заполнить небольшую форму на сайте Dyn.com. Итак, переходим по ссылке регистрации и заполняем форму:
Нажимаем Create Account для создания аккаунта. Проверяем почту, переходим по ссылке в письме, вводим свой пароль и завершаем регистрацию, кликнув на Confirm Account:
Аккаунт создан, теперь нам предлагают выбрать тариф из предложенных. По всей странице красочно расписаны платные тарифы, но мы хотим пользоваться сервисом бесплатно, для этого выбираем ссылку «free Dynamic DNS» в самом низу страницы:
Переходим к созданию доменного имени. Заполняем форму, выбрав имя своего поддомена, домен, в котором он будет расположен (я выбрал dyndns.org), а также заполняем текущий IP нашего компьютера, который хотим подключить к сервису:
Нажимаем Add To Cart, подтверждаем свой выбор, нажимая Proceed to checkout:
Домен создан, активируем его работу кнопкой Activate Services:
Домен готов к работе:
Теперь мы можем приступить к настройке самого компьютера.
Настройка сервиса
Для того, чтобы сервис знал наш текущий IP, необходимо предоставлять ему такие данные. Настроим на компьютере клиент. Переходим в консоль и устанавливаем ddclient (команда приводится для Ubuntu, для не deb-based дистрибутивов можно скачать ddclient и установить вручную):
sudo apt-get install ddclient
Теперь необходимо настроить клиент:
sudo gedit /etc/ddclient.conf
В конфигурационном файле уже присутствует множество параметров настроек, однако, раскомментируем и настроим только самое необходимое:
daemon=300
syslog=yes
mail=root
mail-failure=root
pid=/var/run/ddclient.pid
ssl=yes
server=members.dyndns.org, \
protocol=dyndns2 \
linux-easy.dyndns.org
Очевидно, что вместо астериксов (звездочек) необходимо указать пароль от своего DynDNS-аккаунта. Сохраняем файл конфигурации и перезапускаем ddclient:
sudo /etc/init.d/ddclient restart
После этого компьютер будет сам посылать текущий IP сервису DynDNS, который будет применять его к нашему домену linux-easy.dyndns.org. Теперь мы можем подключиться к нему по ssh или даже по ftp (предварительно настроив ftp-сервер).
Соединение компьютер-компьютер через интернет с динамическими IP
Очень часто мы слышим о том, что установить соединение компьютер-компьютер через интернет с динамическими IP – нереально без внешнего сервера.
А также думал, до определенного времени. Потом у меня закрались подозрения… А после мне стало известно очень многое и тайное.
Однако скайп, аська для передачи файлов, торренты, в конце концов, используют каким-то образом прямое подключение.
Как? Об этом я и хочу рассказать.
Все совпадения случайны, цифры изначально выдуманы.
На самом деле, без внешнего сервера это действительно нереально. Но есть «хаки» и «моды», которые нам помогут.
Я буду сильно разжевывать. Некоторые мои объяснения могут не сойтись с реальностью, но это делается для того, чтобы было понятно как и что работает, поскольку на практике данных знаний хватит.
Теория
NAT – то, что дает каждому из нас иметь возможность подключаться к интернету, кто сидит с IPv4. Если раздать каждому компьютеру IPv4 адрес, то их не хватит.
NAT позволяет нам скрывать определенные сервисы только для сети… И именно из-за него мы не можем, в большинстве, достучаться до компьютера из интернета.
Представьте, что вы подключаетесь к серверу FTP в пассивном режиме.
Ваш внешний адрес: 43.12.102.14
Ваш внутренний адрес: 192.168.0.2
Адрес вашего NAT: 192.168.0.1
Вы создаете TCP соединение с вашего IP 192.168.0.2, создаете запрос на адрес с 21 портом.
Далее запрос попадает на ваш NAT, который создает в своей небольшой таблице соответствие: TCP-соединение внутренний IP 192.168.0.2, порт 21.
Внешне он создает также порт, например, 54321 со своим адресом.
И переадресует ваш запрос на FTP сервер на 21 порт.
Сервер FTP, получая запрос, видит, что запрос установлен с IP 43.12.102.14 и порта 54321.
Теперь, на время соединения, этот порт является переадресатором на ваш компьютер на порт 21 для TCP соединения.
Как только вы закроете соединение, порт провесит от 3-10 секунд и удалится из таблицы NAT.
Большинство UDP соединений и TCP соединений в программах создаются через данные хаки, постоянно поддерживая подключение.
Практика
Давайте я объясню как создается соединение между компьютерами, когда вы сидите, например, в аське.
Вы создаете изначально соединение с сервером ICQ, который открывает вам порт на компьютере, например, 5191. На другом компьютере открывается также порт с номером 5191.
IP и порты этих пользователей в NAT будут выглядеть, например, так:
1 пользователь: 43.12.102.14:56742
2 пользователь: 43.12.102.15:61782
После этого сервер ICQ сообщает каждому клиенту их внешний IP-адрес и внешний порт.
Пользователь 1 делает соединение на этот внешний IP:Port (43.12.102.15:61782) и попадает на внутренний порт 5191.
Пользователь 2 соглашается на соединение с IP:Port пользователя 1 (43.12.102.15:61782), который переадресуется с NAT на пользователя 1 с портом 5191. Далее происходит пересылка файлов и соединение закрывается. Через некоторое время NAT, видя, что внешние и внутренние порты уже не используются и соединение закрыто, удаляет этот порт для того, чтобы использовать для других соединений.
На картинке это будет выглядеть так:
Как реализовать?
Конечно, не каждый из нас на начале своей карьеры имел внешний сервер, который будет говорить каждому пользователю его внешний IP-адрес и порт.
Но для данных решений существуют свои реализации, например, STUN сервера, которые есть по всему миру, даже публичные.
В большинстве, они созданы для UDP протокола, который используется в тех же торрентах. Однако существуют и STUNT сервера для реализации TCP протокола.
Создавайте, творите, все в ваших руках.
P.S.: Не все NAT способны обеспечить такое соединение, однако, большинство закрытых NAT, следящих за IP соединений, не используются в предоставлении услуг провайдеров.
UDP: в данном контексте, динамическими IP, называются IP адреса, которые не являются внешними, а выдаются вышестоящим NAT.
Как подключится по SSH к серверу с динамическим IP?
Подскажите, пожалуйста, как можно это осуществить?
Не знаю, важно ли это, но вот доп данные:
ОС ноута — Ubuntu Server
Роутер — Keenetic 4g
Провадер — МТС (Беларусь)
P.S. Я не нашел, как решить эту проблему адекватно, поэтому написал костыль: своего бота в telegram, который-таки дает доступ к командной строке, но приятных вещей типа автодополнения по табу и передачи файлов нет.
UPD:
Я хочу сделать все бесплатно: без белого IP, без платных сервисов и тд 🙂
- Вопрос задан более двух лет назад
- 3535 просмотров
3 комментария
Средний 3 комментария
Saboteur @saboteur_kiev Куратор тега Linux
Так без белого IP или с динамическим IP — это разные вещи ?
Александр Дедунович @traly_valy Автор вопроса
Saboteur, понимаю. В комментах предложили выделить у провайдера себе белый IP. В UPD я указал, какие варианты решения не подходят
Saboteur @saboteur_kiev Куратор тега Linux
Нет, вы не понимаете.
«Как подключится по SSH к серверу с динамическим IP?
«без белого IP»
Динамический и белый IP это вообще несвязанные вещи. Вы уточните у вас динамический белый или нединамический белый, или динамический серый или нединамический серый. А потом уже задавайте вопрос.
Решения вопроса 0
Ответы на вопрос 8
Ответ написан более двух лет назад
Комментировать
Нравится 4 Комментировать
Динамический DNS
домашнее через бесплатный hldns.ru имя получают
кстати МТС c Беларусью в свое время сильно топили за продвижение ipv6. проверь работоспособность ipv6
Ответ написан более двух лет назад
Комментировать
Нравится 2 Комментировать
Есть разные формы отсутствия белого ip
К примеру — динамический ip адрес, это когда ip адрес выдается но на какой то промежуток времени (часы-сутки-сессию) а затем меняется — в этом случае достаточно настроить dyndns провайдера (их огромное количество, от бесплатных до опций у платных dns/хостинг провайдеров), вы локально настраиваете какое то приложение (роутеры тоже умеют работать с некоторыми dyndns провайдерами) которое определяет ваш текущий ip адрес и отправляет провадеру, а тот настраивает вам доменное имя на текущий ip адрес тогда обычными настройками роутера открываете порты вашего локального сервера и подключаетесь по dyndns доменному имени.
Если вы за NAT, т.е. даже ваш роутер получает для выхода в интернет адрес из локальной сети (видел такое у мобильных провайдеров) то да, это приговор. Тут варианты только vpn или к примеру reverse ssh port forwarding:
На вашем ноутбуке настраивается автоматическое циклическое подключение ssh к удаленному серверу с белым ip, с настройкой перенаправлений порта вашего уже лкального ssh сервера на тот удаленный. В этом случае для подключения вам достаточно подключиться к удаленному серверу и подключение будет перенаправлено. Развитие вариантов — можно не делать порт удаленный доступным из интернета, и для подключения по ssh нужно будет подключаться сначала к ssh того сервера, так же с настроенным перенаправлением портов, и уже тогда подключиться к своему серверу.
Ответ написан более двух лет назад
Комментировать
Нравится 1 Комментировать
Любитель файрволлов
Просите у провайдера белый IP-адрес, пробрасывайте на роутере, где вайфай, 22 порт на ноут и вперед. При этом будьте готовы к тому, что не только вы будете пытаться ломиться на него, и озаботьтесь защитой (fail2ban например).
А бесплатно — в самом деле VPN на бесплатную ВМ где-то в облаках и там настраивать проксирование или двойной вход.
Как настроить удаленный доступ к компьютеру с динамическим IP-адресом
Многие жилые сети имеют динамические IP-адреса. Интернет-провайдеру легче управлять динамическими IP-адресами, и большинству людей не нужно подключаться к своей сети извне. Но если вы хотите получить доступ к домашней сети извне, вам понадобится надежная точка подключения. Вот где может помочь динамический DNS, связав ваш динамический IP-адрес с определенным URL.
Что такое динамический IP-адрес?
Как вы, вероятно, знаете, IP-адреса используются для предоставления цифрового «адреса» устройства, подключенного к Интернету. Статические IP-адреса означают, что компьютер или веб-сайт всегда можно получить по этому конкретному адресу. Он неизменный, неизменный и надежный. Динамический IP-адрес означает, что ваш компьютер не имеет фиксированного цифрового адреса. Это затрудняет постоянный доступ к динамическому IP-адресу. Это как если бы номер мобильного телефона вашего друга менялся каждый раз, когда вы хотели ему позвонить. Как узнать новый номер?
Если вы хотите подключиться к сети с динамическим IP-адресом, вы можете использовать службу, называемую динамическим DNS. Это позволяет связывать динамические IP-адреса с записями DNS, которые присоединяют фиксированное имя хоста, например myserver.ddns.net, к изменяющемуся IP-адресу. Для доступа к серверу вместо набора номера через постоянно меняющийся IP-адрес вы должны использовать URL-адрес имени хоста.
Использование динамического DNS
Существует множество различных веб-сайтов, предлагающих услуги динамического DNS. Вы можете выбрать свой любимый, но в наших примерах мы будем использовать no-ip.com. Это бесплатно для частного использования, и его легко настроить. Это не обязательно лучше, чем другие услуги, но это то, к чему мы обратимся в первую очередь.
Сначала мы создадим нашу учетную запись no-ip.com и укажем нужный нам URL. Уровень бесплатного пользования предлагает на выбор лишь несколько доменов. Пока он запоминающийся, не имеет значения, какой из них вы выберете.
После того, как вы выберете имя хоста, вам будет предложено создать учетную запись. Эта учетная запись будет основой для обновления записи DNS с течением времени.
После создания учетной записи загрузите клиент обновления динамического DNS. Это обновит запись DNS с использованием внешнего IP-адреса вашей сети. Клиент доступен как для Windows, MacOS, так и для Linux.
Установите это приложение на свой компьютер, затем откройте приложение и щелкните вводные подсказки.
После того, как вы ознакомитесь с введением, выберите запись DNS, которую хотите обновить. Затем клиент будет проверять внешний IP-адрес вашей сети каждые пять минут и обновлять запись DNS с учетом любых обнаруженных им изменений.
DUC автоматически запускается при входе в систему после его установки. Чтобы изменить это, отрегулируйте настройки приложения.
Открытие и пересылка портов
Помимо фиксированного URL для вашего динамического IP-адреса, вам также необходимо убедиться, что в вашей сети открыты нужные порты. Требуемые порты зависят от службы, которую вы хотите использовать. Вы можете использовать инструмент проверки портов No-IP, чтобы узнать статус любого из портов вашей текущей сети.
В большинстве случаев для открытия портов требуется лишь настроить некоторые параметры в веб-настройках маршрутизатора. Вы можете настроить определенные неиспользуемые внешние порты для подключения к локальным IP-адресам в вашей сети, что позволит вам получить доступ к определенному устройству в вашей сети, набрав предварительно установленный номер порта. Вы можете просмотреть наше руководство по открытию и переадресации портов, чтобы узнать больше об этом процессе.
Заключение
С помощью службы динамического DNS вы можете легко получить доступ к своей домашней сети из внешних сетей, не используя трудно запоминающийся или постоянно меняющийся IP-адрес.
5 комментариев
Как это влияет на безопасность / анонимность в сети? В конце концов, вы привязываете себя к одному URL-адресу.
Конечно, открытие вашей сети для любого взаимодействия всегда представляет некоторую степень риска для безопасности. Эти URL-адреса, как правило, довольно неясны, а пары URL / IP не публикуются нигде, о которых мне известно. На самом деле это не сильно отличается от оплаты статического IP-адреса. На мой взгляд, это все равно, что иметь номер телефона, но не записывать его в телефонную книгу.
«На мой взгляд, это все равно, что иметь номер телефона, но не записывать его в телефонную книгу».
Имея номер телефона, не внесенный в список, я могу с уверенностью сказать, что с современными технологиями платить за него — пустая трата денег. Кажется, это никому не мешает позвонить вам по номеру.
Я бы посмотрел http://staticip.io. У них отличный сервис
Популярные посты
10 флагов Chrome, которые вы должны включить, чтобы увеличить скорость просмотра
8 лучших провайдеров динамического DNS, которых можно использовать бесплатно
Поддержка Flash закончилась. Сможете ли вы использовать его в 2021 году?
6 лучших альтернатив Amazon
10 лучших ботов Discord для улучшения вашего сервера Discord
Как узнать, когда была опубликована веб-страница
7 лучших сайтов для игр в настольные онлайн-игры с друзьями
Как найти и заменить текст в Chrome и Firefox
26 Firefox Quantum Описание: хитрости с настройкой, которые необходимо изучить
Как скопировать текст с заблокированного сайта в Chrome