Tại sao điện thoại của tôi sử dụng Google Public DNS?


10

Tôi chỉ tò mò muốn biết máy chủ DNS mà điện thoại của tôi đã sử dụng. Vì vậy, tôi đã khởi chạy một trình giả lập thiết bị đầu cuối và tôi đã nhập:

$ cat /etc/resolv.conf
nameserver 8.8.8.8
nameserver 8.8.4.4

Như bạn có thể thấy, điện thoại của tôi sử dụng 8.8.8.8 và 8.8.4.4 làm máy chủ DNS ( máy chủ DNS công cộng của Google ).

Ở nhà (Wifi), bộ định tuyến của tôi được cấu hình để cung cấp cho các máy chủ của OpenDNS thông qua DHCP. Nhưng, trên điện thoại của tôi, cat /etc/resolv.conftrả lại cùng một đầu ra. Điều tương tự với 3G. Và, ngay cả khi tôi tắt cả Wifi và 3G, sau đó khởi động lại điện thoại, nó vẫn sử dụng các máy chủ DNS công cộng của Google.

Tôi không nhớ đã thay đổi resolv.confhoặc cài đặt bất kỳ ứng dụng nào để thay đổi nó.

Điện thoại của tôi là một chiếc HTC Desire với CyanogenMod 7.2.0.1 (Android 2.3.7).

Ai đó có thể giải thích cho tôi tại sao điện thoại của tôi sử dụng Google Public DNS không? Đây có phải là cấu hình phổ biến cho mọi thiết bị Android hoặc CyanogenMod ROM không?

Câu trả lời:


11

Theo Steve Kondik , đây thực chất là mã cũ còn sót lại từ các phiên bản cũ của CyanogenMod:

Điều này chỉ có ở đây cho các ứng dụng được liên kết tĩnh với uclibc trong các phiên bản CM cũ. Nó có thể chỉ cần được gỡ bỏ.

Tuy nhiên, ông cũng tiếp tục lưu ý :

Ngoài ra, tệp này KHÔNG được ghi khi kết nối với mạng vì / hệ thống chỉ đọc. Các máy chủ DNS thực tế được đọc từ các thuộc tính hệ thống.

Tôi cũng chỉ xác minh rằng các máy chủ DHCP cung cấp đang thực sự được sử dụng, vì vậy vấn đề này không hợp lệ trừ khi có người chứng minh khác.

Vì vậy, các giá trị trong /etc/resolv.confthực tế không phản ánh cài đặt DNS của bạn. Thay vào đó, những gì bạn có thể làm là sử dụng getpropđể tìm các giá trị DNS của mình. Bạn có thể giảm nó xuống khá độc đáo nếu bạn grep đầu ra như vậy:

getprop | grep dns

Cũng đáng chú ý: /etc/resolv.conftập tin dường như đã bị xóa hoàn toàn trong các phiên bản sau của CyanogenMod. Tôi hoàn toàn không có CM10, nhưng getprophiển thị chính xác các cài đặt DNS của tôi.


Người trả lời tuyệt vời, cảm ơn. Tuy nhiên, getprop | grep dnskhông trả lại bất cứ điều gì. getprop | grep -E '([0-9]{1,3}\.){3}[0-9]{1,3}'(tìm kiếm địa chỉ IPv4) không trả về kết quả có liên quan. Tính trở là ro.baseband, ro.build.description, ro.modversiongsm.version.baseband. Bất kỳ ý tưởng?
Morgan Courbet

@Morgan: Tôi cho rằng nó có thể là một loại khác biệt giữa CM7 (bạn đang chạy) và CM10 (những gì tôi đã thử nghiệm). Điều gì xảy ra nếu bạn không grep đầu ra? Bạn có thấy điều gì liên quan không? (có thể muốn chuyển nó thành morehoặc tương tự vì nó có thể dài)
eldarerathis

1
@Morgan: Tôi không có thiết bị Gingerbread để kiểm tra, nhưng nên có một cách để làm điều đó trong cài đặt không dây tiêu chuẩn nếu bạn định cấu hình IP tĩnh (Tôi không nghĩ bạn có thể làm theo cách này nếu bạn sử dụng Thật không may, DHCP). Trên JB, tôi nhấn và giữ mạng mà tôi đã kết nối và chọn "Sửa đổi" để truy cập mạng. Nó có thể nằm dưới "Định cư nâng cao" mặc dù (nút menu khi nằm trong danh sách các mạng wifi). Bạn cũng có thể sử dụng setpropnhưng nó sẽ không tồn tại trên các lần khởi động lại / ngắt kết nối. Ví dụ. setprop net.rmnet0.dns1 <your DNS IP>nên thay đổi giá trị của net.rmnet0.dns1tài sản.
eldarerathis

1
Và tôi nghĩ rằng cái cụ thể hơn sẽ được sử dụng bởi bộ điều hợp ( net.rmnet0.dns1trong trường hợp của bạn), mặc dù nó có thể được kế thừa giá trị đó từ thuộc tính chung hơn net.dns1.
eldarerathis

1
@Rhyuk: Tôi không biết. setpropcó thể là một giải pháp tạm thời nếu bạn đưa ra các giá trị trống, nhưng bạn phải chạy nó trên mỗi lần khởi động (và tôi không chắc liệu điều đó có thực sự hoạt động không).
eldarerathis
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.