Cách thích hợp để thay đổi IP DNS là gì?


56

Tôi nghi ngờ rằng máy chủ tên được cung cấp bởi modem / bộ định tuyến ADSL của tôi là lỗi. Bất cứ khi nào tôi duyệt đến một trang web lần đầu tiên trong Ubuntu, việc giải quyết tên miền mất ít nhất 15 giây.

Để khắc phục sự cố đó, tôi đã thay đổi cấu hình máy chủ tên /etc/resolv.conftừ 192.168.1.1 (modem ADSL của tôi) thành 8.8.8.8 (DNS chính của google). Điều này dường như để khắc phục sự cố, nhưng thật không may, những thay đổi của tôi /etc/resolv.confbị ghi đè bởi "Trình quản lý mạng" tại mỗi lần khởi động.

Cách thích hợp để định cấu hình IP máy chủ tên trong Ubuntu 10,4 là gì?

Câu trả lời:


51

Nếu bạn có thiết lập kết nối thông thường với trình quản lý mạng và DHCP, hãy thử các cách sau:

  1. Nhấp chuột phải vào biểu tượng trình quản lý mạng trong bảng điều khiển và chọn "Chỉnh sửa kết nối ..."
  2. Chọn kết nối của bạn từ tab có dây hoặc không dây, chọn "Chỉnh sửa"
  3. (Nhập mật khẩu của bạn nếu kết nối được đặt là "có sẵn trên toàn hệ thống")
  4. Chọn tab cài đặt IPv4
  5. Chuyển phương thức sang "Chỉ địa chỉ (DHCP)"
  6. Nhập máy chủ tên bạn muốn vào hộp "Máy chủ DNS bổ sung" và nhấn "Áp dụng"

Điều đó sẽ làm các trick.


1
Điều này tiếp tục hoạt động trong Ubuntu 12.04 trở lên, mặc dù NetworkManager hiện sử dụng độ phân giải để xử lý độ phân giải.
jdthood

4
Nếu bạn đang tự hỏi nơi cấu hình kết thúc, hãy xem /etc/NetworkManager/system-connections/(bạn sẽ cần đặc quyền quản trị để truy cập vào các tệp cấu hình đó).
Lekensteyn

2
Điều này chỉ thay đổi dns cho kết nối hiện tại, nhưng đó cũng là một cách để thay đổi DNS toàn cầu ?
rubo77

danh sách trống đối với tôi Nó sử dụng cái gì theo mặc định?
J. Taylor

1
Hoạt động chính xác như nhau trên giao diện đầu cuối nmtuibtw!
Granitosaurus

30

Bạn có thể thay đổi chúng như thế này.

Đầu tiên, nhấp vào biểu tượng trình quản lý mạng trong thanh thực đơn của bạn và nhấp vào Edit Connections...mục.

nhập mô tả hình ảnh ở đây

Bây giờ, hãy chuyển sang các tab "Có dây" hoặc "Không dây", tùy thuộc vào những gì bạn sử dụng - Tôi sử dụng WiFi, vì vậy tôi sẽ sử dụng nó.

Chọn tên mạng của bạn và nhấp Edit...

Chuyển sang tab IPv4 và sau đó thay đổi nó từ địa chỉ DHCP tự động sang địa chỉ tự động (DHCP).

Nhập địa chỉ IP máy chủ DNS của bạn.

nhập mô tả hình ảnh ở đây

Nhấp vào lưu và bạn đã hoàn tất!


Mặc dù bạn có thể thay đổi máy chủ DNS trong cài đặt mạng trên bất kỳ PC nào, tốt nhất bạn nên thay đổi chúng trong bộ định tuyến thực tế kết nối với internet để tất cả các thiết bị được kết nối đều được hưởng lợi từ nó.
Đánh dấu Rooney

3
Nếu anh ta không có bộ định tuyến thì sao? Hay anh ta chỉ muốn thay đổi DNS cho máy tính / người dùng này? Điều gì nếu nó chỉ một lần này? Có lẽ anh ta thực sự không có quyền truy cập bộ định tuyến và muốn sử dụng máy chủ DNS khác ... Tôi có thể thêm lý do vào danh sách này suốt đêm. Mẹo hay và trả lời @jrg.
Bruno Pereira

