Địa chỉ IP 127.0.0.2 để làm gì?


39

Tôi đang chạy ví dụ trong hiredis, đang sử dụng "127.0.0.2" làm IP máy chủ redis và nó đang chạy đúng. Trên thực tế, máy chủ redis đang chạy trên cùng một máy. Tôi biết rằng "127.0.0.1" là địa chỉ IP của "lo", nhưng còn "127.0.0.2" thì sao? Có giống như "127.0.0.1" không?

Câu trả lời:


37

Vâng:

Các tiêu chuẩn mạng IPv4 dành toàn bộ khối địa chỉ 127.0.0.0/8 cho mục đích loopback. Điều đó có nghĩa là bất kỳ gói tin nào được gửi đến một trong 16.777.214 địa chỉ đó (127.0.0.1 đến 127.255.255.254) đều được lặp lại. IPv6 chỉ có một địa chỉ duy nhất, :: 1.

Các tiêu chuẩn khác nhau của Lực lượng đặc nhiệm kỹ thuật Internet (IETF) bảo lưu khối địa chỉ IPv4 127.0.0.0/8, theo ký hiệu CIDR và ​​địa chỉ IPv6 :: 1 cho mục đích này. Địa chỉ IPv4 phổ biến nhất được sử dụng là 127.0.0.1. Thông thường các địa chỉ loopback này được ánh xạ tới tên máy chủ, localhost hoặc loopback.

hoặc từ chính RFC:

127.0.0.0/8 - Khối này được chỉ định để sử dụng làm địa chỉ vòng lặp máy chủ Internet. Một datagram được gửi bởi một giao thức cấp cao hơn tới một địa chỉ ở bất kỳ đâu trong khối này sẽ lặp lại bên trong máy chủ. Điều này thường được triển khai bằng cách chỉ sử dụng 127.0.0.1 / 32 cho loopback, nhưng không có địa chỉ nào trong khối này sẽ xuất hiện trên bất kỳ mạng nào ở bất cứ đâu [RFC1700, trang 5].

Để giải trí, hãy thử bằng cách ping:

$ ping 127.127.127.127
PING 127.127.127.127 (127.127.127.127) 56(84) bytes of data.
64 bytes from 127.127.127.127: icmp_req=1 ttl=64 time=0.110 ms
64 bytes from 127.127.127.127: icmp_req=2 ttl=64 time=0.065 ms
^C
--- 127.127.127.127 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 999ms
rtt min/avg/max/mdev = 0.065/0.087/0.110/0.024 ms

Trang Wikipedia đã thay đổi và hiện tại cho biết "mặc dù bất kỳ địa chỉ nào trong phạm vi 127.0.0.1 đến 127.255.255.254 được ánh xạ tới nó", đưa ra ý chính của câu trả lời này trong xung đột trực tiếp với Wikipedia.
SilverSkin

6
@SilverSkin Bạn có phiền giải thích ý của bạn không? Sự khác biệt duy nhất giữa những gì trong câu trả lời và những gì trong Wikipedia bây giờ là chúng (chính xác) đã loại trừ 127.0.0.0 và 127.255.255.255, là các địa chỉ mạng / quảng bá. Ý chính vẫn giống nhau - 127.xxx == 127.0.0.1 (ngoại trừ 127.0.0.0 và 127.255.255.255, được mong đợi trên bất kỳ / 8 mạng nào).
icyrock.com

1
Vì vậy, không có sự khác biệt giữa ràng buộc với 127.0.0.1 so với ràng buộc với 127.0.0.124? Vậy tại sao người thuê lại bận tâm với 127.0.0.2, nếu đó là cùng một địa chỉ? Ngoài ra, điều gì xảy ra nếu bạn đã gửi một tin nhắn tới 127.0.0.0?
CMCDragonkai

7
Cần phải đề cập rằng nó không giống nhau trong OS X, chỉ có tuyến 127.0.0.1 để loopback. Xem tại đây .
Wenbing Li

6
@CMCDragonkai 127.0.0.1 và 127.0.0.124 có thể trên cùng một giao diện nhưng chúng không cùng địa chỉ. Người ta có thể sử dụng một ip không phổ biến như 127.0.0.2 nếu muốn sử dụng thiết lập một dịch vụ trên một cổng chung và không can thiệp vào các dịch vụ khác có thể đang nghe cùng một cổng đó vào 127.0.0.1
Keith Reynold

