MyWiki

wiki для личного использования

Инструменты пользователя

Инструменты сайта


services:owrt_mtproto_ddns

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

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

Содержание

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

  • Устройство: OpenWrt 24.10.4, архитектура aarch64_cortex-a53
  • DDNS-провайдер: DuckDNS (домен korolwrt.duckdns.org)
  • Прокси: tg-ws-proxy-go (MTProto)
  • Порт прокси: 1080
  • Секрет: dd5904f9087ac55495ef45f7c56d6ce707 (формат dd)

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) Setup / Update → подтвердить (y)
  • 4) Advanced:
  • 19) Mode → установить mtproto
  • 20) Secret1) generate2) dd
  • 15) Public IP → ввести korolwrt.duckdns.org
  • 12) DC mapping → ввести по одному:
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

Далее:

  • 13) Port → проверить 1080 (при необходимости изменить)
  • 16) Show QR code → скопировать ссылку для Telegram

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

  • 2) Start proxy → запустить в фоне (b)
  • 3) Enable autostart → подтвердить (y)

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. Контрольный список

  • ☐ DDNS: домен korolwrt.duckdns.org разрешается в текущий IP
  • ☐ DDNS: force_dnstcp=0 (UDP)
  • ☐ DDNS: автозапуск включён
  • ☐ Прокси: бинарник установлен
  • ☐ Прокси: запущен и слушает порт 1080
  • ☐ Прокси: автозапуск включён
  • ☐ Прокси: DC mapping добавлен (все 5 дата-центров)
  • ☐ Прокси: Public IP = korolwrt.duckdns.org
  • ☐ Брандмауэр: порт 1080 открыт в зоне wan

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. Итог

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

  • DDNS обновляет IP каждые 3600 секунд (1 час) и принудительно каждые 259200 секунд (3 дня).
  • MTProto-прокси работает на порту 1080 и доступен по домену korolwrt.duckdns.org.
  • Автозапуск включен для обоих сервисов.
  • Брандмауэр настроен и сохраняется после перезагрузки.
  • Все дата-центры Telegram прописаны вручную для стабильной работы.
При смене внешнего IP DDNS автоматически обновит DNS-запись, и ссылка для Telegram продолжит работать без изменений.

Antistatus 26.06.2026 12:50

services/owrt_mtproto_ddns.txt · Последнее изменение: admin

Инструменты страницы