6
Đây là một cách đồ họa đẹp để cài đặt dns trên một máy có trình quản lý mạng. Tôi chỉ chỉ ra bạn có thể đặt nhiều hơn một, dấu phẩy được phân tách. 8.8.8.8,8.8.4.4. Đặt DNS cho mạng LAN cũng có thể hữu ích, nếu lan đủ lớn, cá nhân tôi sử dụng bộ định tuyến hoặc dnsmask. Trên mạng LAN, việc duy trì một danh sách đen hoặc proxy ở một vị trí duy nhất (bộ định tuyến / dnsmask / mực) thường dễ dàng hơn trên mỗi máy khách hoặc mỗi người dùng trên mỗi máy khách, nhưng điều đó hơi vượt quá câu hỏi được hỏi ở đây.
Panther

29

Cách tốt nhất để đặt máy chủ tên qua CLI, không có NetworkManger, với địa chỉ tĩnh hoặc độc lập với kết nối là:

Cài đặt resolvconf gói.

Chạy

sudo nano /etc/resolvconf/resolv.conf.d/head

(bỏ qua cảnh báo đáng sợ. /etc/resolv.conf được tự động tạo, vì vậy cảnh báo sẽ có để nó được đặt trong /etc/resolv.conf khi /etc/resolv.conf được tạo.) Đến cuối tệp, thêm vào

 nameserver <ip_of_nameserver>

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

 sudo resolvconf -u

1
Vì một số lý do khoảng một tháng trước, bản dựng Xubfox hàng đêm của tôi đã ngừng phân giải tên máy chủ LAN. Máy chủ DHCP của tôi phải tự phát hành (192.168.68.1) là máy chủ DNS, tôi cũng đã mã hóa nó trong Trình quản lý mạng và mọi nơi (đã đề cập ở trên câu trả lời này). Với cách Xubfox / NetworkMan / Dù sử dụng IP 127.0.xx ngày nay, thật khó để chẩn đoán sự cố. Tôi có thể giải quyết các IP bên ngoài, vì vậy nó đã nhận được SOMETHING cho DNS. Dù sao, đây là câu trả lời duy nhất giải quyết vấn đề của tôi. Cảm ơn
Adam Plocher

18

Một cách khác để làm điều này là chỉnh sửa, /etc/dhcp3/dhclient.confbạn có thể làm điều này bằng cách nhập nó vào hộp thoại chạy (xuất hiện bằng cách nhấn Alt+ F2)

gksudo gedit /etc/dhcp3/dhclient.conf

Sau đó tìm dòng sau

#prepend domain-name-servers 127.0.0.1;

Và thay đổi nó thành

prepend domain-name-servers 8.8.8.8;

Điều này sẽ làm cho dhclient (ứng dụng khách DHCP mà NetworkManager sử dụng) gửi trước cho máy chủ dns của bạn, vì vậy, giải quyết.

nameserver 8.8.8.8
nameserver 192.168.1.1

Giải pháp này sẽ hoạt động ở mọi nơi và bạn sẽ luôn nhận được DNS mà bạn đã chọn làm DNS chính.


4
Dường như với tôi, Trình quản lý mạng viết tệp phân giải mà không cần tham khảo dhclient.conf
daithib8

2
trên Ubuntu 11.10, bạn cần sửa đổi /etc/dhcp/dhclient.conf thay vì /etc/dhcp3/dhclient.conf
Pawel Barcik

1
có thể đặt trong nhiều cái?
PyRulez

1
@PyRulez Có, tách biệt bằng hôn mê, dấu chấm phẩy ở cuối
Sergiy Kolodyazhnyy 18/03/2015

2
Tôi đã thử điều này trong 14.10 nhưng không có hiệu quả
rubo77

7

Một giải pháp khác là thay đổi cấu hình bộ định tuyến của bạn để sử dụng máy chủ DNS khác. Chỉ cần đăng nhập vào quản trị viên của nó và miễn là nó không phải là bộ định tuyến gây ra sự cố, tất cả các máy khách của bạn sẽ có DNS tốt hơn.


+1 Đồng ý nếu đây là sự cố không có khả năng được giải quyết sớm nhất để khắc phục sự cố trên bộ định tuyến thì nó sẽ được khắc phục cho tất cả các máy trên mạng. Tôi thấy tốt nhất là sử dụng Google DNS hoặc OpenDNS.
Mark Davidson

1
Tôi đã thực hiện điều đó, nhưng bộ định tuyến sau đó vẫn hoạt động như một máy chủ tên trung gian giữa các máy khách và máy chủ tên được cấu hình và nó vẫn rất chậm.
Wim Coenen

1
Nhiều ISP khóa các bộ định tuyến của họ để bạn không thể thay đổi các cài đặt này hoặc phải trả tiền để làm như vậy.
LassePoulsen

@Wim Nếu bộ định tuyến của bạn không thể cung cấp độ phân giải DNS trong khung thời gian hợp lý, giả sử 50ms trên một kết nối tốt, có gì đó không đúng với nó. Vì vậy, sai nó có thể xử lý lưu lượng khác không hiệu quả. Có lẽ đã đến lúc nâng cấp $ 30 / £ 20.
Oli

