Câu hỏi Làm cách nào để thêm máy chủ DNS qua resolv.conf?


/etc/resolv.conf vô dụng trong Ubuntu 12.04 LTS (Pangolin chính xác)?

Tôi thấy rằng thông tin máy chủ DNS được lưu trữ trong NetworkManager hiện nay. Các nmcli công cụ dòng lệnh có thể liệt kê cho bạn.

Nếu tôi muốn thêm một DNS máy chủ, sẽ thêm nó vào /etc/resolv.conf bằng cách sử dụng resolvconf gói trợ giúp?


192
2018-05-03 00:00


gốc


Tôi nghĩ rằng lệnh được đề cập ở trên phải là nm-tool, không phải nmcli. - Jesse Glick


Các câu trả lời:


Nếu /etc/resolv.conf chứa đựng nameserver 127.0.0.1 sau đó thêm mục nhập vào /etc/resolvconf/resolv.conf.d/tail sẽ không thực sự làm bất cứ điều gì hữu ích.

Nếu bạn đang sử dụng NetworkManager thì bạn nên thay thế tĩnh địa chỉ máy chủ tên qua chỉ báo mạng: Chỉnh sửa kết nối ... | Chỉnh sửa ... | Cài đặt IPv4 | Máy chủ DNS bổ sung.

nếu bạn có thật không muốn thêm các mục nhập khác vào /etc/resolv.conf, tạo một /etc/resolvconf/resolv.conf.d/tail và thêm chúng ở đó.

Giống như mọi bản phát hành Ubuntu, chúng tôi khuyên bạn nên đọc Ghi chú phát hành Ubuntu, có sẵn tại đây:

Các phần Desktop và Common Infrastructure chứa một liên kết đến


130
2018-05-03 00:21



@stgraber, xin vui lòng nhận xét về phương pháp thay thế mà tôi đã tìm thấy và đăng bên dưới. Làm thế nào để so sánh với việc thêm một /etc/resolvconf/resolv.conf.d/tail tệp hoặc sử dụng Trình quản lý mạng? Cảm ơn. - Randall Cook
@stgraber Bạn giới thiệu gì cho Ubuntu Server? Tôi đã nhận thấy từ blog của bạn và nhận xét rằng Network-Manger có vẻ là cách tốt nhất để quản lý việc này, nhưng thực hiện cài đặt quản lý mạng trên hệ thống của tôi sẽ cài đặt toàn bộ những thứ tôi không cần (ví dụ: GUI ). - Avery Chan
Điều gì là một bout thêm mục vào /etc/resolvconf/resolv.conf.d/head (theo blogpost của bạn)? - sup
@AveryChan, sử dụng "phương pháp tiếp cận thứ ba" được đề xuất bởi @ randallcook — chỉ cần thêm dns-nameservers vào phần eth0 của bạn trong /etc/network/interfaces. - mrm
/etc/resolvconf/update.d/libc trên máy chủ Ubuntu 14.04.1: # Set TRUNCATE_NAMESERVER_LIST_AFTER_LOOPBACK_ADDRESS=no  # to allow additional nameserver addresses to be listed in  # resolv.conf after an initial loopback address 127.* or ::1.  (đặt nó vào /etc/default/resolvconf, như dòng 23 & 24 của /etc/resolvconf/update.d/libc chỉ. - immeëmosol


Tôi tìm thấy một cách tiếp cận khác đây có liên quan đến việc thêm một dòng giống như dòng dưới đây /etc/dhcp/dhclient.conf:

prepend domain-name-servers x.x.x.x, y.y.y.y;

Tương tự như vậy, tôi đã tìm thấy cách tiếp cận thứ ba đây có liên quan đến việc thêm các dòng vào /etc/network/interfaces:

auto eth0
iface eth0 inet static
    . . .
    dns-nameservers 8.8.8.8 8.8.4.4

Cập nhật: Đây là tài liệu chính thức cho cách tiếp cận thứ ba.


128
2018-05-08 22:48



