Как настроить динамический DNS

Что такое динамический DNS?

Давайте рассмотрим общий пример настройки DNS. Ваш домен есть example.com, и у вас есть " A" записи для server1.example.comи server2.example.com. Сервер1 размещен в Vultr, но сервер2 размещен в локальной сети, например, внутри вашего предприятия или как компьютер для разработки у вас дома. Как правило, эти типы локальных сред имеют общедоступные IP-адреса, которые динамически назначаются поставщиком услуг Интернета, и они могут неожиданно измениться. Это может привести к тому, что server2 внезапно укажет на неправильный IP-адрес, что может серьезно повлиять на обслуживание. В этой статье будет показано, как настроить собственную службу динамического DNS, которая работает на локальном компьютере и может автоматически обновлять запись для server2 в Vultr DNS после изменения общедоступного IP-адреса.

Хотя клиенты любят ddclientи inadynбудут работать с некоторыми провайдерами DNS, Vultr в настоящее время не поддерживает их и вместо этого использует собственный настраиваемый API. Эта служба будет работать локально на вашем компьютере и использовать запросы GET и POST вместе с вашим ключом доступа.

Предпосылки

  • Доступ к вашей учетной записи Vultr для настройки DNS и управления ключами доступа.
  • Возможность подключения к локальной машине, которая имеет динамический IP-адрес (или доступ к другой машине в той же сети).

Установка и настройка

Настройка вашего домена для использования службы Vultr DNS

  • Если вы не используете службу DNS Vultr для своего домена, следуйте этой статье, чтобы изменить свои серверы имен для использования с Vultr.
  • После настройки Vultr DNS перейдите на страницу управления DNS в разделе «Серверы -> DNS -> [имя вашего домена]».
  • Здесь вы найдете все записи, настроенные для вашего домена. Запишите, какие записи вы хотите изменить, так как вам это понадобится позже.
    • Только " A" записи поддерживаются этой утилитой. Если у вас есть несколько " A" записей, которые вы хотите обновить до одного и того же IP-адреса, измените их на " CNAME" записи и укажите их на одну " A" запись. Это упростит для вас вещи в долгосрочной перспективе и считается правильным способом настройки DNS.

Установка необходимых инструментов

  • Подключитесь к вашему локальному серверу. Это может быть напрямую или через SSH.
  • Для этого инструмента требуется Python 3. Большинство дистрибутивов Linux включают в себя предварительно установленный Python. Если он не установлен в вашей среде, инструкции доступны на официальной вики Python здесь:
  • Этот процесс также требует Git, который вы можете установить с инструкциями ниже:

Загрузка динамического DNS-клиента

Используйте Git для клонирования репозитория, содержащего клиент Python DDNS. Вы должны сделать это в безопасном каталоге, к которому у вас есть полный доступ. Ваша домашняя папка должна быть достаточной. Запустите следующую команду:

git clone https://github.com/andyjsmith/Vultr-Dynamic-DNS.git vultrddns && cd vultrddns

Генерация токена личного доступа

Создайте личный токен доступа в Vultr. Это можно сделать в разделе «Аккаунт -> API -> Токен личного доступа». На этой же странице вам нужно будет зайти в «Контроль доступа» и нажать кнопку «Разрешить все IPv4», поскольку вы не будете каждый раз знать IP вашего локального сервера, отсюда и точка динамического DNS.

Настройка инструмента для вашего сервера

  • Прочтите config.json.exampleфайл, чтобы посмотреть, как должен выглядеть ваш файл конфигурации.
  • Откройте config.jsonфайл, используя ваш любимый текстовый редактор, и заполните значения в зависимости от настроек вашего сервера.
  • Файл должен содержать следующее:

    {
        "api_key": "",
        "domain": "",
        "dynamic_records": [
        ""
        ]
    }
    
  • Введите свой токен доступа в поле api_key.

  • Введите свой базовый домен в domainполе. Например, example.com.
  • Теперь введите " A" записи, которые вы хотите изменить в dynamic_recordsполе. Используя предыдущий пример, вы вводите server2для автоматического изменения server2IP-адреса. Вы можете ввести несколько поддоменов. Если вы хотите изменить базовую " A" запись для своего домена (обычно называемую как @запись, которая отвечает, когда вы переходите прямо к ней example.com), просто оставьте пустые кавычки.
  • Правильный файл конфигурации может выглядеть следующим образом, где вы хотите динамически изменить IP для example.comи server2.example.com:

    {
        "api_key": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
        "domain": "example.com",
        "dynamic_records": [
        "",
        "server2"
        ]
    }
    
  • Теперь сохраните эти изменения, и ваш файл должен быть готов к работе!

