Ник | Пост | Дата |
---|---|---|
brook.qays | При использовании https://antizapret.prostovpn.org/proxy.pac в Firefox 69.* - 70.0 на Windows 7 64-bit все сайты загружаются около минуты, в т.ч. любые неблокированные, например Хабр. Включение или отключение DNS-over-HTTPS никакого заметного эффекта не оказывает. Проверено на нескольких чистых инсталляциях без дополнений и пользовательских настроек. При отключении proxy.pac неблокированные сайты загружаются практически мгновенно. В браузерах на базе WebKit использование https://antizapret.prostovpn.org/proxy.pac на этом же компьютере не вызывает никаких проблем с загрузкой любых сайтов. | 2019-10-24T11:29:25.142Z |
ValdikSS | Windows 7 32 bit, Firefox 70.0 — не проявляется. Запуск браузера происходит быстро, вне зависимости от наличия или отсутствия PAC-файла, заблокированные и незаблокированные сайты открываются без задержки. Попробуйте открыть консоль браузера (CTRL+SHIFT+J) и посмотреть, происходит ли что-либо. | 2019-10-24T12:40:54.214Z |
brook.qays | При включенном proxy.pac в чистом Firefox 69.0.3 64-bit с новым профилем:
При отключенном proxy.pac ошибки NS_ERROR_FAILURE отсутствуют. При включенном proxy.pac в Firefox 70.0 64-bit Safemode:
| 2019-10-24T13:54:13.757Z |
ValdikSS | Может, у вас с DNS что-то не так? Попробуйте сменить сервер. | 2019-10-24T14:18:21.894Z |
brook.qays | Попробовал, не помогло. Если бы проблема была с DNS, то на вебките она тоже должна была проявиться. При включенном proxy.pac в статусной строке Firefox во время загрузки незаблокированного сайта висит “Передача данных с домен с которого идёт загрузка контента”. То есть контент грузится и домены резолвятся, но внутри движка браузера что-то очень сильно замедляет процесс загрузки при включенном proxy.pac. Не удивлюсь если Firefox вовсе игнорирует правила и все сайты пускает через серверы Антизапрета. Есть подозрения что это баг 64-битной версии Firefox для Windows. | 2019-10-24T14:44:13.543Z |
ValdikSS | Протестировал на 64-битной Windows 7 с 64-битным Firefox 70.0 — всё в порядке. Видимо, это особенности вашей системы или DNS-сервера. Незаблокированные сайты не будут открываться через прокси. Если бы браузер попытался их открыть через прокси, вы бы видели ошибку. | 2019-10-24T16:20:54.922Z |
brook.qays | Хотелось бы понять куда копать. Проверил на другой машине в той же сети (Firefox 69.0 64-bit, Windows 7 64-bit) - неблокированные ресурсы при включении proxy.pac также лагают исключительно в Firefox. Методика тестирования:
Результаты. Proxy.pac отключен:
Proxy.pac включен:
| 2019-10-25T10:29:00.208Z |
ilyaigpetrov(ilyaigpetrov) | Попробуйте так:
| 2019-10-25T11:13:45.646Z |
brook.qays | Благодарю, помогло. Заменил dnsResolve(…) на dnsResolve(null). Незаблокированные сайты загружаются без лагов, заблокированные тоже перестали лагать. Мой провайдер фильтрует по ip, поэтому резолвить имена через серверы Антизапрета это лишний overhead. Непонятно почему вебкит не ломается когда dnsResolve не выставлен в (null). Я так понимаю нельзя глобально выставить dnsResolve в (null), так как это сломает всё у пользователей чьи провайдеры подменяют ответы DNS? | 2019-10-25T12:37:56.480Z |
ilyaigpetrov(ilyaigpetrov) | Проверки одного лишь доменного имени недостаточно, чтобы соответствовать требованиям по блокировкам от РКН. Нужно также блочить те IP-адреса, которые никак не привязаны к доменным именам, именно такие ip и присутствуют в PAC-скрипте. У вас не получится длительное время использовать модифицированный PAC-скрипт, нужно каждые N часов запрашивать новый скрипт для удовлетворения системы защиты от злоупотреблений прокси-серверами. | 2019-10-25T14:30:02.129Z |
ilyaigpetrov(ilyaigpetrov) | Убедитесь, что в настройках FireFox у вас отключен «DNS через HTTPS», т.к. один из серверов cloudflare, используемый для этого в FireFox, может быть блокирован вашим провайдером. | 2019-10-25T14:44:41.320Z |
ValdikSS | У вас проблемы с DNS, смените ваш DNS-сервер. | 2019-10-25T14:47:28.579Z |
ValdikSS |
Адреса резолвятся через системный DNS, а не через DNS антизапрета. Если ваш провайдер блокирует сайты по IP, антизапрет будет работать только частично, т.к. не предназначен для таких провайдеров. | 2019-10-25T15:03:44.045Z |
brook.qays | С помощью blockcheck v0.0.9.8 выяснил что проблемы с DNS на стороне провайдера и каноничные DNS-серверы прописывать бессмысленно.
DNSCrypt помог. Осталось 3 вопроса. Почему проблемы с DNS не проявляются в Opera и прочих браузерах на вебките? Почему проблемы проявляются в Firefox только при включенном прокси Антизапрета? Что означает переменная dnsResolve(null), резолвинг через DNS Антизапрета? Неплохо было бы добавить в инструкцию Антизапрета предупреждение что Firefox не работает с Антизапретом без DNSCrypt при блокировках сторонних DNS-серверов. Установить и настроить DNSCrypt конечно несколько сложнее чем вбить url скрипта автонастройки прокси в настройки браузера, что явно не добавит лисе популярности. Большое всем спасибо что помогли разобраться. | 2019-10-25T18:09:39.452Z |
ilyaigpetrov(ilyaigpetrov) |
Я советовал вам заменить А попробуйте DNS over HTTPS: меню → Настройки → Основные → Параметры сети → Настроить… → Отметить галочкой “Включить DNS через HTTPS”. | 2019-10-26T00:43:18.590Z |
brook.qays |
Для чистоты эксперимента проверил ip-адреса открываемого ресурса? Тогда откуда Firefox берёт его когда там Отключил DNSCrypt и включил DNS over HTTPS в Firefox. | 2019-10-26T10:36:20.019Z |
ilyaigpetrov(ilyaigpetrov) |
В PAC-скрипте есть главная функция, что-то типа main в других языках программирования, но тут она называется Так вот, внутри этой главной функции зовётся функция | 2019-10-26T11:03:48.193Z |
ilyaigpetrov(ilyaigpetrov) | @ValdikSS, может, в этой версии FireFox | 2019-10-26T11:15:03.724Z |
ValdikSS | Я не вижу смысла разбираться в проблеме — очевидно, она вызвана проблемами с DNS. | 2019-10-26T13:28:22.462Z |
brook.qays | В PAC-скрипте используется не Если при “холостом” вызове DNS-запроса не совершается совсем, то откуда браузер берёт ip? Это любая версия Firefox 69.* - 70.*. Чем проще всего записать трафик на 53 порт? | 2019-10-26T13:30:39.038Z |
ValdikSS | dnsResolve вызывается на каждый запрос, к любым сайтам. Эта функция не обязательно будет работать точно так же, как резолв домена в браузере. | 2019-10-26T13:35:15.278Z |
ValdikSS | 2019-10-26T13:35:44.016Z | |
ilyaigpetrov(ilyaigpetrov) |
| 2019-10-26T13:45:46.077Z |
brook.qays | Отправил всем в ЛС запись трафика на 53 порт. Всё записано при включенном proxy.pac, за исключением файла Firefox.pcapng. Особых отличий в запросах-ответах и таймингах между ними при лагах не вижу, но возможно что-то проглядел. Если они действительно не отличаются, тогда совсем непонятно почему движок Firefox ломается при включении proxy.pac. | 2019-10-28T09:56:01.571Z |
brook.qays | Благодарю всех за помощь, это баги Firefox.
| 2019-10-29T11:35:47.023Z |
ilyaigpetrov(ilyaigpetrov) | Создал https://bugzilla.mozilla.org/show_bug.cgi?id=1592248. 127.0.0.1 у меня тоже проксируется, PAC-скрипт для него срабатывает, dns-пакеты отсылаются. | 2019-10-29T12:28:37.451Z |
brook.qays | Странно что 127.0.0.1 проксируется, в Firefox на Windows он в исключениях. Второй баг тоже надо зарепортить, у них там какой-то говнокод, если сравнивать с вебкитом. Видимо в вебките это как-то асинхронно исполняется. | 2019-10-29T16:44:07.279Z |
ilyaigpetrov(ilyaigpetrov) | Попробуйте отправить им второй баг самостоятельно, я мало заинтересован в том, чтобы чинить FireFox для работы с блокировками на уровне DNS, мне нужно, чтобы наши PAC-скрипты работали у пользователей безопасно (т.е. через DoH) и независимо от системных DNS, когда нужно. | 2019-10-29T17:14:31.388Z |
brook.qays | 2019-10-30T11:14:00.316Z | |
ilyaigpetrov(ilyaigpetrov) | WebKit-браузеры на windows – это, наверно, уже редкость, я ни одного не знаю. Хромиум перешёл на собственный движок Blink. | 2019-10-30T11:28:17.820Z |
brook.qays | Спасибо, дописал к репорту. Кстати, какой практический смысл в резолвинге через dnsResolve(), а не напрямую через движок? | 2019-10-30T11:38:02.686Z |
ilyaigpetrov(ilyaigpetrov) | Внутри PAC-скрипта вам не известен IP-адрес. Единственный способ там его получить – это dnsResolve. Почему dnsResolve работает не так, как адресная строка браузера, я не знаю. По идее dnsResolve отрабатывает до отправки DNS-запроса адресной строки (к примеру, этот dns-запрос вообще может быть передан прокси-серверу, установленному через PAC-скрипт). | 2019-10-30T11:43:19.923Z |