Điểm:0

Tại sao IP không thể được sử dụng trực tiếp khi IP được ánh xạ tới tên máy chủ khi mục máy chủ hoạt động?

lá cờ ru

Tôi đã được cung cấp một API cho một dịch vụ mà qua đó tôi đã cố gắng gửi một bài đăng từ máy chủ A, nhưng không thể tạo kết nối. Sau đó, tôi ping tên miền trong API. Nó không hoạt động, vì vậy tôi nghĩ rằng có thể tên miền chưa được ánh xạ công khai tới trang web.

Để tìm IP của trang web, tôi đã ping địa chỉ đó trong mạng nội bộ từ máy khách B của mình, sau đó tôi sử dụng IP hiển thị trong thông báo để thay thế tên miền và thử đăng lại ở máy chủ A. Nó không hoạt động. Sau đó, tôi đã ánh xạ IP tới tên miền trong /etc/hosts làm mục máy chủ lưu trữ trong máy chủ A và sử dụng tên miền làm uri bài đăng và nó đã hoạt động.

Tôi tự hỏi tại sao nó không hoạt động khi tôi thay thế tên miền bằng địa chỉ IP trong API? Nó chỉ hoạt động bằng cách thêm một mục máy chủ?

Tôi chưa quen với serverfault, vì vậy nếu câu hỏi này bị trùng lặp (tôi nghĩ rất có thể xảy ra), vui lòng cho tôi biết. Cảm ơn.

Patrick Mevzek avatar
lá cờ cn
`ping` hầu như không bao giờ là một công cụ khắc phục sự cố có liên quan. Nếu bạn chỉ cần giải quyết một tên, bạn có thể sử dụng bất kỳ máy khách DNS nào, chẳng hạn như `dig`, `host` hoặc `nslookup`.
dave_thompson_085 avatar
lá cờ jp
NẾU bạn sử dụng `curl`, bạn có thể thay vì mục nhập `/etc/hosts` (hoặc thay đổi DNS khác như dnsmasq), hãy sử dụng tùy chọn dòng lệnh `--resolve`; xem trang người đàn ông. Và mọi thứ được xây dựng trên libcurl đều có thể có tùy chọn tương tự.
Điểm:0
lá cờ in

Nhiều máy chủ web sử dụng tên máy chủ được gửi trong yêu cầu để xác định trang web nào sẽ được sử dụng. Điều này cho phép nhiều trang web trên cùng một IP.

Vì vậy, có, tên máy chủ chính xác thường được yêu cầu.

Patrick Mevzek avatar
lá cờ cn
Thậm chí còn "tồi tệ" hơn thế: nếu HTTPS, tên máy chủ phải được biết ngay cả trước lưu lượng HTTP, nghĩa là với phần mở rộng SNI bên trong quá trình bắt tay TLS. Máy chủ cần lấy thông tin này từ máy khách để có thể hiển thị chứng chỉ thích hợp, nếu không có HTTPS sẽ không hữu ích.
lá cờ in
@PatrickMevzek đúng, trình duyệt luôn gửi tên máy chủ (nếu trình duyệt hỗ trợ SNI và được máy chủ yêu cầu) nhưng tên máy chủ được gửi sau đó sẽ là địa chỉ IP.
Patrick Mevzek avatar
lá cờ cn
"nhưng tên máy chủ được gửi sau đó sẽ là địa chỉ ip. â" Không, `N` trong `SNI` có nghĩa là tên... Xem §3 của RFC6066, nó giải thích rõ ràng phần mở rộng sẽ là được sử dụng cho tên máy chủ, không có gì khác. Nó nói: "Không cho phép địa chỉ IPv4 và IPv6 theo nghĩa đen trong "HostName"."
Patrick Mevzek avatar
lá cờ cn
Và điều này là vì một lý do đơn giản: máy chủ phải biết máy khách đã liên hệ với địa chỉ IP nào, nó không cần máy khách gửi thông tin này ở một lớp khác. Mặt khác, máy chủ không thể biết độ phân giải tên đã được thực hiện để tiếp cận địa chỉ IP cụ thể đó, vì vậy máy khách phải gửi **tên** ở đầu quá trình trong phần mở rộng TLS sớm trong quá trình bắt tay cho máy chủ để đưa ra các lựa chọn phù hợp dựa trên đó, chẳng hạn như chứng chỉ nào sẽ xuất trình.
lá cờ in
Cảm ơn, hôm nay tôi đã học được một điều mới liên quan đến SNI. Tiêu đề HTTP/1.1 tiêu chuẩn vẫn áp dụng với Máy chủ trong đó phần máy chủ của URL được gửi bất kể. Vì vậy, bạn vẫn có thể có vhost trên IP (không có nhiều ý nghĩa, nhưng có thể)
Patrick Mevzek avatar
lá cờ cn
Tôi chưa bao giờ nói rằng bạn không thể có dịch vụ lưu trữ ảo trên địa chỉ IP, tất nhiên là bạn có thể, hãy xem https://1.1.1.1/ để biết ví dụ nổi tiếng với chứng chỉ hoàn toàn hợp lệ. Tuy nhiên, đó là những trường hợp cạnh (cũng như chứng chỉ cho địa chỉ IP, ít nhất là trong thế giới HTTP, chúng "chính thống" hơn nhiều ở những nơi khác, như RPKI) và nói chung, các URL HTTPS có địa chỉ IP thay vì tên máy chủ là một ý tưởng tồi/dấu hiệu của một vấn đề ở đâu đó (chẳng hạn như sau này không có chứng chỉ hoặc chứng chỉ không hợp lệ, điều này sẽ khiến máy khách ngừng kết nối).

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.