1

Кажется, у меня проблема с DNS, хотя я не совсем уверен.

При просмотре интернета все быстро и нормально. Но при использовании терминала все становится странным.

Когда я пингую www.google.com, у меня хорошее время возврата, но каждый запрос занимает много времени (около 7-8 секунд на запрос). При использовании ping -n www.google.com или пинге ip напрямую все в порядке. Это связано с тем, как объяснить низкий RTT между чрезвычайно длинными (10 с) интервалами пинга? или Linux ping на самом деле не отправляет 1 пакет в секунду.

Согласно ответам на эти вопросы, это проблема DNS. Но, как я уже сказал, когда я просматриваю интернет, все в порядке. Для загрузки страницы нет 8 секундной задержки. Это происходит только в терминале. Я не понимаю, как проблема DNS может повлиять на терминал, но не интернет-браузер.

Это не будет проблемой, за исключением того, что мне нужно часто обновлять список зеркал для загрузки обновлений программного обеспечения (команда pacman-mirrors, на компьютере Arch), и из-за задержки они все время отключаются и, следовательно, обновляются выходит из строя.

Я еще не пробовал, но, возможно, смена DNS на Google будет работать. Однако это скорее обходной путь, чем исправление, и я чувствую, что проблема должна быть решена, если это вообще возможно.

Спасибо за вашу помощь.

1 ответ1

1

Первое предположение: настроенные DNS-серверы работают очень медленно, и вы не установили локальный DNS-кэш, который бы работал во всей системе.

Между тем, некоторые веб-браузеры (по крайней мере, Firefox и Chromium) имеют внутреннее DNS-кэширование, поэтому они не часто отправляют запросы. Иногда Chromium даже пытается выполнить поиск DNS, прежде чем вы нажмете на ссылку, поэтому вы никогда не заметите задержку.

Используйте dig или аналогичный инструмент для сравнения различных DNS-серверов:

$ dig www.google.com
...
;; Query time: 1 msec
;; SERVER: 10.35.0.1#53(10.35.0.1)

$ dig www.google.com @193.219.xx.xx
;; Query time: 7 msec
;; SERVER: 193.219.xx.xx#53(193.219.xx.xx)

$ dig www.google.com @8.8.8.8
;; Query time: 47 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)

Если только ваш текущий сервер работает медленно, измените его на более быстрый. (Иногда домашние шлюзы обычно имеют очень дерьмовые DNS-прокси. Особенно мне не повезло с D-Link.)

Но если все они работают медленно, установите тот, который работает локально (действует как локальный кеш) - Unbound или dnsmasq - хороший выбор. (Конечно, было бы интересно выяснить, почему ваша сеть так сильно тормозит DNS-запросы ...)

  • Если используется NetworkManager, вы можете настроить автоматическую настройку dnsmasq - установите dns=dnsmasq в файле NetworkManager.conf(5). (Последний выпуск 0.9.10 также поддерживает dns=unbound .)

  • Чтобы настроить его вручную, запустите соответствующую службу и отредактируйте /etc/resolv.conf чтобы использовать 127.0.0.1 в качестве сервера имен.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .