qzeleza / kvas

vpn и shadowsocks клиент для роутеров keenetic
Other
306 stars 26 forks source link

Используется рандомный IP от DNS серверов #110

Closed pakinmaksim closed 5 months ago

pakinmaksim commented 5 months ago

Используются разные IP от разных DNS Если кратко, то предлагаю резолвить IP от всех DNS серверов, указанных в /etc/resolv.conf

Как пришел к этому После небольшого дебага понял, что КВАС достает IP, обращаясь к самому себе - тут
Если указано несколько DNS серверов (например, от провайдера и 8.8.8.8), то может выбраться не тот, что был выбран при заполнении таблицы unblock.

Что ожидается Можно ли сделать запрос IP от всех DNS + убрать дубли, чтобы точно не было проблем. Вот даже набросок кода:

dns_servers=$(awk '/^nameserver/ { print $2 }' /etc/resolv.conf)

ip_list=$(for dns in $dns_servers; do
    kdig +short @$dns $domain
done | sort -u)

Конкретно у меня была проблема с cdn.oaistatic.com (для ChatGPT, спасибо ему за набросок): От провайдера - 188.114.99.225, 188.114.98.225 От гугловского - 172.64.146.98, 104.18.41.158

Гугловский сохранился в unblock, а от провайдера - нет, в итоге есть VPN или нет выбирается рандомно при каждом сбросе кеша в браузере.

PS: Извиняюсь, если это надо не сюда или я что-то не указал в тикете. Это не сколько баг, сколько feature-request, смотря как посмотреть. Куда feature-request кидать я не нашел...

pakinmaksim commented 5 months ago

Как временное решение - убрал DNS провайдера, оставил только гугловский. Всё отлично заработало

badigit commented 5 months ago

Интересно, а при использовании agh тоже будет эта проблема? Я например использую в agh несколько dns серверов и стратегию "параллельные запросы" - сразу нескольким DNS отправляется запрос и выбирается самый быстрый ответ. Это чем то чревато?

qzeleza commented 5 months ago

В Квасе не используются DNS установленные в системных настройках роутера. Квас использует DNS тех серверов, которые выбраны в его конфигурации: dnsmsq или AdGuar, а они в свою очередь обращаются к DNS серверам, которые прописаны в настройках этих программ.