Налаштуйте dnsmasq NetworkManager для використання / etc / hosts


22

Я встановив DNSMASQ, але він не починався, оскільки 53 порту були зайняті.

Я дізнався, що ubuntu вже мав пакет dnsmasq і він працює.

Тепер проблема полягає в тому, що я просто хочу мати можливість вирішити мої хости в / etc / hosts через нього

тобто: nslookup somehostonlan localhost бути вирішеним для певного IP, взятого з / etc / hosts файлу.

але цього не відбувається.

Чому? BTW, як кешуючий DNS-сервер, він працює чудово. Я просто хочу, щоб він вирішив хости з файлу / etc / hosts, що все

Відповіді:


22

Щоб пришвидшити Інтернет, ubuntu 12.04 додав плагін для NetworkManager для запуску dnsmasq, локального сервера dns, який кешує записи dns. Проблема в тому, що плагін жорстко закодував рядок --no-hosts.

Отже, одне рішення - прокоментувати рядок, що завантажує плагін у конфігураційний файл NetworkManager, та перезапустити NetworkManager:

sudo mv /etc/NetworkManager/NetworkManager.conf /etc/NetworkManager/NetworkManager.conf.bak
sudo bash -c 'cat /etc/NetworkManager/NetworkManager.conf.bak | sed -e "s/^\(dns=dnsmasq\)$/#\1/" > /etc/NetworkManager/NetworkManager.conf'
sudo restart network-manager

Ще одне рішення - обернути dnsmasq, щоб відфільтрувати небажані аргументи:

sudo mv /usr/sbin/dnsmasq /usr/sbin/dnsmasq.bin
sudo bash -c 'cat > /usr/sbin/dnsmasq' << EOF
#!/bin/sh
dnsmasq=/usr/sbin/dnsmasq.bin

exec $dnsmasq `echo $@ | sed -e s/--no-hosts//`
EOF

sudo chmod 755 /usr/sbin/dnsmasq

Позначте помилку , яка впливає на вас.

Ще одне рішення без виправлення системних файлів

cat /etc/NetworkManager/dnsmasq.d/hosts.conf 

addn-hosts=/etc/hosts

7

Ця помилка все ще торкнулася мене навіть зараз (Ubuntu 14.04).

Нарешті я знайшов рішення, що просто додайте цей рядок 'addn-hosts = / etc / hosts' у файл конфігурації dnsmasq пакету Newworkmanager.

echo 'addn-hosts=/etc/hosts' > /etc/NetworkManager/dnsmasq.d/etc-hosts
service network-manager restart

Ідея полягає в тому, що ми додаємо / etc / hosts в якості додаткового файлу хоста.

Навіть якщо я міг знайти рішення, жорсткий варіант "--no-hosts" у двійковому файлі / usr / sbin / NetworkManager мене розчаровує.


7

Станом на серпень 2015 року інші відповіді застаріли.

Проста відповідь

  1. Створіть /etc/NetworkManager/dnsmasq.d/hosts.conf.
  2. Покладіть лінії, як address=/whatever/1.2.3.4у ній. Дивіться документи (шукайте --address). Wildcards можливі: address/.whatever./1.2.3.4.
  3. Убити dnsmasq( помилка ).
  4. Перезапустіть його: $ service network-manager restart.

1

dnsmasq повинен автоматично використовувати /etc/hostsфайл. Це можна відключити за допомогою параметра -hкомандного рядка або no-hostsпараметра налаштування. Я не очікував, що він буде встановлений у налаштуваннях за замовчуванням.

Спробуйте змусити dnsmasq перезавантажити файл хостів. (Зміни у файлі конфігурації потребують перезавантаження). Будь-яка з цих команд повинна працювати.

service dnsmasq reload

kill -HUP $(pidof dnsmasq)

Якщо ви працюєте із no-hostsвказаною системою, ви повинні мати можливість скористатися addn-hostsопцією, щоб її замінити. Зазвичай це буде використано для читання додаткового файлу у /etc/hostsформаті. Це можна використовувати для визначення додаткових даних хоста, які ви хочете надати DNS, але не хочуть у своєму /etc/hostsфайлі. Це можна використовувати, щоб дозволити диспетчеру пакетів та пов'язаним інструментам керувати, /etc/hostsтоді як додаткові дані хостів надаються в альтернативному файлі.


/etc/dnsmasq.conf має всі коментарі. Перезавантаження не допомагає
bakytn

Я не знаю, що я зробив. здається, працює зараз
bakytn

3
Чому б ти відповів на це, коли ти насправді не знаєш відповіді? Той факт, що ви "не очікували, що буде встановлено в конфігурації за замовчуванням", не робить його так, як він насправді встановлений і жорстко закодований в dnsmasq в NetworkManger.
Джастін Бусер

dnsmasq потрібно перезапустити, щоб завантажити зміни у файли конфігурації
txwikinger

@txwikinger Багато файлів опцій перечитуються під час dnsmasqотримання HUPсигналу. Сюди входять /etc/hostsі /etc/ethersфайли, і файли. Часи перезапуску досить швидкі, що клієнти рідко можуть не отримати відповіді.
BillThor
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.