6
  • Có phải tất cả các 127.x.x.xđịa chỉ bị giới hạn trong máy cục bộ không?
  • Tất cả các 127.x.x.xđịa chỉ được liên kết với logiao diện
  • Các 127.x.x.xđịa chỉ được định tuyến qua mạng?

127.0.0.0/8 - Khối này được chỉ định để sử dụng làm địa chỉ vòng lặp máy chủ Internet. Một datagram được gửi bởi một giao thức cấp cao hơn tới một
địa chỉ ở bất cứ đâu trong khối này lặp lại bên trong máy chủ. Điều này
thường được thực hiện bằng cách chỉ sử dụng 127.0.0.1 / 32 cho loopback. Như
được mô tả trong [RFC1122], Mục 3.2.1.3, các địa chỉ trong toàn bộ khối 127.0.0.0/8 không xuất hiện hợp pháp trên bất kỳ mạng nào ở bất kỳ đâu. - RFC5735

  • “Có phải 127.0.0.2giống như 127.0.0.1?” NO

Trong khi 127.0.0.1để 127.255.255.254là tất cả các địa chỉ địa phương buộc phải giao diện lo. Chúng không giống nhau. Bạn có thể sử dụng mỗi địa chỉ để liên kết một dịch vụ khác nhau trên cùng một cổng. Ví dụ: 16 triệu máy chủ web trên cổng 80, chỉ có thể truy cập từ máy cục bộ (Nếu trước tiên bạn không hết bộ nhớ hoặc tài nguyên khác)

Tôi vừa thiết lập một dịch vụ docker để liên kết 127.0.0.2:80. Sau đó tôi đã thêm một bí danh /etc/hosts. Bây giờ tôi có thể kết nối với nó thông qua http://myserver, nhưng không thông qua http://127.0.0.1hoặc http://localhost. Tuy nhiên nó chỉ có sẵn cho máy này. Như nó là, chỉ, trên logiao diện.

Sau đó tôi đã thiết lập một dịch vụ docker khác để liên kết 127.0.0.3:80và một dịch vụ python trên localhost:80và một dịch vụ khác trên 127.0.0.4:80.


Điều này có thể không hoạt động trên tất cả các hệ điều hành. Tôi đang sử dụng Debian (9) Gnu / Linux, Linux kernel 4.9.0-3-amd64. Một số HĐH có thể xử lý tất cả các địa chỉ 127.0.0.1127.255.255.254giống nhau. Một số chỉ có thể làm việc với 127.0.0.1.

Xem thêm



Tôi mất khoảng một giờ nghiên cứu nhưng cuối cùng tôi cũng có thể hiểu những gì bạn đang cố gắng truyền đạt. Tôi đã cập nhật trích dẫn từ bài viết Wikipedia trong câu trả lời được chấp nhận. Vì tuyên bố được trích dẫn đã thay đổi qua nhiều năm, tôi đã trích dẫn một tuyên bố khác, để khôi phục thông tin ban đầu mà câu trả lời có trong đó.
Ramhound

1

Không phải là một câu trả lời chung toàn diện (đã có một câu trả lời). Câu trả lời này của tôi cho thấy một ví dụ 127.0.0.2được sử dụng để giải quyết vấn đề.

Trích xuất:

OP ở đó đã cố kiểm tra một số phần mềm trong trường hợp khi kết nối của nó với máy chủ bị từ chối. Điều này được thực hiện trên máy chủ theo iptablesquy tắc tạm thời từ chối tất cả lưu lượng truy cập từ IP của máy khách. Khách hàng ngay lập tức có thể "thấy" kết nối bị từ chối.

Vấn đề xuất hiện khi người này chuyển phần mềm máy chủ sang cùng một máy với máy khách và cố gắng sử dụng giao diện loopback. Quy tắc được đặt để chặn liên lạc 127.0.0.1nhưng thông tin mà một kết nối đã bị từ chối trải qua quy tắc tương tự và không bao giờ có được phần mềm máy khách bị treo (có lẽ cho đến khi hết thời gian).

Giải pháp là sử dụng 127.0.0.2làm địa chỉ máy chủ và đặt quy tắc từ chối kết nối với nó. Thông tin về một từ chối đã được chuyển đến 127.0.0.1và có thể chuyển đến phần mềm máy khách.

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.