Làm cách nào để tạo NetworkManager thêm máy chủ DNS ở đầu /etc/resolv.conf?


11

Ngay bây giờ, /etc/resolv.conf của tôi trông như thế này:

# Generated by NetworkManager
nameserver 10.165.246.33
nameserver 192.135.82.60
nameserver 10.165.74.2

Hai máy chủ tên đầu tiên được cấu hình tự động thông qua DHCP; cái cuối cùng là cái tôi đã thêm bằng tay, trong NetworkManager. Đây cũng là một trong những quan trọng nhất, vì nó giải quyết các tên miền nội bộ của chúng tôi (ví dụ build-server-17.our-company-domain.com).

Vấn đề là, NetworkManager thêm nó vào đáy của /etc/resolv.conf, vì vậy khi truy cập vào một URL mạng nội bộ, cố gắng trình duyệt của tôi để giải quyết nó bằng cách sử dụng hai máy chủ đầu tiên, và phải mất lứa tuổi.

Làm cách nào để tạo NetworkManager thêm máy chủ DNS được cấu hình thủ công trước các máy chủ được cấu hình tự động?


1
Nói chung, tất cả các máy chủ DNS trong độ phân giải của bạn sẽ trả về cùng một kết quả. Có các máy chủ hỗn hợp trong đó là một công thức cho những thất bại không liên tục và rất nhiều nỗi đau.
Philip Kendall

Câu trả lời:


3

Tôi không thấy hệ thống nào để giải quyết cụ thể, nhưng nếu hệ thống của bạn đang sử dụng resolvconf, hãy thử các cách sau dưới dạng root ( su -hoặc sudo -i):

echo 'nameserver 10.165.74.2' >> /etc/resolvconf/resolv.conf.d/head
resolvconf -u

Có một cảnh báo trong tập tin đó nói rằng những thay đổi thủ công sẽ bị ghi đè; nhưng, trong bối cảnh, thông điệp áp dụng cho /etc/resolv.conf, không /etc/resolvconf/resolv.conf.d/head.

Điều này sẽ đặt máy chủ tên mong muốn đầu tiên trong danh sách. Tất nhiên, nếu điều này hoạt động trên hệ điều hành của bạn, thì 10.165.74.2 có thể bị xóa khỏi NetworkManager.

Bộ giải quyết cục bộ, dnsmasqcũng là một con đường tuyệt vời phía trước. Sử dụng dnsmasq, người ta có thể sử dụng nhiều quyền kiểm soát hơn đối với DNS và DHCP. Ví dụ: trong trường hợp này, dnsmasqcó thể truy vấn một máy chủ tên cụ thể dựa trên một tên miền được chỉ định với servertùy chọn của nó . Xem một đoạn trích từ dnsmasq.confđó có thể liên quan đến mục tiêu của bạn dưới đây.

# Add other name servers here, with domain specs if they are for
# non-public domains.
server=/our-company-domain.com/10.165.74.2

Cập nhật

Cảm ơn đã đề cập đến hệ điều hành. Trên CentOS 7, có nhiều phương pháp. Trong GUI, bấm Ứng dụng> Công cụ hệ thống> Cài đặt> Mạng. Chọn một kết nối để cấu hình.

Trình quản lý mạng CentOS 7 - Cấu hình kết nối

Tắt DNS tự động và cung cấp máy chủ tên. Áp dụng cấu hình.

Trình quản lý mạng CentOS 7 - Áp dụng Cài đặt DNS tĩnh

Lần tới NetworkManager bắt đầu kết nối đó, nó ghi các giá trị tùy chỉnh. (Trong khi thử nghiệm, tôi tắt mạng và sau đó bật lại vì tôi có hai kết nối mạng.)

Theo tài liệu ,

  1. Một giao diện người dùng văn bản dựa trên lời nguyền đơn giản (TUI) cho NetworkManager, nmtui, có sẵn.
  2. Một công cụ dòng lệnh, nmcli, được cung cấp để cho phép người dùng và tập lệnh tương tác với NetworkManager. Lưu ý rằng nmcli có thể được sử dụng trên các hệ thống không có GUI như máy chủ để kiểm soát tất cả các khía cạnh của NetworkManager. Đó là trên một nền tảng bình đẳng với các công cụ GUI.

Đặc biệt, các nmcli tài liệu nhìn rất tốt.


1
Xin lỗi, đó là CentOS, không có resolvconfgói. dnsmasqcó vẻ như là một giải pháp tốt
Người dùng Newbie Linux

8

Tôi vô tình tạo ra một câu hỏi trùng lặp ở đây . Câu trả lời là có, nhưng về cơ bản, bạn cần tạo:

/etc/dhcp/dhclient.conf

nếu nó không tồn tại và thêm:

prepend domain-name-servers [ip address of server];

Đừng quên dấu chấm phẩy ở cuối!

Sau đó, chỉ cần khởi động lại tự động di chuyển dòng 'máy chủ tên [địa chỉ ip của máy chủ]' trong '/etc/resolv.conf' lên đầu!


Thật kỳ diệu! Đó là phần cuối được sử dụng bởi NetworkManager và là cách duy nhất để nó hoạt động với tất cả các kết nối wifi (không phải tĩnh). cảm ơn !
Adrien M.

0

Có một cách khác, không cần phải tắt NetworkManager.service. Chỉ cần đặt ifcfg-idevice:

PEERDNS=no
DNS1=10.165.74.2
DNS2=OTHERDNS
DOMAIN=DEMO.COM

Bạn không cần phải thiết lập /etc/NetworkManager/NetworkManager.conf, như:

[main]
dns=none
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.