как добавить запись в локальный преобразователь 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, которые бы сделали это?

misteryes
источник

Ответы:

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.

Hennes
источник