как добавить запись в локальный преобразователь DNS [закрыто]


19

Я хочу сделать несколько тестов на Linux. Я хочу разместить небольшой веб-сервер на компьютере с IP-адресом: 1.2.3.4 (предположение), и когда делается запрос DNS для определенного URL-адреса: kitty.myweb.com, я хочу вернуть этот IP-адрес.

Сценарии:

  1. Когда я открываю браузер (firefox или что-то еще), я ввожу URL kitty.myweb.com, и браузер будет выполнять DNS-запрос
  2. Я хочу написать программу, которая делает запрос DNS для kitty.myweb.com

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

Я хочу добавить запись (kitty.myweb.com: 1.2.3.4) в локальный преобразователь DNS, чтобы для двух приведенных выше сценариев ответ DNS был 1.2.3.4 без необходимости выполнения внешнего запроса.

Возможно ли это сделать на Linux, и если да, то как? Возможно, есть какие-нибудь фрагменты кода C, которые бы сделали это?

Ответы:


30

Вы можете использовать / etc / hosts для добавления своей записи. Это на самом деле не использует DNS, но влияет на библиотеку распознавателя в Linux, которая используется большинством приложений. Добавлять:

1.2.3.4 kitty.myweb.com

Другой вариант - установить простой DNS-сервер в вашей системе. Тот, который я часто использую, называется dnsmasq. В некоторых дистрибутивах он устанавливается по умолчанию как средство разрешения кэширования, и в этом случае вам нужно будет только изменить конфигурацию, включив в нее:

адрес = / kitty.myweb.com / 1.2.3.4

Если вы используете свой собственный DNS-сервер, вам, вероятно, потребуется поиграть с /etc/resolv.conf, который используется библиотекой решателя Linux. Чтобы библиотека распознавания смотрела на локальный DNS-сервер, вам потребуется запись в resolv.conf:

nameserver 127.0.0.1


9

Самый простой способ добавить одну запись DNS на локальный хост - добавить ее в файл hosts. Расположение этого файла может варьироваться в зависимости от дистрибутива, но его традиционное расположение /etc/hostsтаково и должно выглядеть примерно так:

:: 1 localhost localhost.yourdomain.tld
127.0.0.1 localhost localhost.yourdomain.tld
1.2.3.4 kitty.myweb.com

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.