Địa chỉ máy chủ DNS không còn được lưu trữ trong decv.conf; bây giờ nó ở đâu


14

Thỉnh thoảng tôi chuyển đổi máy chủ DNS, sử dụng chỉ báo NetworkManager trên thanh tác vụ; điều này cũng hoạt động tốt với các phiên bản trước và thực sự cũng hoạt động tốt với 12.04, ngoại trừ một điều: tôi sử dụng Conky để hiển thị một số thông tin hệ thống, bao gồm địa chỉ DNS và tôi nhận thấy rằng nó hiện luôn hiển thị 127.0.0.1.

Tôi nhìn vào resolv.conf, đó là nơi nó nhận được địa chỉ này, và chắc chắn, đó là những gì nó luôn nói. Tôi có một dòng duy nhất, với lời khuyên không nên chỉnh sửa tệp bằng tay:

nameserver 127.0.0.1

Cách duy nhất tôi biết để kiểm tra địa chỉ máy chủ DNS bây giờ là mở GUI của trình quản lý mạng để kiểm tra trang thông tin. Vì vậy, thông tin này được lưu trữ ở đâu bây giờ?

Câu trả lời:


17

Thông tin được quản lý nội bộ bởi Quản lý mạng. Bạn có thể lấy thông tin này trên dòng lệnh bằng nmclicông cụ đi kèm .

Bạn có thể truy xuất thông tin của Trình quản lý mạng cho một giao diện mạng cụ thể bằng lệnh sau:

nmcli dev list iface eth0

(thay thế eth0bằng giao diện bạn đang kết nối). Đầu ra sẽ bao gồm thông tin về giao diện và kết nối hiện đang hoạt động trên giao diện đó:

GENERAL.DEVICE:                         eth0
GENERAL.TYPE:                           802-3-ethernet
...
IP4.DNS[1]:                             192.168.0.1
...

Không quá khó để trích xuất thông tin bạn có được từ đầu ra này.

Nếu bạn cần một phương pháp lập trình để truy cập dữ liệu này không phụ thuộc vào đầu ra nmcli, thông tin này cũng sẽ có sẵn từ giao diện D-Bus của Trình quản lý mạng.


Cảm ơn rất nhiều, đó là một số thông tin tuyệt vời. Sẽ khá dễ dàng để tạo một tập lệnh shell đơn giản bằng cách sử dụng nmclilệnh đó để liệt kê các tham số thú vị khác nhau. Có lẽ tôi có thể đánh một cái gì đó hữu ích và chia sẻ ở đâu đó. Tôi thực sự không nghĩ Quản lý mạng là bắt buộc và tôi cho rằng có thể có những cách khác để ai đó làm điều này, nhưng điều này hiệu quả với tôi.
Marty Fried

Chà, bạn có thể thấy rằng máy chủ đang nghe 127.0.0.1là một phiên bản được dnsmasqbắt đầu bởi Network Manager (xem đầu ra của sudo netstat -tlnp). Nhưng tốt nhất nên nghĩ về điều đó như một chi tiết triển khai và hỏi Quản lý mạng về thông tin bạn muốn, vì đó là quyết định ở đây.
James Henstridge

Cảm ơn đã cung cấp thông tin tốt như vậy. Và, cũng cảm ơn vì đã chỉnh sửa câu hỏi của tôi - tôi sẽ cố gắng dành nhiều thời gian hơn trong tương lai. :) Lý do của tôi là tôi vừa nâng cấp lên 12.04 và đã dập tắt những đám cháy nhỏ trên nhiều mặt trận. :)
Marty Fried

4
nmcli dev list ifacekhông hoạt động với tôi nhưng nmcli dev showkhông [ubfox 15.04]
Beni Cherniavsky-Paskin

10

Các nhà phát triển Ubuntu nên ghi lại những thay đổi này /etc/resolv.conf, nhưng không.

Dưới đây là danh sách các lệnh nhanh để giúp bạn đi.

  1. Hiển thị các máy chủ DNS hiện tại

    nm-tool | grep DNS
    
  2. Xác định một máy chủ DNS tĩnh trong /etc/dhcp/dhclient.conf. Thêm dòng sau và khởi động lại trình phân giải cục bộ:

    supersede domain-search "sub.mydomain.com", "domain.com";
    prepend domain-name-servers 192.168.0.1;
    

    Từ dấu nhắc lệnh:

    invoke-rc.d network-manager restart
    

Một số tài liệu khác: độ phân giải (8), /usr/share/doc/resolvconf/README.gz.
jdthood

4

Xin lưu ý rằng việc sử dụng nmcli có thể không phải lúc nào cũng cung cấp cho bạn câu trả lời đầy đủ. ví dụ: nếu bạn sử dụng openconnect (hoặc vpnc, có lẽ) để khởi động VPN và nếu bạn đã cài đặt gói giải quyết (để chăm sóc tự động quản lý /etc/resolv.conf), bạn sẽ thấy rằng nó vẫn có thể tự động chèn Cài đặt DNS của VPN vào /etc/resolv.conf trước 127.0.0.1. Trong trường hợp này, chỉ cần kiểm tra (ví dụ) "danh sách nhà phát triển IP4 của nmcli -f" sẽ không cung cấp cho bạn danh sách DNS hiện tại thực sự. Không chắc kịch bản này có ảnh hưởng đến bạn không, nhưng con số này đáng để đề cập.


Cám ơn vì thông tin thêm; luôn luôn tốt để tìm hiểu thêm. Đối với trường hợp sử dụng của tôi, tôi sẽ không phải lo lắng về điều đó, vì tôi chủ yếu chỉ muốn có thể biết địa chỉ DNS nào có thể hoạt động.
Marty Fried

Nếu bạn đang sử dụng trình quản lý mạng để kết nối với VPN, lệnh nào sẽ cung cấp cho bạn dns? Các dns đang làm việc nhưng tôi không thể tìm thấy chúng.
Jorge Suárez de Lis
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.