пожалуйста, расскажите мне, как работает DNS в Linux с командами и отладкой

пожалуйста, расскажите мне, как работает DNS в Linux с командами и отладкой

Я хочу понять, что происходит, когда мы вводим какой-то URL в браузере, и как отладить, если что-то не работает, используя команды Linux.

решение1

[Я] хочу понять, что происходит, когда мы вводим какой-то URL в браузере.

См. например

и как отлаживать

Наиболее полезными инструментами, вероятно, являются

  • tcpdump.
  • nslookupили его более современные эквиваленты hostи dig.
  • wgetили curl. Прочитайте их man-страницы, чтобы узнать о полезных опциях, таких как
    • --server-response,
    • --debug,
    • --verbose,
    • --no-dns-cache

Вам нужно сначала понять локальное разрешение имен, потому что есть службы имен, которые могут использоваться до DNS (например, локальные файлы хостов, а также в некоторых редких настройках другие сетевые службы, такие как NBNS, YP и т. д.). Я бы начал с чтенияman resolv.conf

решение2

Система Linux поставляется с рядом системных библиотек, включая реализацию sys/sockets.hдля программ на языке C, которая реализуетAPI сокетов БерклииPOSIXСтандарты. Спецификация POSIX включает определениеметодназывается getaddrinfo(), который возвращает IP-адрес хоста программе, которой он нужен. Каждая среда выполнения программирования (например,Питон,перл,PHP-файли т.д.) реализует собственные интерфейсы, с помощью которых они вызываютgetaddrinfo()но большинство из них на самом деле используют метод ядра для фактической обработки DNS-запроса.

Соединение сокетов включает в себя ряд вызовов методов, включая socket(), bind(), connect() и т. д. См. мой ответздесьо том, как эти вызовы координируются для создания сетевого соединения.

Устранение неполадок разрешения DNS на стороне клиента сводится к серверу и кэшу. Сервер ответит адресом, который он знает для назначения, но если это не тот адрес, который вам нужен по какой-либо причине (геолокация, черный список и т. д.), вы можете сменить сервер на тот, который имеет нужный вам адрес. Если вы подключаетесь к серверу с нужным вам адресом, но все равно получаете плохой результат, это может быть вызвано кэшированным ответом на вашем хосте или вышестоящим маршрутизатором или кэширующим прокси-сервером.

Связанный контент