Máy chủ tên tiếng vang sudo 8.8.8.8> /etc/resolv.conf, làm gì?


13

Ai đó có thể vui lòng cho tôi biết những gì sudo echo nameserver 8.8.8.8 > /etc/resolv.confkhông?

Tôi đã từng mất kết nối internet ngẫu nhiên trong 15 giây đến 3 phút nhưng sau khi sử dụng lệnh này, kết nối internet hoạt động như một cơ duyên. Tôi chỉ tò mò dòng lệnh ma thuật này đã làm gì.


3
Tôi ngạc nhiên khi điều này thực sự hoạt động - sudo chỉ nên áp dụng cho tiếng vang ở đây, không phải cho chuyển hướng và người dùng không phải root không nên truy cập vào /etc/resolv.conf
Tối đa

@Max Bạn hoàn toàn đúng. Tôi đã bỏ lỡ phần đó - cập nhật câu trả lời của tôi.
gertvdijk

Câu trả lời:


27

Nó thay thế máy chủ tên (DNS) được sử dụng trên máy của bạn bằng dịch vụ Google Public DNS . Nếu việc chạy lệnh đó giúp bạn thoát ra, bạn có thể gặp sự cố DNS trong cài đặt mặc định do mạng của bạn cung cấp (DHCP). Mặc dù sẽ tốt hơn để giải quyết nguyên nhân gốc rễ của vấn đề, đây là câu trả lời chung cho câu hỏi của bạn.


Giải thích về lệnh

sudo echo nameserver 8.8.8.8 > /etc/resolv.conf
  • sudo nâng cao đặc quyền để được root trong trường hợp này.
  • echochỉ xuất các đối số theo sau cho đầu ra tiêu chuẩn (trong trường hợp này là đầu ra nameserver 8.8.8.8)
  • > chuyển hướng đầu ra tiêu chuẩn đến một tệp (ghi đè lên nó) trong một vỏ Unix thông thường.
  • /etc/resolv.conf là tập tin mà đầu ra được ghi vào.
  • Có một dòng nameserver 8.8.8.8trong /etc/resolv.conflàm cho hệ thống sử dụng máy chủ tên có địa chỉ IP 8.8.8.8để phân giải tên miền thành địa chỉ IP. (phiên bản rất ngắn của những gì thực sự xảy ra)
  • 8.8.8.8là một trong những địa chỉ được Google công bố về nơi các dịch vụ DNS công cộng của họ đang lắng nghe.

sudo sai lầm

Mặc dù lời giải thích này nghe có vẻ hợp lý, nhưng điều này sẽ không hiệu quả, vì một lỗi bạn sẽ gặp phải:

bash: /etc/resolv.conf: Permission denied

Tại sao? Chuyển hướng đầu ra được xử lý bởi shell của bạn (ở đây: Bash) và không được tính đến cho lệnh được sử dụng cho sudo. Tương tự như cách nhân trong toán học đã được ưu tiên so với việc thêm. Vì vậy, nó chỉ echocó đặc quyền nâng cao, nhưng vỏ của bạn thì không! Để giải quyết điều này, người ta nên chạy lệnh này như

sudo sh -c "echo nameserver 8.8.8.8 > /etc/resolv.conf"

hoặc, bằng cách sử dụng một đường ống và teeđể xuất nó thành một tệp:

echo nameserver 8.8.8.8 | sudo tee /etc/resolv.conf  #prints to screen as well

Quản lý mạng và Ubuntu

Trên Ubuntu, đây chỉ là một thay đổi tạm thời, vì Trình quản lý mạng "quản lý" /etc/resolv.conftệp. Sửa đổi địa phương sẽ được ghi đè. Đó là lý do tại sao bạn nên cấu hình cái này trong Trình quản lý mạng để duy trì nó.


Cấu hình bằng Network Manager

Tôi khuyên bạn nên định cấu hình PC của mình đúng cách bằng Network Manager. Tôi giả sử bạn đang sử dụng DHCP trên mạng của mình tại đây (phổ biến nhất). Sau đó, làm điều này để thực hiện tương tự như lệnh bạn đang sử dụng:

  1. Mở Chỉnh sửa kết nối :

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

  2. Chỉnh sửa cấu hình kết nối bạn đang sử dụng.

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

  3. Trên tab Cài đặt IPv4 :

    • Phương pháp: Chỉ địa chỉ tự động (DHCP)

      Cài đặt này làm cho nó thực hiện một yêu cầu DHCP thông thường cho cấu hình địa chỉ IP của máy chủ của bạn, nhưng nó sẽ bỏ qua các tùy chọn không bắt buộc khác như các máy chủ DNS được đề xuất.

    • Máy chủ DNS: 8.8.8.8
    • Nhấn Lưu

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

Làm xong.


Ghi chú quan trọng

Trong mạng cục bộ hoặc doanh nghiệp, máy chủ DNS cục bộ có thể được sử dụng cho máy chủ cục bộ. Bạn sẽ mất chức năng này bằng cách trực tiếp yêu cầu máy chủ của Google giải quyết tên cho bạn. Vì vậy, nếu ví dụ máy chủ DNS cục bộ sẽ biết "máy in" là gì, thì bạn sẽ mất sử dụng máy in của mình bằng tên đó.

Vì vậy, xin vui lòng, sửa chữa máy chủ DNS cục bộ của bạn thay vào đó. Nếu đó chỉ là một công cụ chuyển tiếp đơn giản đến máy chủ DNS bị hỏng của ISP của bạn và bạn không thể thay đổi điều đó (ví dụ: bộ định tuyến tất cả trong một được quản lý bởi ISP), thì 8.8.8.8giải pháp này có thể là lựa chọn duy nhất của bạn.


1
Một lưu ý quan trọng khác: google có lẽ đang thu thập những người đang tìm kiếm những gì trong DNS, vì vậy hãy suy nghĩ xem bạn có cảm thấy thoải mái với điều đó không. Có rất nhiều máy chủ DNS công cộng khác mà bạn có thể sử dụng và chúng thường đáng tin cậy. Âm thanh như OP đang sử dụng một máy chủ DNS xấu, có thể có hoặc không phải là một máy chủ cục bộ. (Tôi đã có các bộ định tuyến ADSL hàng hóa thực hiện công việc kém đáng kể với dns).
mc0e
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.