Настройка DDNS и MTProto-прокси на OpenWrt

В этой инструкции описан полный процесс настройки Dynamic DNS (DDNS) и MTProto-прокси для Telegram на роутере с OpenWrt. Все настройки выполнены и проверены, система готова к работе.

Содержание

1. Исходные данные

2. Настройка DDNS

2.1. Установка пакетов

opkg update
opkg install ddns-scripts luci-app-ddns drill

2.2. Настройка через LuCI

  1. Перейдите в Services → Dynamic DNS
  2. Нажмите «Add» и заполните:
    • Name: myddns_ipv4
    • Enabled: ☑ (включено)
    • Service: duckdns.org
    • Domain: korolwrt.duckdns.org
    • Username: korolwrt
    • Password: ваш токен DuckDNS
  1. Перейдите на вкладку «Advanced Settings»:
    • IP source: interface
    • Interface: wan
    • Force DNS over TCP: ☐ (отключено, снять галочку)
    • Use syslog: 2 (все сообщения)
  1. Нажмите «Save & Apply»

2.3. Включение автозапуска

/etc/init.d/ddns enable
/etc/init.d/ddns start

2.4. Проверка работы

logread | grep ddns
# Ожидаемый вывод: Update successful - IP 'X.X.X.X' send

3. Настройка MTProto-прокси

3.1. Установка tg-ws-proxy-go

wget -O /tmp/tg-ws-proxy-go.sh https://github.com/d0mhate/-tg-ws-proxy-Manager-go/releases/latest/download/tg-ws-proxy-go.sh && sh /tmp/tg-ws-proxy-go.sh

3.2. Настройка через меню (tgm)

Запустите меню:

tgm

Последовательность действий:

1:149.154.175.55
2:149.154.167.50
3:149.154.175.100
4:149.154.167.91
5:91.108.56.189

Далее:

Вернуться в главное меню (Enter или 0):

3.3. Проверка работы прокси

ps | grep tg-ws-proxy
netstat -tulpn | grep 1080
# Должен быть LISTEN на порту 1080

4. Настройка брандмауэра

Порт 1080 должен быть открыт для входящих соединений из интернета.

4.1. Через LuCI (сохраняется после перезагрузки)

  1. Network → Firewall → General Rules
  2. Add:
    • Name: TG_Proxy
    • Protocol: TCP
    • Source zone: wan
    • Destination port: 1080
    • Action: ACCEPT
  3. Save & Apply

4.2. Через SSH (временное правило)

nft add rule inet fw4 input_wan tcp dport 1080 accept

4.3. Проверка

nft list ruleset | grep 1080
# Ожидаемый вывод: tcp dport 1080 accept

5. Ссылка для подключения в Telegram

Скопируйте эту ссылку и откройте в Telegram:

tg://proxy?server=korolwrt.duckdns.org&port=1080&secret=dd5904f9087ac55495ef45f7c56d6ce707

Или получите QR-код через меню tgm → Advanced → Show QR code.

6. Автозапуск

DDNS

/etc/init.d/ddns enable
/etc/init.d/ddns start

Прокси

Через меню tgm: 3) Enable autostart → подтвердить (y).

Проверка автозапуска

/etc/init.d/ddns enabled  # Должен вернуть 1
# Для прокси: в меню tgm должно быть: proxy: running | autostart: enabled

7. Диагностика и устранение проблем

7.1. DDNS не обновляется

Проверка:

logread | grep ddns
nslookup korolwrt.duckdns.org

Решение:

  1. Убедиться, что force_dnstcp отключён (0)
  2. Проверить интернет-соединение на интерфейсе wan
  3. Перезапустить DDNS: /etc/init.d/ddns restart

7.2. Прокси не запускается

Проверка:

ps | grep tg-ws-proxy
netstat -tulpn | grep 1080

Решение:

  1. Переустановить бинарник через меню tgm → 1) Setup / Update
  2. Запустить вручную: tgm → 2) Start proxy → b

7.3. Telegram пишет "недоступен"

Возможные причины:

  1. Порт закрыт в брандмауэре
  2. Неправильный DC mapping
  3. Проблемы с DNS-разрешением домена

Решение:

  1. Проверить брандмауэр: nft list ruleset | grep 1080
  2. Проверить DC mapping в tgm → Advanced → DC mapping
  3. Проверить разрешение домена: drill korolwrt.duckdns.org
  4. Включить Cloudflare-прокси: tgm → Advanced → 6) Toggle proxyon
  5. Попробовать режим ee (FakeTLS): tgm → Advanced → 20) Secret → 3) ee

7.4. Ошибка "NO valid IP found" в DDNS

Причина: проблема с DNS-запросом через TCP.

Решение:

  1. Отключить force_dnstcp в LuCI (снять галочку)
  2. Установить drill: opkg install drill
  3. Проверить работу: drill korolwrt.duckdns.org

8. Контрольный список

9. Полезные команды

# Проверка IP на интерфейсе wan
ip -o addr show dev wan scope global
 
# Проверка DNS
drill korolwrt.duckdns.org
nslookup korolwrt.duckdns.org
 
# Просмотр логов
logread | grep ddns
logread | grep tg-ws
logread | grep -i error
 
# Перезапуск DDNS
/etc/init.d/ddns restart
 
# Открыть меню управления прокси
tgm

10. Итог

Система полностью настроена и готова к работе:

При смене внешнего IP DDNS автоматически обновит DNS-запись, и ссылка для Telegram продолжит работать без изменений.

Antistatus 26.06.2026 12:50