Table of Contents

Налаштування клієнта DDNS

Дивіться також: Документація клієнта DDNS

Файл /etc/config/ddns містить конфігурацію для пакету ddns-scripts.

Приклад

Останню версію повністю документованого файлу ddns.sample_config можна знайти на GitHub.
За замовчуванням мінімальні налаштування виглядають так:

для IPv4-адреси

config service "myddns_ipv4"
  option service_name "example.org"
  option domain       "yourhost.example.org"
  option username     "your_username"
  option password     "your_password"
  option interface    "wan"
  option ip_source    "network"
  option ip_network   "wan"

для IPv6-адреси

:!: Підтримується починаючи з версії CC 15.05

config service "myddns_ipv6"
  option use_ipv6     "1"
  option service_name "example.org"
  option domain       "yourhost.example.org"
  option username     "your_username"
  option password     "your_password"
  option interface    "wan6"
  option ip_source    "network"
  option ip_network   "wan6"

\

Розділи

\

Розділ "service"

:!: Ви повинні створити розділ “service” для кожного провайдера DDNS і хоста, який ви хочете обслуговувати.
:!: Так само — окремо для IPv4- та IPv6-адрес. (Починаючи з CC 15.05)

Назва (стара) Назва (нова) Тип Обов'язково За замовчуванням Опис
enabled boolean так '0' Вимикає (0) / вмикає (1) цю секцію DDNS.
interface network name так (немає) Вказує мережевий інтерфейс (наприклад, WAN), з якого буде визначатися зовнішня IP-адреса. Сценарій запускається при появі інтерфейсу через hotplug.
use\_ipv6 boolean ні '0' До BB 14.07IPv6 не підтримується. З CC 15.05 — вказує, яку IP-адресу оновлювати: IPv4 (0) або IPv6 (1).
service\_name string так(*) (немає) Назва DDNS-сервісу. Вибрати зі списку /usr/lib/ddns/services або services\_ipv6 (для IPv6). Якщо сервісу немає — використовуйте update\_url або update\_script.
update\_url string так(*) (немає) URL для оновлення IP, згідно з документацією провайдера. Не використовувати разом з service\_name.
update\_script string ні (немає) Шлях до кастомного скрипта для оновлення IP. Альтернатива service\_name та update\_url.
domain string так (немає) DNS-ім'я, яке оновлюється. Навіть якщо провайдер не вимагає — обов'язково для локальної перевірки.
username string так(*) (немає) Логін облікового запису DDNS. Якщо не потрібен — вказати “X”.
password string так(*) (немає) Пароль або токен DDNS. Якщо не потрібен — вказати “X”.
use\_https boolean ні '0' Вмикає HTTPS. Потрібні пакети Wget або cURL.
cacert string ні(*) (немає) Сертифікат або директорія сертифікатів. Для HTTPS. Значення IGNORE — не перевіряти сертифікат.
ip\_source string так 'network' Джерело для визначення IP: network, web, interface або script.
ip\_network string ні(*) 'wan' Назва мережі з /etc/config/network (наприклад, wan). Потрібна для ip\_source = 'network'.
ip\_url string ні(*) (немає) URL для визначення IP через веб. Приклад: [http://checkip.dyndns.org/](http://checkip.dyndns.org/). Потрібна для ip\_source = 'web'.
ip\_interface string ні(*) (немає) Локальний інтерфейс (наприклад, eth1) для визначення IP. Для ip\_source = 'interface'.
ip\_script string ні(\*) (немає) Скрипт для визначення IP. Має бути виконуваним. Для ip\_source = 'script'.
check\_interval number ні '10' Період перевірки зміни IP. Одиниці: seconds, minutes, hours. Не менше 5 хв.
check\_unit string ні 'minutes' Одиниця часу для check\_interval.
force\_interval number ні '72' Форсоване оновлення, навіть якщо IP не змінився.
force\_unit string ні 'hours' Одиниця часу для force\_interval.
retry\_interval number ні '60' Затримка перед повторною спробою після помилки.
retry\_unit string ні 'seconds' Одиниця часу для retry\_interval.
retry\_max\_count number ні '0' Кількість повторів при помилці. '0' — нескінченно.
use\_syslog boolean ні '0' Логування в syslog. Рівні 1-4 = різні рівні повідомлень.
use\_logfile boolean ні '1' Логування у файл /var/log/ddns/\[sectionname].log
dns\_server string ні (немає) DNS-сервер для порівняння зареєстрованої IP.
force\_dnstcp boolean ні '0' Використовувати TCP для DNS. Для деяких провайдерів це необхідно.
proxy string ні (немає) Проксі-сервер для HTTP/HTTPS. Не рекомендується з ip\_source = 'web'.
force\_ipversion boolean ні '0' Форсувати IP-версію (IPv4 або IPv6). Потребує Wget або cURL та BIND host.
bind\_network string ні (немає) Мережа для комунікації при оновленнях.
lookup\_host string так (немає) Хост для перевірки зареєстрованої IP.
rec\_id string ні (немає) Для CloudFlare — вказує конкретний DNS-запис.
is\_glue boolean ні '0' Якщо запис є glue-записом — порівняння проти glue. Потрібно вказати dns\_server.

Розділ "ddns"

\*\* Підтримується з CC 15.05 \*\* :!: Не рекомендується змінювати ці параметри без досвіду. :!: Підтримується лише ім’я розділу “global” :!: Використовується сценаріями ddns-scripts і luci-app-ddns.

Назва (стара) Назва (нова) Значення Обов'язково За замовчуванням Опис
allow\_local\_ip upd\_privateip boolean ні '0' Дозвіл надсилати приватні IP (10.0.0.0/8 тощо)
date\_format ddns\_dateformat string ні '%F %R' Формат дати для журналу та LuCI. \[\Див](http://www.cplusplus.com/reference/ctime/strftime/|Див). список кодів
run\_dir ddns\_rundir string ні '/var/run/ddns' Каталог для файлів \*.pid і \*.update
log\_dir ddns\_logdir string ні '/var/log/ddns' Каталог журналів для кожної секції
log\_lines ddns\_loglines number ні '250' Кількість рядків журналу перед обрізанням
use\_curl boolean ні '0' Якщо встановлено wget і curl — використовується wget. Встановіть '1' для використання curl.

Відомі проблеми та баги

:!: Wget 1.x не працює коректно з кількома WAN-інтерфейсами (наприклад, з mwan). \[\ Issue 8277

Причина: wget 1.x не може прив’язатися до інтерфейсу, лише до IP.

Рішення: використовуйте curl через опцію use\_curl.

або wget2. Він має підтримку bind-interface

:!: З червня 2021 року \[\ OpenDNS повертає помилку “badauth” при використанні Wget 1.x або uclient-fetch (стандарт у OpenWrt 21.02.0).

Причина: Wget 1.x потребує параметр командного рядка --auth-no-challenge для роботи з OpenDNS.

Рішення: Встановіть та використовуйте curl через опцію use\_curl = 1 у глобальній секції.