Налаштування клієнта DDNS
Дивіться також: Документація клієнта DDNS
- Через функціональні розширення не всі параметри підтримуються в усіх версіях OpenWrt.
- У описах до опцій вказується, які версії підтримуються, якщо опція доступна не у всіх версіях.
- Майте на увазі, що ddns-scripts призначені для підтримки ОДНОГО хоста або однієї версії IP-протоколу в межах одного розділу конфігурації.
- Починаючи з BB 14.07, ddns-scripts підтримує лише оновлення IPv4-адрес.
- Починаючи з версії ddns-scripts 2.7.6 (trunk), назви параметрів змінено для кращої функціональної групації.
- При оновленні ddns-scripts до новіших версій, назви параметрів будуть автоматично змінені у вже наявних конфігураційних файлах.
- Додатково деякі опції також доступні глобально, тому їх не потрібно вказувати для кожного розділу сервісу.
- Опції, визначені всередині розділу сервісу, перекривають глобальні налаштування.
Файл /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.07 — IPv6 не підтримується. З 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 у глобальній секції.