Tại sao android bỏ qua vv / máy chủ của tôi thay đổi trong trình duyệt?


19

Tôi đã remounted /sysnhư rw, thêm một mục nhập vào etc/hosts(ví dụ 10.0.0.1 x.com www.x.com) và khởi động lại điện thoại của tôi.

Sau khi khởi động lại, nếu tôi kiểm tra etc/hosts, mục nhập là tốt. Nếu tôi ping x.com, nó sẽ gửi đúng địa chỉ IP mà tôi đã nhập.

Nhưng, nếu tôi mở trình duyệt web (chứng khoán hoặc Cá heo) và duyệt đến x.com, nó sẽ chuyển đến địa chỉ IP mà DNS phân giải.

Chuyện gì đang xảy ra vậy?

(Điện thoại của tôi là Nexus One, đang chạy ROM Cyanogen 7.1 tùy chỉnh dựa trên Android 2.3.7)

Cập nhật:
Trên ứng dụng ' LAN Droid ', tôi nhận được địa chỉ đã chỉnh sửa (vì vậy 10.0.0.1) cũng ổn. Có vẻ như đó chỉ là các trình duyệt mà nó hoạt động sai.


Chỉ tò mò: điều gì sẽ xảy ra nếu bạn làm theo cách khác và đặt một tên miền nổi tiếng (hoặc một số trang web quảng cáo) để trở thành localhost thay thế? Có phải nó không tải được rồi không? Và nó có thực sự là tên miền ngắn như vậy được sử dụng trong ví dụ của bạn? (Không-so-fun-thực tế: Internet Explorer dừng chấp nhận cookie cho các lĩnh vực hai chữ Dĩ nhiên, không liên quan đến vấn đề của bạn, nhưng. Có lẽ tên miền ngắn có những hạn chế lẻ khác trong một số trình duyệt Tôi đoán không mặc dù?.)
Arjan

2
bạn có thể làm điều này - ls -l /etc/hosts, có thể vấn đề quyền / quyền sở hữu?
t0mm13b

@ t0mm13b "-rw-r - r-- root root"
gcb

@ t0mm13b bạn đang ở trên! Trong trường hợp của tôi đó là sự cho phép. chmod 644 /system/etc/hostsđã sắp xếp nó ra
KalenGi

Câu trả lời:


6

Điều này nghe có vẻ chính xác như thế này , xuống ping hoạt động nhưng không phải trình duyệt. Giải pháp cuối cùng của ông được trích dẫn dưới đây:

Câu hỏi ngu ngốc, nhưng bạn đang chỉnh sửa tập tin trên thiết bị cầm tay hay chỉ đẩy tập tin mà bạn đã đăng ở đây? Một trong những bạn đã đăng ở định dạng dos, vì vậy nó có thêm các ký tự linefeed ở cuối dòng có thể gây nhầm lẫn cho một hệ thống linux.

Tôi không biết những gì bạn đã sử dụng để sửa đổi nó, nhưng bạn có thể muốn kiểm tra loại ký tự dòng / dòng mới nào đang sử dụng.


chỉnh sửa với vi trên trình giả lập thiết bị đầu cuối. đã cố gắng ép buộc ff=unixngay bây giờ và set listđể xem bất kỳ ngắt dòng DOS nào ... thậm chí đã đi trước và chạy regrec như thể có bất kỳ ngắt dòng DOS nào, không tìm thấy gì.
gcb

4

Không chắc điều này có giúp ích gì không nhưng tôi gặp vấn đề về một tập tin máy chủ bị bỏ qua và nó đã được giải quyết bởi một anh chàng trong chủ đề này - câu trả lời là đặt một dòng mới trống ở cuối tập tin.


2

Bạn có thể cài đặt strace và so sánh đầu ra đang chạy strace trên ping với strace trên trình duyệt để xem tại sao việc tra cứu DNS lại bị xử lý khác nhau không?

Bạn có chắc chắn không có bộ nhớ đệm liên tục xảy ra? TTL trên bản ghi tên miền của bạn là gì?

Android dường như không sử dụng /etc/resolv.conf, nhưng có thể có một số thuộc tính kiểm soát ứng dụng nào sử dụng / etc / hosts và trực tiếp tìm kiếm DNS. https://groups.google.com/forum/?fromgroups#!topic/android-pl platform / BKWr4WaEneI


điểm tốt. TTL là 1h, mặc định cho quy tắc bắt tất cả tôi có. Chủ đề của g.groups chủ yếu là về quyết định đánh vào máy chủ tên nào trong các truy vấn DNS, logic này xảy ra sau vv / máy chủ. tôi hi vọng. Bây giờ tôi sẽ chạy strace (tìm hiểu làm thế nào trước) và báo cáo lại.
gcb

2

Nếu bạn đang tạo tệp máy chủ trên máy tính windows, hãy đảm bảo mỗi dòng được phân tách bằng chỉ một LF (không phải [CR] [LF], chỉ [LF]). Bạn có thể xác minh điều đó và tạo một tệp lưu trữ thích hợp bằng notepad ++.


0

Tôi nghĩ rằng bạn cần phải xóa DNS trên Android của mình, hãy kiểm tra câu hỏi này /programming/2101762/android-flush-dns , đặc biệt là "đi vào cài đặt -> ứng dụng -> Vị trí mạng -> Xóa dữ liệu."


thậm chí không có tùy chọn này trên Android 2.3.7. Nhưng điện thoại với sự thay đổi này trên vv / máy chủ trong nhiều tháng nay. và tôi khởi động lại nó thường xuyên ... tôi hy vọng DNS không được lưu trữ trong nhiều tháng vì bất kỳ lý do gì.
gcb

0

Sự nghi ngờ của tôi sẽ là trình duyệt được cấu hình để hoạt động thông qua proxy.

Bạn có thể có thể cho biết bằng cách sử dụng netstat -n hoặc tìm trong / Proc / net / tcp (hoặc tốt hơn, / Proc / # browser_pid # / net / tcp) địa chỉ mà nó thực sự đang kết nối. Nếu điều đó không phù hợp với địa chỉ trang web của bạn thì có khả năng bạn đang thông qua một trung gian.


-2

Tôi thường nói (nhưng điều này không áp dụng cho bạn, than ôi):

Chỉ cần thử khởi động lại nếu các thay đổi không được chú ý vì phiên bản máy Dalvik hoặc hệ thống cơ bản có thể đã lưu trữ một yêu cầu DNS cũ.

Bạn có thể thử AdAway để thêm thủ công các mục vào tệp máy chủ của mình (chỉ để kiểm tra chéo nếu nó hoạt động giống như bạn đã làm thủ công).

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.