Tôi đã bình chọn cho điều này vì third approach là cách đơn giản nhất để thực hiện việc này. - Billy Moon
@ Tôi không thể có được phương pháp thứ ba để làm việc ở tất cả .. chỉ có một đầu tiên được liệt kê ở đây, chỉnh sửa dclient.conf, làm việc cho tôi. - Jeff Atwood
Lưu ý: Chỉnh sửa dhclient.conf chỉ có tác dụng nếu dhclient được sử dụng (và nó được sử dụng bởi cả ifup và NetworkManager!) Chỉnh sửa / etc / network / interfaces chỉ có tác dụng nếu ifup được sử dụng. Cấu hình các kết nối NetworkManager bằng cách sử dụng trình chỉnh sửa kết nối NetworkManager chỉ có tác dụng nếu NetworkManager được sử dụng. - jdthood
Nếu tôi không nhầm lẫn cách tiếp cận thứ ba thêm một máy chủ tên SAU KHI những người được trả về bởi DHCP. Nếu bạn muốn nó đến trước thì một trong các tùy chọn khác phù hợp hơn. Tôi đã sử dụng /etc/resolvconf/resolv.conf.d/head (sau khi khắc phục nhận xét "KHÔNG CHỈNH SỬA" gây hiểu nhầm trong đó :)) - starfry
@ Mr.Hyde, những người không phải là lệnh dòng lệnh, họ là những dòng để thêm vào / etc / network / interfaces. - Randall Cook


Có vẻ như bạn đang nói về gói resolvconf.

Cài đặt resolvconf gói.

Chạy

cd /etc/resolvconf/resolv.conf.d
sudo cp -p head head.orig  #backup copy, always do this
sudo nano head

Đầu tệp là một cảnh báo đáng sợ. Tệp /etc/resolv.conf được tự động phát sinh từ nội dung của tệp này; cảnh báo là có để nó sẽ được đặt trong /etc/resolv.conf khi /etc/resolv.conf được tạo ra. Đến cuối tệp, thêm

nameserver <ip_of_nameserver>

nhấn Ctrl  x và trả lời có để lưu tệp. Để kết thúc, hãy tạo /etc/resolv.conf để các thay đổi được áp dụng ngay bây giờ:

sudo resolvconf -u

Sau đó kiểm tra nội dung của tập tin /etc/resolv.conf để xem dòng bạn đã thêm bây giờ ở đó. Hơn nữa, nó sẽ vẫn ở đó trong lần khởi động máy hoặc dịch vụ mạng của bạn được khởi động lại, tùy điều kiện nào đến trước.


85
2018-06-30 23:41



Thông tin về cảnh báo tệp chỉ là những gì tôi cần. Tôi đã ấn tượng rằng tôi không nên chỉnh sửa tập tin! Cảm ơn! - Xunnamius


Dưới đây tôi sẽ chỉ cho bạn cách tốt nhất mà tôi đã tìm thấy kể từ khi tôi chạy phiên bản Ubuntu Server và sử dụng ifup thay vì NetworkManager.

Trên thực tế đối với tôi, họ đã thực hiện điều này dễ dàng hơn :) bằng cách đặt tất cả vào tệp / etc / network / interfaces. Các cấu hình tương tự mà bạn đã viết cho resolv.conf bây giờ có thể nằm trong cùng một tệp với cấu hình bộ điều hợp mạng như trong ví dụ dưới đây:

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static
        address 192.168.1.2
        netmask 255.255.255.0
        network 192.168.0.0
        broadcast 192.168.1.255
        gateway 192.168.1.1
        dns-nameservers 75.75.75.75 75.75.76.76
        dns-search local

Tôi hy vọng điều này giúp ích và làm cho nó dễ dàng hơn cho tôi, bây giờ chúng ta có thể tạo địa chỉ IP tĩnh và thêm vào máy chủ tên và tên miền dns tất cả trong một tệp :)


29
2018-05-23 22:55



Cảm ơn bạn. Điều này đã trở thành phương pháp yêu thích của tôi là tốt. Một lưu ý ngoài chủ đề: không cần phải chỉ định địa chỉ 'mạng' và 'phát' vì chúng được tự động tính từ 'địa chỉ' và 'mặt nạ mạng'. Tất cả những gì bạn cần là 'address', 'netmask' và 'gateway'. - Martijn Heemels
Đây là câu trả lời rõ ràng nhất. Chỉ cần đảm bảo đánh vần chính xác từ khóa dns- *. "Dns-nameservers" sai chính tả là vấn đề thực sự của tôi. - John McGehee


