Как настроить MikroTik так, чтобы он использовал DNS‑сервер Amnezia DNS?

На MikroTik у меня запущен контейнер с клиентом xray reality; в облаке арендован сервер с контейнером amnezia VPN, на котором также работает amnezia DNS, и особенностью amnezia DNS является направление DNS‑запросов внутри VPN‑туннеля — как настроить MikroTik, чтобы он использовал amnezia DNS на этом облачном сервере?
  • 20 марта 2026 г. 15:01
Ответы на вопрос 3
Кратко — нужный принцип: сделать так, чтобы MikroTik действительно мог достучаться до Amnezia DNS через VPN‑туннель (т. е. к IP‑адресу, видимому в VPN), назначить этот IP как DNS‑сервер на MikroTik и (опционально) раздать его клиентам по DHCP или принудительно перенаправлять все DNS‑запросы клиентов на этот IP. Ниже — пошагово с примерами команд.

1) Убедитесь, что VPN‑туннель поднят и DNS‑сервер Amnezia доступен по VPN‑IP
- Вы должны знать VPN‑IP сервера Amnezia (например 10.10.10.1) и интерфейс, через который ходит туннель (WireGuard/PPP/etc).
- Проверьте из MikroTik: ping 10.10.10.1 (или /tool ping).
- Если VPN устанавливается в контейнере внутри MikroTik, убедитесь, что контейнерная сеть маршрутизируется наружу и что MikroTik ядро видит маршрут до VPN‑IP. При необходимости добавьте статический маршрут к этому IP через интерфейс туннеля.

/ip route add dst-address=10.10.10.1/32 gateway=<WG-GATEWAY-IF-or-next-hop>

Примеры WireGuard (если вы создаёте интерфейс прямо в RouterOS):
/interface wireguard add name=wg-amnezia mtu=1420
/ip address add address=10.10.10.2/32 interface=wg-amnezia
/interface wireguard peers add interface=wg-amnezia public-key="PUBKEY_SERVER" endpoint-address=<server_public_ip> endpoint-port=51820 allowed-address=10.10.10.0/24 persistent-keepalive=25

2) Назначьте этот VPN‑IP как DNS для RouterOS
- Настройка DNS резолвера RouterOS так, чтобы он использовал Amnezia DNS:
  /ip dns set servers=10.10.10.1 allow-remote-requests=yes
- Проверьте резолв с конкретным сервером:
  /tool dig @10.10.10.1 example.com

Важно: указывать нужно именно VPN‑IP сервера (внутренний адрес), а не публичный IP сервера в облаке, потому что Amnezia DNS обслуживает запросы только внутри VPN.

3) Раздать DNS клиентам (DHCP / PPP)
- Если клиенты получают DNS по DHCP:
  /ip dhcp-server network set <network-number> dns-server=10.10.10.1
- Для PPP/PPPoE/L2TP профиля — выставьте соответствующий DNS в профиле.

4) Принудительное перенаправление всех клиентских DNS (опционально, если клиенты ставят свои DNS)
Если вы хотите, чтобы все запросы на порт 53 из LAN попадали на Amnezia DNS независимо от настроек клиента — добавьте dst‑nat правила:

/ip firewall nat add chain=dstnat dst-port=53 protocol=udp action=dst-nat to-addresses=10.10.10.1 to-ports=53 \
    dst-address-type=!local comment="Redirect UDP DNS to Amnezia"
/ip firewall nat add chain=dstnat dst-port=53 protocol=tcp action=dst-nat to-addresses=10.10.10.1 to-ports=53 \
    dst-address-type=!local comment="Redirect TCP DNS to Amnezia"

Пояснения:
- dst-address-type=!local предотвращает переадресацию запросов, адресованных самому MikroTik.
- Если RouterOS у вас старой версии без dst-address-type, добавьте более точные условия (например src-address=<LAN_NET> и dst-address!=10.10.10.1).
- Если DNS сервер слушает другой порт — скорректируйте to-ports и dst-port.

5) Правила firewall / forwarding
Разрешите пересылку DNS через туннель, если у вас есть строгие filter‑правила:
/ip firewall filter add chain=forward src-address=<LAN_NET> dst-address=10.10.10.1 protocol=tcp dst-port=53 action=accept
/ip firewall filter add chain=forward src-address=<LAN_NET> dst-address=10.10.10.1 protocol=udp dst-port=53 action=accept

6) Тестирование
- С роутера: /tool dig @10.10.10.1 example.com
- С клиента в LAN: nslookup example.com (должен вернуть ответ от 10.10.10.1)
- Если использовали dst‑nat — проверьте, что трасса проходит через туннель (tool torch на порт 53 и на wg интерфейсе).

Возможные проблемы и советы
- Если RouterOS пытается резолвить домены и использует не тот источник (не VPN IP), добавьте статические маршруты или используйте policy based routing, чтобы трафик к 10.10.10.1 шел через туннель и имел правильный исходный адрес.
- Порядок NAT‑прав важен — dst‑nat должно стоять до других правил, которые могли бы менять маршрут.
- Если DNS использует DoH/DoT или нестандартный порт — настройте перенаправление/покупку в соответствии с этим.
- Для отладки используйте torch, packet sniffer и лог firewall.

Если напишите точные параметры вашей схемы (какой тип VPN, IP адреса туннеля, слушающий порт DNS, RouterOS версия), я дам конкретные команды под вашу конфигурацию и учту нюансы (например, VPN в контейнере на MikroTik).
маршрут + IP в днс нужный прописать
Пропишите маршруты до 10.8.1.0/32 (именно так) и 172.29.172.254 через интерфейс awg. 172.29.172.254 это DNS.
Похожие вопросы