Протестируйте свою конфигурацию

  • Проверьте скрипт и конфигурацию, запустив python3 ddns.py. Если это не возвращает никаких ошибок, ваша конфигурация является номинальной, и вы можете запустить процесс автоматизации.

автоматизация

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

Linux и Mac OSX

В Linux и Mac cronуже установлена ​​утилита, которая позволяет указывать сценарии для запуска по заданному расписанию.

  • Найдите полный путь к ddns.pyфайлу, используя realpath ddns.pyеще в vultrddnsкаталоге.
  • Запустите crontab -eдля редактирования вашего crontab.
  • Добавьте следующую строку в конец файла, добавив реальный путь к ddns.pyфайлу:

    */30 * * * * python3 [full path to ddns.py] > /dev/null 2>&1
    
  • Это будет запускать скрипт каждые 30 минут и перенаправлять весь его вывод в /dev/null.

  • Сохраните и выйдите из текстового редактора. Файл crontab будет установлен автоматически, а ваш IP-адрес будет автоматически обновлен.

Windows

Создайте задачу в планировщике задач для запуска каждые 30 минут. Следуйте руководству Microsoft для создания основных задач.

  • Откройте планировщик задач и нажмите «Создать задачу ...».
  • Дайте ему имя и создайте новый триггер.
  • Нажмите «Ежедневно». В разделе «Дополнительные настройки» нажмите, чтобы повторять задание каждые 30 минут и измените «на время» на «Неограниченно».
  • Добавьте новое действие для запуска программы и перейдите к своему исполняемому файлу Python. Добавьте ddns.pyсценарий в качестве аргумента.

Оставить комментарий

Изучение 26 методов анализа больших данных: часть 1

Изучение 26 методов анализа больших данных: часть 1

Изучение 26 методов анализа больших данных: часть 1

Функциональные возможности уровней эталонной архитектуры больших данных

Функциональные возможности уровней эталонной архитектуры больших данных

Прочтите блог, чтобы узнать о различных уровнях архитектуры больших данных и их функциях самым простым способом.

6 невероятных фактов о Nintendo Switch

6 невероятных фактов о Nintendo Switch

Многие из вас знают Switch, который выйдет в марте 2017 года, и его новые функции. Для тех, кто не знает, мы подготовили список функций, которые делают «Switch» обязательным гаджетом.

Технические обещания, которые все еще не выполнены

Технические обещания, которые все еще не выполнены

Вы ждете, когда технологические гиганты выполнят свои обещания? проверить, что осталось недоставленным.

Как ИИ может вывести автоматизацию процессов на новый уровень?

Как ИИ может вывести автоматизацию процессов на новый уровень?

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

Технологическая сингулярность: далекое будущее человеческой цивилизации?

Технологическая сингулярность: далекое будущее человеческой цивилизации?

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

CAPTCHA: как долго она может оставаться жизнеспособным методом различения между человеком и ИИ?

CAPTCHA: как долго она может оставаться жизнеспособным методом различения между человеком и ИИ?

CAPTCHA стало довольно сложно решать пользователям за последние несколько лет. Сможет ли он оставаться эффективным в обнаружении спама и ботов в ближайшем будущем?

Телемедицина и удаленное здравоохранение: будущее уже здесь

Телемедицина и удаленное здравоохранение: будущее уже здесь

Что такое телемедицина, дистанционное здравоохранение и их влияние на будущее поколение? Это хорошее место или нет в ситуации пандемии? Прочтите блог, чтобы узнать мнение!

Вы когда-нибудь задумывались, как хакеры зарабатывают деньги?

Вы когда-нибудь задумывались, как хакеры зарабатывают деньги?

Возможно, вы слышали, что хакеры зарабатывают много денег, но задумывались ли вы когда-нибудь о том, как они зарабатывают такие деньги? Давайте обсудим.

Обновление дополнения к macOS Catalina 10.15.4 вызывает больше проблем, чем решает

Обновление дополнения к macOS Catalina 10.15.4 вызывает больше проблем, чем решает

Недавно Apple выпустила macOS Catalina 10.15.4, дополнительное обновление для исправления проблем, но похоже, что это обновление вызывает больше проблем, приводящих к поломке компьютеров Mac. Прочтите эту статью, чтобы узнать больше