Tôi đang chạy Ubuntu Server 12.04. Tôi đã thực hiện các thay đổi sau và khởi động lại máy chủ (thông thường điều này có thể được thực hiện bằng cách chỉ đưa xuống giao diện mạng, nghĩa là, ifdown eth0hoặc là ifup eth0).

Trong tập tin /etc/resolvconf/resolv.conf.d/base Tôi đã thêm các mục sau:

nameserver 8.8.8.8
nameserver 8.8.4.4

Tôi mong muốn có sự trợ giúp của phía trên!


16
2018-03-19 05:56





Bạn có thể sử dụng NetworkManager như đã nêu trong câu trả lời của Frank, nhưng nếu bạn muốn chỉnh sửa thủ công hơn /etc/resolv.conf, bạn có thể làm như vậy bằng cách xóa nó (nó thực sự là một liên kết tượng trưng) và sau đó tạo một tệp đồng bằng mới với nội dung bạn muốn. Các resolvconf tiện ích chỉ ghi vào tệp /run/resolvconf/resolv.conf.


11
2018-05-04 14:38





Lưu ý: Câu trả lời này là cho một phiên bản khác nhau, được hợp nhất trước của Câu hỏi, chỉ tập trung vào một máy chủ tên mong muốn trước khi chờ xử lý.

Điều này hoạt động trước 12.04:

Chỉnh sửa /etc/dhcp3/dhclient.conf và thêm:
prepend domain-name-servers 127.0.0.1;

(Trên thực tế, dòng này đã có mặt, tất cả những gì bạn cần làm là bỏ chú thích nó.)


8
2018-03-06 20:26



Điều này có hiệu quả nếu bạn không có bất kỳ địa chỉ nào được gán bởi DHCP? - Azendale
Nếu bạn muốn tìm hiểu thêm về cấu hình dhclient, bạn có thể thực hiện man dhclient.conf để truy cập trang man dhclient. (Đây không phải là câu trả lời cho câu hỏi của Azendale.) - Christian Skjødt
Câu trả lời này hoàn toàn sai. Trước hết, người gửi câu hỏi muốn thêm địa chỉ của máy chủ tên miền bên ngoài, chứ không phải địa chỉ 127.0.0.1. Trình cấu hình giao diện cho giao diện bên ngoài không phải là nơi để thêm địa chỉ cho máy chủ định danh nội bộ. Thứ hai, tập tin nằm ở / etc / dhcp, không phải tại / etc / dhcp3. Thứ ba, kể từ Ubuntu 12.04 những thứ như vậy được cấu hình bằng cách sử dụng resolvconf. - jdthood
Trước hết - câu hỏi ban đầu đã được thay đổi đáng kể bởi việc sáp nhập của người kiểm duyệt, vì vậy câu trả lời của tôi tất nhiên có vẻ kỳ lạ. Tệp dhcp3 là vị trí khi tôi trả lời câu hỏi này trong 2011và thậm chí nếu nó không lý tưởng, nó vẫn hoạt động. Tôi đã sử dụng giải pháp này trên nhiều máy. Rõ ràng, bạn sẽ thay đổi địa chỉ loopback thành địa chỉ mà bạn muốn thêm vào. Tôi cho rằng hầu hết mọi người biết loopback là gì, ngay cả khi họ chưa đọc RFC6890. - belacqua
@ jdthood Tại sao không thêm câu trả lời của riêng bạn? Cá nhân, tôi không quen thuộc với cách giải quyết bsd-ish resolvconf. Tôi thích phương pháp tiếp cận trực tiếp /etc/resolv.conf, và tôi không chắc những lợi thế của hệ thống Rube Goldberg mới là gì. (Tương tự như vậy với / etc / motd). - belacqua


resolvconf là vô ích. Tôi đang ở trên một máy chủ Linux và địa chỉ IP là tĩnh và của tôi DNS máy chủ tĩnh. tôi không cần resolvconfhoặc là NetworkManager.

