WGET không thể giải quyết máy chủ


11

Tôi đã có 2 máy trên cùng một mạng con chạy Debian 5.0. Họ sử dụng cùng một DNS (/etc/resolv.conf), họ định tuyến đến cùng một cổng (#route) và họ có cùng cài đặt iptables (#iptables -L). Tôi có thể ping từ cả hai, cả địa chỉ IP và tên máy chủ. Tôi có thể chạy #host www.google.com và nhận được kết quả tương tự trên cả hai. Nhưng vấn đề là ở một trong số họ, tôi không thể quên hay cuộn tròn.

Vì vậy, trên máy 1, mọi thứ đều ổn, nhưng trên máy 2 (có cùng cài đặt với máy 1) tôi không thể quên hoặc cuộn tròn.

Lỗi tôi nhận được là:

# wget google.com
--2009-10-20 16:38:36--  http://google.com/
Resolving google.com... failed: Name or service not known.
wget: unable to resolve host address `google.com'

Nhưng trên máy 1, không có vấn đề gì để quên hoặc cuộn tròn và trả về:

# wget google.com
--2009-10-20 16:43:55--  http://google.com/
Resolving google.com... 74.125.53.100, 74.125.45.100, 74.125.67.100
Connecting to google.com|74.125.53.100|:80... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
...
Saving to: `index.html.3'

Vân vân.

Tôi hy vọng ai đó ở đây có thể chỉ cho tôi đi đúng hướng ở đây để tôi có thể khắc phục vấn đề này :)


Điều này có lẽ không liên quan đến wget mà là vấn đề mạng.
jldupont

bạn có cài đặt proxy trong môi trường không .. máy làm việc của tôi đã làm :-(
lexu

Hãy thử "lưu trữ google.com", không phải "lưu trữ www.google.com", trên máy chủ 2.
Bill Weiss

Câu trả lời:


17

Kiểm tra /etc/nsswitch.conftệp của bạn (hoặc bất cứ thứ gì tương đương trên Debian nếu không phải vậy).

hostnslookup luôn luôn tìm kiếm DNS.

Tuy nhiên, các ứng dụng khác sẽ tìm trong NSS trước cho các hệ thống đặt tên khác (ví dụ: /etc/hostsNIS, v.v.). Nếu một cái gì đó khác được cấu hình nhưng không hoạt động, nó có thể ngăn ứng dụng thử DNS.


3
Cách chính tắc để kiểm tra trình phân giải đang chạy getent hosts google.com. Điều này sử dụng nsswitch.conf và sau đó giải quyết theo yêu cầu.
Joe

9

Cảm ơn câu trả lời của các bạn!

Đó là tập tin nsswitch.conf. Tôi đã thiết lập LDAP từ một hướng dẫn bảo tôi sử dụng dòng này trong máy chủ:

hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4

Khi tôi đổi nó thành cái này:

hosts: files dns mdns4_minimal [NOTFOUND=return] mdns4

Nó hoạt động mà không có vấn đề. Vì vậy, tôi đoán rằng tập tin cấu hình nsswitch đã làm cho nó trở về null nếu không tìm thấy trong các tập tin hoặc mdns4_minimal, phải không?

Cảm ơn bạn đã giúp đỡ!


7
Bạn có lẽ nên chấp nhận câu trả lời của Alnitak.
Dan Carley

Vâng, làm thế nào để tôi làm điều đó? : - /

Chấp nhận bằng cách nhấp vào "V" bên cạnh điểm bình chọn. :)
Redsandro

2

Có thể có một proxy không hợp lệ được cấu hình trên máy có lỗi không? Thử đi:

# wget --no-proxy google.com

2

Điều đầu tiên cần thử là kiểm tra xem DNS có hoạt động chính xác không.

# host google.com
google.com has address 74.125.67.100
google.com has address 74.125.45.100
google.com has address 74.125.53.100

Nếu bạn không nhận được phản hồi đó, hãy kiểm tra /etc/resolv.conf và tìm máy chủ tên được liệt kê trong tệp đó. Bạn có thể ping từng người trong số họ?

Hãy thử truy vấn từng người trong số họ:

# host google.com 12.34.56.78

Bạn có thể giải quyết một máy chủ khác?


2

Tôi đã có cùng một vấn đề, nhưng bên cạnh thay đổi /etc/nsswitch.conf:

hosts: files dns mdns4_minimal [NOTFOUND=return] mdns4

Tôi cũng đã phải thay đổi tên máy chủ:

Thay đổi /etc/resolv.confđể nó trỏ đến máy chủ tên google. Những người được thêm bởi người quản lý mạng không làm việc cho tôi.

# RED 2013-03-31
nameserver 8.8.8.8
nameserver 8.8.4.4

3
Cảm ơn, ẩn danh, cho các bình luận mang tính xây dựng trên downvote.
Redsandro
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.