Sự khác biệt giữa localhost và địa chỉ IP


16

Nếu liên kết một ổ cắm trong Python với localhost, 8200 có thể truy cập thông qua http: // localhost: 8200 / . nhưng không phải http: // xxxx: 8200 /

Nếu liên kết một ổ cắm trong Python với xxxx, 8200, machinename, 8200 thì có thể truy cập thông qua http: // xxxx: 8200 /http: // machinename: 8200 / , nhưng không phải http: // localhost: 8200 /

Tôi nghĩ localhost có nghĩa là 'máy này' và việc sử dụng nó sẽ 'lặp lại' đến địa chỉ IP của máy, nhưng dường như nó là các ips khác nhau.

Có phải 127.0.0.1 luôn là một địa chỉ IP khác với địa chỉ IP của máy không?

cập nhật:

Tôi hiểu rằng các con số thực tế là khác nhau, nhưng loopback làm gì?

Ví dụ, wikepedia nói rằng
'trỏ trình duyệt web tới các URL http://127.0.0.1/ hoặc http: // localhost / sẽ truy cập trang web của chính máy tính đó'

nhưng trang web đó cũng sẽ có thể truy cập được trên xxxx và có lẽ được thiết lập với một ổ cắm duy nhất trên xxxx Vậy làm thế nào để cả hai tài liệu tham khảo hoạt động?

phần kết luận:

Tôi nghĩ rằng cuối cùng tôi cũng hiểu rằng 127.0.0.1 và xxxx hoạt động như thế này

--127.0.0.1 ==\
               >- Computer
--x.x.x.x   ==/

và không

--127.0.0.1 ==\
--------------- x.x.x.x >- Computer

hoặc là

--x.x.x.x ==\
--------------- 127.0.0.1 >- Computer

cảm ơn tất cả vì sự giúp đỡ


1
bạn đã viết "là 127.0.0.1 luôn là một địa chỉ IP khác với địa chỉ IP của máy". Các số giữa các dấu chấm là khác nhau, đó là một địa chỉ IP khác nhau. Thật là một câu hỏi kỳ lạ mà bạn hỏi. Nếu theo địa chỉ IP của máy, bạn có nghĩa là một cái gì đó khác với 127.0.0.1 thì có, đó sẽ là một địa chỉ IP khác. Và nếu những gì bạn gọi là địa chỉ IP của máy là 192.168.0.1 (hoặc một số phạm vi cục bộ tiêu chuẩn khác), thì bạn không phải sợ nói như vậy. Bạn có thể viết nó thay vì xxxx Địa chỉ 192 đó sẽ không tồn tại trên internet.
barlop

Các tài liệu tham khảo cho cả hai hoạt động vì cách cấu hình máy chủ web. Bạn có thể yêu cầu máy chủ liên kết với tất cả các địa chỉ hoặc chỉ lắng nghe những địa chỉ cụ thể. Vì Loopback và IP thực tế là các địa chỉ riêng biệt, nên cấu hình sẽ xác định IP nào sẽ nghe. Vì localhost chỉ là một mục lưu trữ cho 127.0.0.1, nên nó sẽ chỉ hoạt động khi máy chủ web được liên kết với 127.0.0.1.
Peelman

Câu trả lời:


17

Để trả lời câu hỏi của bạn.

127.0.0.1 không chỉ là một địa chỉ IP khác với địa chỉ IP của máy, mà còn là một giao diện khác. 127.0.0.1 không nên được nhìn thấy trên mạng cục bộ. Đó là một địa chỉ IP nội bộ đặc biệt cho bộ điều hợp loopback.

xxxx sẽ là thẻ ethernet của bạn.

bằng cách này, 'localhost' chỉ đơn giản là một mục trong tệp máy chủ của bạn trỏ đến 127.0.0.1

Nếu bạn liên kết một ổ cắm với 127.0.0.1:8200 thì chỉ những khách hàng đang chạy cục bộ mới có thể truy cập nó và chỉ với http://127.0.0.1:8200 hoặc http: // localhost: 8200 (hoặc nhập tệp dns hoặc lưu trữ tệp chỉ ra 127.0.0.1).

Một ổ cắm được liên kết với xxxx: 8200 sẽ chỉ khả dụng thông qua http: // xxxx: 8200 hoặc mục nhập tệp dns hoặc máy chủ lưu trữ trỏ đến đó.

Liên kết một ổ cắm với 127.0.0.1 cũng không tự động làm cho nó có sẵn trên giao diện ethernet.

Đó là lý do tại sao bạn không thể kết nối với xxxx: 8200

Bạn có thể liên kết cổng 8200 với tất cả các giao diện có sẵn (0.0.0.0) sau đó nó sẽ hoạt động.


