Giter VIP home page Giter VIP logo

cloudflare-ddns-multiaccounts's Introduction

Cloudflare DDNS-client v1.1.5

DDNS-клиент для сервиса Cloudflare.

Основные возможности

  • Работа с несколькими аккаунтами Cloudflare
  • Работа с несколькими доменами. Например: domain1.com, domain2.com
  • Обновление нескольких DNS записей для домена
  • Настройка параметров для каждой DNS-записи:
    • Time to Live (TTL)
    • Режим проксирования запросов
  • Поддержка IPv4 и IPv6
  • Выбор режима обновления:
    • Только IPv4
    • Только IPv6
    • IPv4 и IPv6 одновременно
  • Выбор режима получения текущего IP:
    • HTTP-запрос
    • DNS lookup (dig)
  • При отсутствии DNS записи, она будет создана
  • Выбор режима логирования событий:
    • Полный
    • Краткий
    • Отключен
  • Автоочистка лог-файла. При превышении заданного размера, файл будет очищен
  • Возможность запуска обновления по CRON или GET-запросом (Например с помощью утилиты WGET)
  • Возможность добавить несколько URL-сервисов получения текущего IP адреса для HTTP-метода. URL сервиса будет выбран случайным образом
  • Возможность указать количество попыток получения текущего IP адреса для HTTP-метода. Если IP получить не удалось, будет выбран другой URL-сервиса

Как использовать

Основные настройки скрипта находятся в файле config/config.php, этот файл необходимо создать. Для этого нужно открыть файл config/config.php.sample, настроить в нем параметры и сохранить как config/config.php.

В папке config/entries должны располагаться файлы с параметрами доменов для обновления их DNS-записей. Таких файлов может быть несколько, можно задавать произвольное имя, главное, чтобы расширение у файлов было .php. Например: domain1.com.php

В папке config/entries находится файл entry.php.sample, как пример для создания такого файла с параметрами. Его необходимо открыть, настроить в нем параметры и сохранить с произвольным именем, например: config/entries/domain1.com.php.

При вызове скрипта update.php можно добавить параметр entry. Этот параметр позволяет обновить только одну запись из папки config/entries, а не все сразу. Если вызвать скрипт без этого параметра, будут обновлены все записи, которые находятся в папке config/entries

Для автоматического запуска обновления IP-адреса можно создать CRON-задачу или вызвать скрипт update.php GET-запросом с параметром token (и entry). Вместо startup_token указать токен запуска из основного конфиг-файла (находится в самом низу)

Примеры вызова для обновления всех записей

CRON-задача

*/5 * * * * php /path/to/cloudflare-ddns-multiaccounts/update.php --token="startup_token"

Вызов GET-запросом

http://example.com/cloudflare-ddns-multiaccounts/update.php?token=startup_token

Примеры вызова для обновления одной записи "example.com". Для этого в папке config/entries должен существовать файл example.com.php

CRON-задача

*/5 * * * * php /path/to/cloudflare-ddns-multiaccounts/update.php --token="startup_token" --entry="example.com"

Вызов GET-запросом

http://example.com/cloudflare-ddns-multiaccounts/update.php?token=startup_token&entry=example.com

Также в папке server находится скрипт для получения текущего IP-адреса с помощью HTTP-запроса. Этот скрипт можно разместить на своем сервере и добавить URL этого скрипта в основной конфиг-файл. Например: http://example.com/ip.php. Если вызвать скрипт с параметром ?raw, то он вернет только IP-адрес, например: http://example.com/ip.php?raw.

Кратко:

  1. Скачать скрипт как ZIP-архив или выполнить: git clone https://github.com/prog-it/cloudflare-ddns-multiaccounts.git
  2. Перейти в папку со скриптом: cd cloudflare-ddns-multiaccounts
  3. Создать основной конфиг-файл "config/config.php: cp config/config.php.sample config/config.php. Настройки по умолчанию оптимальны, но можно изменить на свои. В файле есть подробные комментарии
  4. Создать первый файл с параметрами для обновления DNS записей домена: "config/entries/entry1.php": cp config/entries/entry.php.sample config/entries/entry1.php. Настроить параметры в этом файле, в нем есть подробные комментарии. Таких файлов можно создавать несколько (с разными именами), в каждом свои параметры для обновления DNS записей
  5. Создать CRON задачу обновления IP. Вместо startup_token указать токен запуска CRON из конфиг-файла (находится в самом низу)

*/5 * * * * php /path/to/cloudflare-ddns-multiaccounts/update.php --token="startup_token"

Некоторые особенности

  • Если для DNS записи (Например: my.computer.example.com) используется несколько IP адресов, то будет обновлен IP только у первой по счету

Системные требования

  • PHP 5.4 и выше
  • PHP библиотеки: cURL, php-mod-tokenizer (PHP7 - php7-mod-tokenizer, PHP5 - php5-mod-tokenizer)
  • Утилита DNS lookup (dig), если выбран способ получения IP - "dig"

Если нашлись какие-либо баги или недоработки, то оставляйте свои заявки в разделе Issues

Историю изменений можно посмотреть здесь. Текущая версия DDNS-клиента находится в файле: README.md

cloudflare-ddns-multiaccounts's People

Contributors

prog-it avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.