як додати запис до локального 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, і якщо так, то як? Чи є якісь фрагменти коду С, які б це зробили?

Відповіді:


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 Resolver. Щоб змусити бібліотеку резолюцій переглядати локальний DNS-сервер, вам знадобиться запис у resolutionv.conf:

сервер імен 127.0.0.1


9

Найпростіший спосіб додати єдиний запис DNS на ваш локальний хост - це додати його до файлу хостів. Розташування цього файлу може відрізнятися в залежності від розповсюдження, але його традиційне розташування є /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.