1
@Oli: Sự cố DNS chỉ hiển thị khi sử dụng bộ định tuyến từ hộp linux: Tôi gặp vấn đề tương tự với debian, nhưng không có vấn đề gì với windows. Tôi chắc chắn đó chỉ là một số vấn đề tương thích tinh tế. Các bộ định tuyến hoạt động tốt khác.
Wim Coenen

6

Nhấp vào chỉ báo mạng ở phía trên bên phải màn hình và chọn Edit Connections.... Chọn kết nối bạn muốn sửa đổi (có thể từ tab Wiredhoặc Wirelessvà nhấp vào Edit...nút.

Chuyển sang IPv4 Settingstab của cửa sổ kết nối và thay đổi phương thức từ Automatic (DHCP)sang Automatic (DHCP) addresses only. Bây giờ bạn có thể chỉ định một địa chỉ IP máy chủ DNS.

Lưu kết nối và bạn nên đi. Bạn có thể phải đặt lại kết nối bằng cách chọn nó trong menu của chỉ báo sau khi thay đổi cài đặt.


1

Tôi tin rằng nếu bạn thay đổi nó dưới trình quản lý mạng thì chính nó sẽ thay đổi.

Để sử dụng eth0 chẳng hạn

Quản lý mạng -> Có dây -> Tự động eth0 -> Cài đặt ipv4.

Đặt máy chủ DNS của bạn thành 8.8.8.8 và áp dụng.


Tôi gặp khó khăn khi tìm bất cứ thứ gì gọi là "quản lý mạng". Có một "Hệ thống - Quản trị - Công cụ mạng" nhưng điều đó không có ích. Cuối cùng, tôi thấy rằng tôi cần "Hệ thống - Tùy chọn - Kết nối mạng".
Wim Coenen

1
Có một biểu tượng trình quản lý mạng trong bảng điều khiển (biểu tượng hiển thị trạng thái mạng của bạn) mà bạn có thể nhấp chuột phải để chỉnh sửa các kết nối.
Marcel Promotionberg

Điều này không hoạt động
user568021

0

Sử dụng thiết bị đầu cuối

Bạn cần chỉnh sửa /etc/resolv.conftệp để đặt Địa chỉ IP của máy chủ Tên mà trình phân giải nên truy vấn. Có thể xác định tối đa 3 tên máy chủ địa chỉ IP internet. Nếu có nhiều máy chủ, thư viện trình phân giải truy vấn chúng theo thứ tự được liệt kê.

Loại thứ nhất

sudoedit /etc/resolv.conf

Nối địa chỉ IP máy chủ DNS ưa thích của bạn như sau:

nameserver <preferred-ip1>
nameserver <preferred-ip2>
nameserver <preferred-ip3>

lấy từ: http://www.cyberciti.biz/faq/ubfox-linux-configure-dns-nameserver-ip-address/


6
Lưu ý rằng nếu các máy chủ tên được đặt qua DHCP, /etc/resolv.confsẽ bị ghi đè. Vì vậy, phương pháp này chỉ thích hợp cho các máy có cấu hình mạng thủ công. Về mặt kỹ thuật, bạn có thể làm chattr +i /etc/resolv.confđể ngăn chặn tệp bị sửa đổi (tôi đã làm như vậy nhiều năm trước), nhưng cách tốt nhất cho hầu hết các máy sẽ là cách tiếp cận của jrg trong câu trả lời của anh ấy: Askubfox.com/a/90263/13398 .
Scott Severance

@ScottSeverance Hệ thống không có X
Amith KK

Trong trường hợp đó, có lẽ đó là một máy chủ có mạng được cấu hình thủ công, trong trường hợp đó câu trả lời của bạn là hoàn toàn phù hợp. Nhưng hầu hết các máy Ubuntu chạy X và có thể dễ dàng xử lý các phương pháp khác. Nếu một máy không chạy X nhưng đã cài đặt GUI phù hợp, bạn cũng có thể chạy các công cụ đồ họa qua SSH bằng cách sử dụng ForwardX11=yes.
Scott Severance

6
Nếu bạn định thử chỉnh sửa thủ công tệp /etc/resolv.conf, cách thích hợp để làm điều đó (để nó không bị ghi đè) là cài đặt gói "giải quyết" và sau đó chỉnh sửa / etc / decvconf / decv. conf.d / head hoặc /etc/resolvconf/resolv.conf.d/tail.
Azendale

0

Đối với các máy chủ không đầu không có X và quản lý thông qua ssh hoặc bất cứ điều gì, một giải pháp dòng lệnh là cần thiết. Nếu độ phân giải không được ghi đè, thì đó là nơi chính xác để thay đổi máy chủ tên.

Nếu resolv.conf không bị ghi đè sau đó, trên 14.04LTS ít nhất, các tập tin để chỉnh sửa là:

  • /etc/resolvconf/resolv.conf.d/head
  • /etc/resolvconf/resolv.conf.d/tail

Tôi thực sự khuyên bạn nên đưa các chuỗi nhận xét vào các tệp như thế này, sao cho chúng xuất hiện trong tệp được tạo (/etc/resolve.conf) và bạn có thể tìm thấy chúng trong tương lai. Tôi bắt đầu và kết thúc mỗi tệp bằng một nhận xét một dòng có dạng:

  • # ====== bắt đầu /etc/resolveconf/resolv.d/tail ======
  • # ====== kết thúc /etc/resolveconf/resolv.d/tail ======

và đặt các chỉ thị có liên quan giữa chúng.


0

Tôi thấy rằng việc thêm dòng dns-nameserver ipvào tệp giao diện, chỉ cài đặt cài đặt ipv4 kết nối có dây thành cài đặt Tự động (DHCP) và nhập IP máy chủ DNS và tên miền. Ngoài ra, việc thêm IP DNS cục bộ vào phần DNS tĩnh của bộ định tuyến DSL khiến NetworkManager đưa địa chỉ cục bộ này vào resolv.conftệp mà nó ghi đè cùng với thông tin khác được truy xuất từ ​​bộ định tuyến. Tất cả những điều này cùng nhau dường như làm cho độ phân giải tên DNS cục bộ trở nên bền bỉ - dường như là một nhiệm vụ khó khăn đáng ngạc nhiên. Nhu cầu về DNS cục bộ của tôi là gắn máy khách Linux vào chia sẻ Samba bằng cách sử dụng mount.cifsmạng được cung cấp DHCP.


0

Nếu Network-Managerđược dừng lại và /etc/resolvconf/resolv.conf.d/baseđã được cấu hình.

Có lẽ resolvconf --enable-updateslà hữu ích.


0

Bạn có thể thay đổi cài đặt DNS IPv4 theo cách đồ họa như được trả lời ở đây

Nhưng nếu bạn đang tự hỏi làm thế nào để làm điều tương tự bằng cách sử dụng dòng lệnh, bạn phải liệt kê các tệp trong /etc/NetworkManager/system-connectionsthư mục bằng lslệnh:

ls /etc/NetworkManager/system-connections

Phải có một tập tin với tên kết nối của bạn, của tôi được gọi Wired Connection 1.

Vì vậy, chúng ta cần chỉnh sửa tệp và thêm máy chủ DNS trong đó:

Sudo nano "/etc/NetworkManager/system-connections/Wired connection 1"

Thêm bao nhiêu máy chủ DNS tùy thích trong [ipv4]phần này và tách chúng bằng dấu chấm phẩy ;và cũng đặt ;ở cuối máy chủ DNS cuối cùng như thế này:

[ipv4]
dns=1.1.1.1;8.8.8.8;9.9.9.9;

Bạn chỉ có thể xóa dòng này nếu bạn không muốn gán bất kỳ dns nào.

Ngoài ra, bạn phải thêm dòng này ignore-auto-dns=trueđể bỏ qua các máy chủ DNS do DHCP cung cấp (như máy chủ DNS được đặt trong cấu hình của bộ định tuyến):

[ipv4]
dns=1.1.1.1;8.8.8.8;9.9.9.9;
ignore-auto-dns=true

Một bối cảnh nhỏ cho câu trả lời này: Tôi đã cố gắng tìm ra tệp nào được chỉnh sửa khi tôi thêm máy chủ DNS trong cài đặt DNS của GUI, vì vậy tôi đã chạy lệnh này trong hơn 16 giờ: sudo grep -rs "1.1.1.1" /đó là quét tất cả các tệp trên máy ảo Ubuntu của tôi nhưng nó không bao giờ kết thúc ngay cả sau khi chạy lâu như vậy, nhưng tôi biết nó có thể là các tập tin có thể tồn tại trong /etc/NetworkManagervì vậy tôi chạy greplại chỉ vào thư mục đó và thấy điều này: /etc/NetworkManager/system-connections/Wired connection 1:dns=1.1.1.1;vì vậy tôi trở lại đây để viết một câu trả lời duy nhất để tìm ra Lekensteyn có đã chỉ ra điều này trong các ý kiến ​​về câu trả lời được chấp nhận .

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.