Định cấu hình dnsmasq của Trình quản lý mạng để sử dụng / etc / hosts


22

Tôi đã cài đặt DNSMASQ nhưng nó không bắt đầu vì 53 cổng đang bận.

Tôi phát hiện ra rằng Ubuntu đã có gói dnsmasq và nó hoạt động.

Bây giờ vấn đề là ... Tôi chỉ muốn có thể giải quyết các máy chủ của mình trong / etc / hosts thông qua nó

tức là: nslookup somehostonlan localhost được giải quyết với một số IP nhất định được lấy từ tập tin / etc / hosts.

Nhưng điều này không xảy ra.

Tại sao? BTW, vì máy chủ DNS lưu trữ, nó hoạt động tốt. Tôi chỉ muốn nó giải quyết các máy chủ từ tập tin / etc / hosts đó là tất cả

Câu trả lời:


22

Để tăng tốc internet, ubfox 12.04 đã thêm một plugin vào NetworkManager để bắt đầu dnsmasq, một máy chủ dns cục bộ lưu trữ các mục dns. Vấn đề là plugin đã mã hóa chuỗi --no-hosts.

Vì vậy, một giải pháp là nhận xét dòng tải plugin trong tệp cấu hình NetworkManager và khởi động lại 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

Một giải pháp khác là bọc dnsmasq để lọc ra các đối số không mong muốn:

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

Vui lòng đánh dấu lỗi là ảnh hưởng đến bạn.

Một giải pháp khác mà không cần vá các tệp hệ thống

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

addn-hosts=/etc/hosts

7

Lỗi này vẫn ảnh hưởng đến tôi ngay cả bây giờ (Ubuntu 14.04).

Cuối cùng tôi đã tìm thấy một giải pháp, chỉ cần thêm dòng này 'addn-hosts = / etc / hosts' vào tệp cấu hình dnsmasq của gói Newworkmanager.

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

Ý tưởng là, chúng tôi đang thêm / etc / hosts dưới dạng tệp lưu trữ bổ sung.

Ngay cả khi tôi có thể tìm ra giải pháp, tùy chọn được mã hóa cứng '--no-hosts' trong tệp nhị phân / usr / sbin / NetworkManager làm tôi thất vọng.


7

Kể từ tháng 8 năm 2015, các câu trả lời khác đã lỗi thời.

Câu trả lời đơn giản

  1. Tạo /etc/NetworkManager/dnsmasq.d/hosts.conf.
  2. Đặt các dòng như address=/whatever/1.2.3.4trong đó. Xem các tài liệu (tìm kiếm --address). Ký tự đại diện là có thể : address/.whatever./1.2.3.4.
  3. Giết dnsmasq( lỗi ).
  4. Khởi động lại nó : $ service network-manager restart.

1

dnsmasq sẽ tự động sử dụng /etc/hoststập tin. Điều này có thể bị vô hiệu hóa bởi -htùy chọn dòng lệnh hoặc no-hoststùy chọn cấu hình. Tôi sẽ không mong đợi hoặc được đặt trong cấu hình mặc định.

Hãy thử buộc dnsmasq tải lại tập tin máy chủ của nó. (Thay đổi tệp cấu hình yêu cầu khởi động lại). Một trong hai lệnh này sẽ hoạt động.

service dnsmasq reload

kill -HUP $(pidof dnsmasq)

Nếu bạn đang làm việc với một hệ thống đã no-hostschỉ định, bạn sẽ có thể sử dụng addn-hoststùy chọn để ghi đè lên nó. Thông thường, điều này sẽ được sử dụng để đọc một tệp bổ sung ở /etc/hostsđịnh dạng. Điều này có thể được sử dụng để chỉ định dữ liệu máy chủ bổ sung mà bạn muốn DNS cung cấp, nhưng không muốn trong /etc/hoststệp của bạn . Điều này có thể được sử dụng để cho phép người quản lý gói và các công cụ liên quan quản lý /etc/hoststrong khi dữ liệu máy chủ bổ sung được cung cấp trong một tệp thay thế.


/etc/dnsmasq.conf có tất cả các tùy chọn nhận xét. Tải lại không giúp đỡ
bakytn

Tôi không biết những gì tôi đã làm. có vẻ như nó đang hoạt động ngay bây giờ
bakytn

3
Tại sao bạn lại trả lời câu hỏi này khi bạn không thực sự biết câu trả lời? Thực tế là bạn "sẽ không mong muốn được đặt trong cấu hình mặc định" không làm cho nó trở thành trường hợp như trên thực tế được đặt và mã hóa cứng vào dnsmasq trong NetworkManger.
Justin Buser

dnsmasq phải được khởi động lại để tải các thay đổi trong tệp cấu hình
txwikinger

@txwikinger Nhiều tệp tùy chọn được đọc lại khi dnsmasqnhận được HUPtín hiệu. Điều này bao gồm cả /etc/hosts/etc/etherscác tập tin. Thời gian khởi động lại đủ nhanh, sẽ hiếm khi khách hàng không nhận được phản hồi.
BillThor
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.