Установка DuckDNS. Сервис динамических DNS.
Инструкция к видео: YOUTUBE
Установка DuckDNS вручную, через терминал.
1) Проверяем вернет ли что-либо команда:
ps -ef | grep cr[o]n
Где (ps -ef) — показывает все процессы
(grep cr[o]n) — Ищет процесс cron
Если cron не установлен, то установить можно командой:
sudo apt install cron sudo systemctl enable cron sudo systemctl start cron
2) Проверяем, установлен ли curl
curl
Если выводится — command not found, curl установить можно командой:
sudo apt install curl
Если выводится: curl: try ‘curl —help’ or ‘curl —manual’ for more information — значит все в порядке.
Для чего? Curl делает HTTPS-запрос к серверу DuckDNS, чтобы обновить IP
3) Создаём папку и файл скрипта, переходим в этот каталог, открываем в редакторе nano:
mkdir duckdns cd duckdns nano duck.sh
4) Вставляем в редакторе основной код обновления и подставляем свои данные:
echo url="https://www.duckdns.org/update?domains=VASHDOMEN&token=VASHTOKEN&ip=" | curl -k -o ~/duckdns/duck.log -K -
Где: «VASHDOMEN» — ваш домен, например vasyapupkin.duckdns. org Если используете несколько доменов, то через запятую.
«VASHTOKEN» — Ваш токен с сайта duckdns org
5) Сохраняем файл и выходим. Ctrl+O => Enter, Ctrl+X
6) Делаем файл исполняемым на сервере:
chmod 700 duck.sh
7) Добавляем задачу в cron. Переходим в редактор:
crontab -e
Добавляем строчку:
*/5 * * * * ~/duckdns/duck.sh >/dev/null 2>&1
Где: */5 — каждые 5 минут каждый день, каждого месяца
Данная строчка (>/dev/null 2>&1) Нужна, чтобы cron не засыпал вас email уведомлениями. Отключает вывод ошибок.
Сохраняем и выходим: Ctrl+O => Enter, Ctrl+X
8) Проверяем работоспособность:
Запускаем вручную:
./duck.sh
Открываем Лог
cat duck.log
Если все работает, будет OK,
если ошибка — KO (проверьте правильность токена и домена)
По итогу:
Каждые 5 минут:
Скрипт делает HTTPS запрос к DuckDNS
DuckDNS обновляет IP вашего домена
Ваш домен всегда указывает на актуальный IP
Установка DuckDNS через Docker / Стек в Portainer
1) Подставьте свои значения в код стека в строчки SUBDOMAINS и TOKEN:
version: '3'
services:
duckdns:
image: linuxserver/duckdns
environment:
- PUID=1000
- PGID=1000
- SUBDOMAINS=ваш_домен
- TOKEN=ваш_токен_DuckDNS
restart: unless-stopped
В Nginx Proxy Manager добавьте SSL сертификат:
Добавьте Proxy Host:
Domain Name: ваш_субдомен.duckdns.org
Scheme: http
Forward Hostname/IP: IP сервера (например 192.168.0.75)
Forward Port: 5678
✅ Block Common Exploits
✅Weblockets Support
Включите SSL (Let’s Encrypt), на вкладке SSL:
✅Force SSL
✅HTTP/2 Support
Не забудьте открыть на роутере порты:
80 — HTTP
443 — HTTPS