Vậy bit 'loopback' làm gì? Nó loopback để làm gì? Tôi nghĩ rằng đó là một cách để tham chiếu địa chỉ IP của máy, bất cứ điều gì đã xảy ra là 'tức là 127.0.0.1 => xxxx
David

1
Giao diện loopback là một giao diện ảo. Nó thường được sử dụng để cho phép các chương trình nói chuyện với nhau trên cùng một máy. Nó không phải là một cách để tham khảo địa chỉ IP của máy. 127.0.0.1 LÀ địa chỉ IP của bộ điều hợp ảo loopback.
Matt H

1
Một điều khác về bộ điều hợp loopback là bởi vì nó thực sự ảo nên nó không thực sự chuyển bất kỳ gói tin nào đến card mạng.
Matt H

1
thực sự lãng phí 4 giờ không hiểu khái niệm này ... rõ ràng một số máy chủ web tự động liên kết với cả xxxx và 127.0.0.1 cho bạn, điều này gợi ra sự nhầm lẫn. Câu hỏi và trả lời tuyệt vời Thx =)
jrhee17

3

Ví dụ, wikepedia nói rằng 'trỏ trình duyệt web tới các URL http://127.0.0.1/ hoặc http: // localhost / sẽ truy cập trang web của chính máy tính đó'

Hơi không chính xác. Nó có thể làm như vậy. Tương tự, nó có thể không hiển thị bất kỳ trang web nào và thậm chí có thể hiển thị một trang web nội bộ khác với những gì bạn nhận được khi bạn sử dụng địa chỉ xxxx của mình.

127.0.0.1 trỏ đến máy của chính bạn, nhưng điều đó không có nghĩa là nó sẽ hoạt động theo cùng một cách khi nó đến máy của bạn

Nếu bạn muốn một sự tương tự phi kỹ thuật, bạn có thể xem xét chúng là những cánh cửa khác nhau vào nhà bạn.

Có cả hai chỉ về cùng một nhà nhưng chúng không giống nhau. Mỗi cánh cửa có thể đưa bạn vào cùng một phòng hoặc họ có thể đưa bạn vào một phòng khác. Cũng có thể khóa một cửa chứ không phải cửa khác.

Khi bạn định cấu hình trang web, bạn chỉ định địa chỉ nào sẽ liên kết và thường thì câu trả lời là tất cả địa chỉ. (Điều đó tương đương với việc tất cả các cửa đưa bạn vào một phòng)

Bạn cũng có thể chỉ định trang web để liên kết với một địa chỉ duy nhất. (Điều đó tương đương với việc khóa tất cả các cửa trừ một.)

Nếu bạn có hai (hoặc nhiều) trang web, bạn có thể liên kết chúng với các địa chỉ riêng biệt. (Điều đó tương đương với việc mỗi cánh cửa đi vào các phòng riêng biệt).

Một ví dụ về cách cả hai tài liệu tham khảo hoạt động, máy tính Windows 7 của tôi đã cài đặt IIS, khi tôi vào IIS Manager và nhấp chuột phải vào Trang web mặc định, nó cho tôi tùy chọn menu 'Chỉnh sửa liên kết'. Chọn mà đưa ra một danh sách các ràng buộc. Tôi chỉ có một, nhưng đối với Địa chỉ IP thì nó có * có nghĩa là IIS lắng nghe trên tất cả các địa chỉ IP của tôi.


Sự tương đồng tuyệt vời! Cảm ơn rât nhiêu ! Tôi vừa làm một thử nghiệm. Tôi đã liên kết thành công 127.0.0.1:5000với một trang web và liên 192.168.1.104:5000kết với một trang web khác. Điều quan trọng là address:portcó nghĩa là một phòng (dịch vụ) khác trong nhà (máy tính).
Rick

1

Mỗi địa chỉ IP trên hệ thống là độc lập và có thể được ràng buộc bởi các ổ cắm riêng biệt, ngoại trừ địa chỉ đặc biệt 0.0.0.0 chỉ ra cho HĐH để liên kết ổ cắm với tất cả các giao diện.


1
Nhưng 127.0.0.1 cũng là một địa chỉ đặc biệt, là lựa chọn phổ biến nhất cho giao diện loopback. Địa chỉ đó lặp lại để làm gì?
David

Điều đó không làm cho nó trở nên "đặc biệt", mà chỉ biến nó thành "một địa chỉ trên giao diện loopback" (trừ khi bạn nói "mọi địa chỉ đều đặc biệt theo cách riêng của nó", nhưng chúng ta đừng đến đó). Đó là giao diện thực hiện vòng lặp chứ không phải địa chỉ.
Ignacio Vazquez-Abrams
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.