Поиск
Показаны результаты для тегов 'dns'.
Найдено 1 результат
-
Всем привет! Рассмотрим как можно заблокировать рекламу при использовании Marzban. Есть 3 способа: 1. Использовать AdGuard Home, прописав в xray-config.json соответствующие строчки: nano /var/lib/marzban/xray_config.json И прописываем: "dns": { "servers": [ "127.0.0.1" ] }, Но если я правильно понял, то трафик делает петлю и всё начинает грузиться очень и очень медленно, такой способ я бы не рекомендовал использовать. Главный плюс в том, что можно всё контролировать через веб-панель ADH + шифрование трафика. 2. Прописать также в xray-config.json вместо 127.0.0.1 любой известный DNS сервер, который блокирует рекламу, например, тот же AdGuard: 94.140.14.14 и 94.140.15.15 (Список известных DNS-провайдеров). Минусы такого способа в том, что эти сервера мы не контролируем и не можем элементарно настроить списки блокировок, в частности нет никакого шифрования. 3. И третий способ, который я использую. В Ubuntu, если не ошибаюсь, то начиная с версии 20.04 используется служба systemd-resolved - локальный прослушиватель заглушки DNS на 127.0.0.53. Почитать подробнее можно тут. С помощью этой службы мы и будем менять DNS на самом сервере, не прописывая ничего в Marzban. Я использовал NextDNS, служба с бесплатными 300к запросами в месяц. Если израсходуете лимит, то DoT (шифрование) останется работать, но рекламу он перестанет блокировать. Для такого случая предусмотрены подписки за 149₽ в месяц или 1490₽ в год, РФ карты разумеется не принимают)) Что не мало важно, крипту они поддерживают. Приступим к настройке, перейдём на nextdns.io и пройдём регистрацию. В Security включено всё, кроме Google Safe и NRD (блокировка новых доменов, которым менее 30 дней - частенько блочило некоторые сайты, хотя их можно было включить во вкладку Allowlist, но не вижу смысла) В Privacy включены блок листы, для поиска по названиям список ниже: AdGuard DNS filter AdGuard Mobile Ads filter AdGuard Tracking Protection filter AdGuard Base filter AdGuard Social Media filter AdGuard Russian filter OISD NextDNS Ads & Trackers Blocklist NoTrack Tracker Blocklist 1Hosts (Lite) HaGeZi - Multi NORMAL С таким списком работает нормально огромное количество сайтов, странных блокировок пока не замечал. НО ВЕРОЯТНО СПИСОК ИЗЛИШЕН))) В Native Tracking Protection включаются трекеры от определенных производителей - тут уже на своё усмотрение. Также включен пункт Block Disguised Third-Party Trackers - на скриншоте не отображается. Parental Control - родительский контроль; Denylist - какие сайты хотите заблокировать; Allowlist - какие сайты исключить из блока; Analytics - статистика по блоку; Logs - логи. В Settings изменил следующее: Также на главной странице NextDNS есть возможность установить данные сервера на любую выбранную ОС: Но к этому мы ещё вернёмся! Теперь подключимся через Marzban и перейдём на страницу NextDNS. И привяжем IP нашего сервера. На этом настройка закончена! Приступим к настройке сервера. Проверим текущие DNS сервера: sudo resolvectl status Изменим DNS сервера глобально на сервере (в файле /etc/systemd/resolved.conf) По идее этого достаточно, чтобы реклама блокировалась даже без редактирования netplan (/etc/netplan), но если не редактировать netplan, то будет утечка DNS, по крайней мере у меня так где-то в 90% случаев. sudo nano /etc/systemd/resolved.conf Файл имеет следующий вид: Для внесения изменений необходимо отредактировать 3 пункта: DNS - наши сервера DNS; FallbackDNS - если будут недоступны основные сервера, то запросы будут проходить через них; DNSOverTLS - включаем DoT (true) Источники - один и два. Формат записей DNS в файле resolved.conf: DNS=94.140.14.14#dns.adguard.com Редактируем resolved.conf, т.к. мы включаем поддержку DoT, то убираем # и прописываем свои адреса NextDNS: DNS=прописываем адреса со страницы my.nextdns.io, можно вместе с DNSOverTLS=yes, либо прописать DoT ниже FallbackDNS: FallbackDNS=1.0.0.1#1dot1dot1dot1.cloudflare-dns.com (у меня прописано так); DNSOverTLS=true (в принципе тут всё понятно, включаем поддержку DoT). Отредактировали, сохранили, выходим. Перезапустим systemd-resolved sudo systemctl restart systemd-resolved И проверим статус: sudo systemctl status systemd-resolved Далее проверим текущие DNS сервера: sudo resolvectl status Мой вывод, не буду расписывать каждый пункт, думаю там итак всё понятно: По идее достаточно того, что прописано в Global И можно уже проверить, зайдя на любой сайт по проверке утечки DNS и рекламы, предварительно подключившись к Marzban. DNS: https://www.dnsleaktest.com/ https://browserleaks.com/dns https://ipleak.net/ Реклама: https://d3ward.github.io/toolz/adblock.html https://checkadblock.ru/ https://test.adminforge.de/adblock.html Но мы также будем редактировать netplan, путь /etc/netplan Переходим в папку и проверим какие файлы там лежат: cd /etc/netplan && ls Обычно там лежит один файл - 50-cloud-init.yaml Если два, то нужно настраивать каждый, либо перенести всё в один, как это сделать - гуглим, либо вот несколько источников по настройке: https://losst.pro/nastrojka-seti-netplan-v-ubuntu https://umnoe-gelezo.ru/2023/09/1604/ https://sysadminium.ru/adm_serv_linux-network_setup_on_ubuntu/ https://netplan.io/ Сразу повысим права файлу, ибо он может выдать предупреждение после применения netplan try: sudo chmod 600 /etc/netplan/50-cloud-init.yaml Редактируем файл netplan: sudo nano /etc/netplan/50-cloud-init.yaml Вносим туда следующее: ВАЖНО! Не копировать! Всё прописывать в ручную, без TAB, только пробелы! nameservers: addresses: [адреса DNS IPv4, можно прописать также IPv6] И т.к. я не хочу получать DNS сервера хостера через DHCP, то я включил: dhcp4: yes dhcp6: yes И добавил (источник) dhcp4-overrides: use-dns: no dhcp6-overrides: use-dns: no Если используете Hizakura, то они работают без DHCP и в файле netplan будет прописано gateway. При применении команды netplan try может выскочить предупреждение, что маршруты устарели и прочее, то по идее можно не обращать внимание. Главная задача - заменить DNS через nameservers. Всё, сохранились, вышли и теперь проверим текущую конфигурацию: sudo netplan generate Применяем конфигурацию с возможностью отмены: sudo netplan try Или просто применим конфиг: sudo netplan apply После применения команды netplan try может выскочить предупреждение, на него можно не обращать внимания. Cannot call Open vSwitch: ovsdb-server.service is not running. По идее при тесте утечки DNS не будут отображаться DNS хостера, но такое редко бывает. Проверяем DNS сервера: sudo resolvectl status И видим, что все сервера изменены. С помощью ngrep можно проверить, работает ли DNS over TLS. В этом режиме для DNS-запросов используется порт 853 (вместо стандартного 53). По этой причине при разрешении имени с DoT команда ngrep port 53 не выдаст ничего, а команда ngrep port 853 выведет зашифрованные данные. На этом всё! Вместо NextDNS можно использовать тот же AdGuard или что-то похожее. С такой конфигурацией у меня всё работает также, как с DNS хостера, никаких значительных изменений я не увидел, но возможно есть задержка в одну секунду +-, а вот по сравнению с AdGuard Home разница значительна! Немного полезных ссылок: https://adguard-dns.io/kb/ru/general/dns-providers/ https://www.dnsperf.com/#!dns-resolvers https://github.com/curl/curl/wiki/DNS-over-HTTPS https://dnscrypt.info/public-servers/ UPD. С такой реализацией не грузит плееры на hdrezka.ag, нужно использовать зеркала.