Giữ nó đơn giản là chính sách của tôi khi làm việc trên máy chủ. Độ phức tạp ít hơn, việc quản lý / sửa lỗi sẽ dễ dàng hơn khi mọi thứ bị hỏng.

Tôi cũng vậy aptitude purge resolvconf và đảm bảo thủ công /etc/resolv.conf không phải là liên kết tượng trưng và vừa tạo một tệp tĩnh. Chỉ trong trường hợp một chương trình cố gắng thay đổi tệp, tôi đã làm chattr +i (không thay đổi) để /etc/resolv.conf như một biện pháp phòng ngừa.


6
2017-10-16 15:41



Khi resolvconf là một phần của hệ thống cơ bản, bằng cách xóa nó, bạn đang yêu cầu sự cố trong tương lai, tại thời điểm nâng cấp. - jdthood
Tôi đồng ý với cả nhận xét và câu trả lời: xem xét có bao nhiêu vấn đề đã gây ra và số giờ hỗ trợ đã khắc phục vấn đề này và số nhân viên CNTT đã dành thời gian tìm câu trả lời. Đơn giản là tốt nhất - tôi không cần các máy chủ của mình phải thay đổi DNS thành thứ mà tôi không muốn. - Mei


Hầu hết những điều trên giả định bạn có một hệ thống nguyên sơ, nhưng thực tế thường là bạn đã cài đặt các trình khách dhcp khác nhau, vô hiệu hóa trình quản lý mạng trong phiên bản Ubuntu trước đó, vv. Tôi đã sử dụng dnsmasq một lúc, nhưng đã gỡ cài đặt nó. Hiện tại hệ thống của tôi có các nội dung sau /etc/resolv.conf (đó là một liên kết tượng trưng đến /run/resolvconf/resolv.conf trên hệ thống của tôi):

cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 127.0.0.1

Không quan trọng tôi chạy thường xuyên như thế nào sudo resolvconf -uhoặc là sudo dpkg-reconfigure resolvconf, nó không cập nhật máy chủ định danh cho máy chủ tên tôi đã đặt trong NetworkManager. Thông tin resolvconf sử dụng từ NetworkManager đã có mặt:

cat /run/resolvconf/interface/NetworkManager  
nameserver 8.8.4.4
nameserver 8.8.8.8

Tuy nhiên, hóa ra là trường hợp nếu có nhiều tệp trong thư mục này, tệp này có thể không được sử dụng. Thủ phạm là một tập tin không được gỡ bỏ với việc deinstallation của dnsmasq:

cat /run/resolvconf/interface/lo.dnsmasq                        
nameserver 127.0.0.1

Chỉ cần xóa tệp này (và đang chạy sudo resolvconf -u sau đó) giải quyết vấn đề dns của tôi:

cat /etc/resolv.conf                        
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 8.8.4.4
nameserver 8.8.8.8 

Tôi hy vọng điều này sẽ giúp người khác gỡ lỗi (tương tác phức tạp giữa tất cả các công cụ mạng khác nhau). Nếu bạn dùng resolvconf hãy chắc chắn để chạy ls /run/resolvconf/interfaces để xem có gì ở đó.


4
2017-12-27 12:54



Cảm ơn bạn, điều này rất hữu ích. Tôi đã thử các câu trả lời bình chọn cao hơn đầu tiên và không ai dường như làm các trick. Tôi không có bất kỳ tệp bổ sung nào trong /run/resolvconf/interface/ dir, nhưng của tôi NetworkManager tập tin cần một số tình yêu. Câu trả lời của bạn đã giúp giải quyết vấn đề này cho tôi. - mason81


Bạn có thể chỉnh sửa kết nối "AUTO ETH0" hoặc bất kỳ tên nào mà bạn sử dụng để kết nối trong NM. Bạn có thể làm điều này bằng cách kích chuột phải vào NM và chọn "Edit Connections ...". Trên tab IPv4, bạn có thể chọn "Địa chỉ tự động (DHCP)" là "Phương thức" và NM sẽ cho phép bạn đặt địa chỉ máy chủ tên (es) theo cách thủ công ngay cả các địa chỉ được gửi qua DHCP.


2
2018-05-04 14:29