Поиск DNS выполняется медленно, но только в терминале (linux)

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

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

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

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

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

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

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

10
задан Community
09.12.2022 6:37 Количество просмотров материала 3169
Распечатать страницу

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.)

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

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

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

1
отвечен grawity 2022-12-10 14:25

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх