Sự khác biệt giữa ping và không có http: //


46

Tôi đang cố gắng ping trang web của mình http://www.example.com/và nó giải quyết đến một địa chỉ IP không xác định và hết thời gian.

PING http://www.example.com/ (198.105.254.228): 56 data bytes 
Request timeout for icmp_seq 0 
Request timeout for icmp_seq 1 
Request timeout for icmp_seq 2

nhưng khi tôi ping example.comnó hoạt động

Tôi đang bỏ lỡ điều gì ở đây?


32
Điều khó hiểu ở đây là ping thậm chí không thể giải quyết như là một tên máy chủ, ít gửi đi các gói ICMP không thành công. Bạn đang dùng hệ điều hành / phiên bản nào?
lông mịn

11
Tôi xin lỗi, nhưng tôi đã bỏ phiếu này vì sự kết hợp của nhiều lý do - người dùng mới với một câu hỏi có chứa URL tới trang web của họ với đầu ra rõ ràng bị làm sai lệch từ PING. Theo tất cả các quyền, đó là một nỗ lực để hướng lưu lượng truy cập đến URL. Trừ khi chúng ta có thể tìm ra hệ điều hành nào có phiên bản PING mà 1) biết URL là gì và 2) xác định số icmp_seq cho mỗi lần ra.
Bình minh Benton


25
Đối với những người downvoted bởi vì họ không biết có dịch vụ DNS mà cướp tra cứu thất bại, không biết pinggetaddrinfo()và bạn bè đi qua dấu gạch chéo, không biết rằng 56 data byteslà một mặc định thông thường, v.v .: Hãy thực hiện việc này như một dấu hiệu rằng những nỗ lực của bạn để tìm hiểu về nhiều thứ hơn trước khi cố gắng giúp đỡ sẽ được đánh giá cao.
rakslice

5
@ Cʜιᴇ007 Kết quả ping là có thật, tôi thấy chính xác như vậy khi tôi ping tên máy chủ không hợp lệ với TimeWarner Cable DNS trên OS X.
Hunter Dolan

Câu trả lời:


108

Tôi đang cố gắng ping trang web của mình http://www.example.com/ và nó giải quyết đến một địa chỉ IP không xác định và hết thời gian.

PING http://www.example.com/ (198.105.254.228): 56 data bytes
Request timeout for icmp_seq 0

Đối số để ping là tên máy chủ (hoặc địa chỉ IP).

Vì vậy, tất cả những điều sau đây sẽ làm việc:

ping example.com
ping www.example.com
ping 127.0.0.1

Mặt khác,

ping http://www.example.com/

sẽ không hoạt động vì http://www.example.com/Bộ định vị tài nguyên thống nhất HTTP (URL) không phải là tên máy chủ hợp lệ (mặc dù một phần của nó là tên máy chủ).

Một URL HTTP được tạo thành từ 4 phần:

  • Đề án - luôn luôn có mặt
  • Tên máy chủ - luôn có mặt
  • Đường dẫn hoặc gốc - luôn luôn xuất hiện nhưng đôi khi là null
  • Thông số - tùy chọn

Ping thường sẽ không nhận ra URL là tên máy chủ đích hợp lệ.

Ghi chú :

  • Không phải tất cả các URL có định dạng được đề cập ở trên.

  • Một URL hoàn chỉnh bao gồm một công cụ xác định sơ đồ đặt tên theo sau là một chuỗi có định dạng là một chức năng của sơ đồ đặt tên.

  • Định dạng của URL được xác định trong đặc tả Bộ định vị tài nguyên thống nhất (URL) của IETF


Cướp DNS

Một ngoại lệ ở trên có thể xảy ra nếu máy chủ DNS (phân giải tên máy chủ thành địa chỉ IP) được định cấu hình để trả về địa chỉ IP hợp lệ ngay cả khi tên máy chủ không hợp lệ được cung cấp.

Điều này có thể xảy ra nếu một ISP đang chiếm quyền điều khiển truy vấn DNS của bạn.

Từ câu trả lời Tại sao ping phân giải thành IP 198.105.254.228 cho bất kỳ tên máy chủ ngẫu nhiên nào tôi nhập? bởi Michael Hampton :

Họ đang cố gắng trở nên "hữu ích" bằng cách chuyển hướng yêu cầu cho các tên miền không tồn tại sang dịch vụ nhãn trắng cung cấp kết quả tìm kiếm và quảng cáo, từ đó mọi người trừ bạn bị cắt giảm doanh thu.

May mắn thay, họ có một trang tùy chọn nơi bạn có thể tắt nó đi.


33

Khi bạn chạy lệnh ping với một chuỗi không phải là địa chỉ IP, trước tiên, nó cần giải quyết địa chỉ IP của máy chủ bạn đang cố gắng ping.

Khi bạn chạy:

$ ping example.com

Máy chủ DNS trả về địa chỉ IP của máy chủ lưu trữ trang web.

Tuy nhiên, khi bạn tiền tố giao thức và đường dẫn để tạo một URL http tiêu chuẩn được gửi đến máy chủ DNS sẽ được giải quyết.

Vì vậy, thay vì máy chủ DNS tìm bản ghi cho example.comnó, hãy tìm bản ghi http://example.com/không phải là tên máy chủ hợp lệ.

Rất nhiều máy chủ DNS sẽ trở lại mà không có gì. Trong trường hợp đó, lệnh ping sẽ chỉ xảy ra lỗi với độ phân giải DNS.

Tuy nhiên, máy chủ DNS của bạn trả về địa chỉ IP 123.456.789.000. Địa chỉ dường như là một dịch vụ gợi ý của Time Warner Cable để giúp người dùng nhập sai url trong trình duyệt của họ.

Nhưng lệnh ping thực hiện điều này theo nghĩa đen và tin rằng tên máy chủ http://example.com/(không phải là tên máy chủ hợp lệ) sẽ phân giải thành địa chỉ 123.456.789.000.

Lý do lệnh ping hết thời gian sau đó là vì 123.456.789.000không đáp ứng với các yêu cầu ICMP.


5
Thật đáng để chỉ ra rằng tên miền / ip thực tế đã được chỉnh sửa bởi bot Cộng đồng. "123.456.789.000" ban đầu là địa chỉ IP mà DNS của TWC đã ném ra khi bạn cố gắng giải quyết tên máy chủ không tồn tại.
Thợ săn Dolan

1
Bot không biết cách chỉnh sửa tự động; Tôi muốn nói rằng đó là một chỉnh sửa được đề xuất bởi một người dùng ẩn danh.
Léo Lam

Việc chỉnh sửa được đề xuất bởi một người dùng ẩn danh và được tôi và một người dùng khác chấp thuận.
DavidPostill

21

Http: // là viết tắt của giao thức truyền văn bản siêu, giao thức được sử dụng để truy cập các trang web. Ping máy chủ không sử dụng HTTP, nhưng thay vào đó bao gồm thông báo ICMP (giao thức tin nhắn điều khiển internet), vì vậy http: // không có ý nghĩa trong ngữ cảnh này.


Tôi nói điều đó không rõ ràng với những người chưa biết, nhưng bây giờ bạn đã biết thông tin từ câu trả lời của KJ4TIP, hãy nhìn vào đầu ra: Request timeout for icmp_seq 0Bạn có thể thấy ICMP ở đó, nghĩa là chuỗi ICMP 0, 1, 2 ...
Tyler Collier

0

Tại sao bạn lại sử dụng 'ping'. Nó sẽ không hoạt động nếu có tường lửa theo cách chặn lưu lượng 'ping'.

Theo ý kiến ​​của tôi, nếu bạn định kiểm tra máy chủ web thì tốt hơn nên sử dụng 'telnet', sau đó bạn có thể kiểm tra máy chủ và cổng mà nó nên nghe.

ví dụ: Để kiểm tra máy chủ web của bạn telnet www.mywebserver.com 80 ở màn hình trống, nhập 'get' rồi 'enter' và bạn sẽ nhận được một đống phản hồi http từ máy chủ web. ( ví dụ: HTTP / 1.1 400 Yêu cầu xấu ... )

Điều này cho tôi biết rằng không chỉ máy chủ 'lên' mà còn lắng nghe và phản hồi trên cổng 80. (Tôi cũng mong đợi bất kỳ tường lửa nào sẽ chuyển cổng 80 qua máy chủ web của tôi)

Tương tự, 'telnet' cũng hoạt động để kiểm tra các máy chủ thư, ftp và bất kỳ thứ gì khác.

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.