Làm thế nào để bạn có được địa chỉ loopback khác với 127.0.0.1 để hoạt động trên OS X


55

Theo tất cả mọi thứ tôi đọc, toàn bộ mạng con 127.xxx nên loopback.

Tuy nhiên, trên máy Mac của tôi, tôi chỉ có thể ping 127.0.0.1

Tôi biết tôi đã làm điều này trước đây (mặc dù có thể trên một HĐH khác) và rất hữu ích để phát triển nhiều trang SSL tại địa phương và để tạo các dịch vụ từ xa để truy cập trên một IP cục bộ (ví dụ: tôi có thể ssh vào máy chủ MySQL của mình và chỉ chuyển cổng chuẩn sang cổng tương tự trên máy cục bộ của tôi nhưng trên 127.0.0.2 trong khi máy chủ cục bộ của tôi chạy ở 127.0.0.1.

Câu trả lời:


72

Đây là câu trả lời ngắn: sudo ifconfig lo0 alias 127.0.0.* up

Mỗi bí danh phải được thêm vào riêng lẻ ( sudo ifconfig lo0 alias 127.0.0.2 up, sudo ifconfig lo0 alias 127.0.0.3 up). Nó có thể được thực hiện thủ công để kiểm tra, hoặc một tập hợp con hoặc danh sách đầy đủ của 250 số có sẵn khác trong mạng con đó có thể được tạo thành tập lệnh StartupItems sẽ tự động thực hiện khi khởi động.

Câu trả lời dài: Theo RFC3330, 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 thực hiện 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.


4
Nếu chỉ có một cách để làm cho nó hoạt động cho 127. *. *. *
Matthew Schinckel

Nếu điều này hóa ra cũng hoạt động trên CentOS, thì bạn đang nhận được tiền thưởng từ tôi.
Bắn Parthian

Trên thực tế, một trong hai cách bạn nhận được một tiền thưởng. Vì nó không hoạt động cho CentOS, tôi sẽ chỉ hỏi và trả lời câu hỏi đó một khi tôi tìm ra câu trả lời.
Bắn Parthian

Cách tôi thiết lập 4 máy chủ trên cổng 8, sử dụng các địa chỉ loopback khác nhau trên debian9 Gnu / Linux superuser.com/a/1255308/62123
ctrl-alt-delor

12

Đối với những người quan tâm, đây là một tập lệnh bash nhỏ có thêm tất cả các bí danh cho IP 127.0.0. *:

#!/bin/bash
for ((i=2;i<256;i++))
do
    sudo ifconfig lo0 alias 127.0.0.$i up
done

Tôi đang đọc sai à? Những gì bạn tạo ra trông giống như tất cả các địa chỉ từ 127.0.0.1 đến 127.0.0.255. Nếu bạn thay đổi "sudo ifconfig lo0 bí danh 127.0.0. $ I up" thành "sudo ifconfig lo0 bí danh 127. $ i. $ I. Tuy nhiên, bạn sẽ bỏ qua bất cứ thứ gì nhỏ hơn 2 .. Vì vậy, có thể sử dụng một biến khác cho hai octet khác? Địa chỉ IP cao nhất cho loopback là 127.255.255.255
Everett

1
@Everett, bạn đọc chính xác, nó chỉ thực hiện các địa chỉ 127.0.0. *. Lý do tôi không bao gồm toàn bộ phạm vi là vì thực sự khá chậm để xử lý ngay cả 255 địa chỉ, vì vậy 255x255x255 sẽ mất quá nhiều thời gian.
nguyệt quế

1
Cảm ơn. Tôi chỉ muốn chắc chắn rằng kỳ vọng đã được đặt ra, bởi vì ai đó sẽ đến đây và nói, "Này, nó không hoạt động cho 127.7.53.91." Tôi sẽ không làm điều đó, nhưng ai đó sẽ ...
Everett

2
Trên thực tế, đề xuất của @ Everett cũng không hoạt động, vì nó chỉ cho phép các địa chỉ như 127.7.7.7 hoặc 127.42.42.42, đó là tất cả những người có ba chữ số cuối là bằng nhau. Bạn sẽ cần ba vòng lặp riêng biệt để thực sự kích hoạt tất cả các IP trong khối 127/8. Tuy nhiên, làm điều này chắc chắn sẽ không phải là một ý tưởng hay: rất có thể xảy ra, với điều kiện là mỗi IP phải được bật riêng, có một số tài nguyên được gắn vào mỗi IP được gán; phân bổ khoảng 17,7 triệu IP (tức là 256 ^ 3) có thể gây ra một số hậu quả đáng kể ...
jwatkins

2
@jwatkins Dòng dưới cùng: Chỉ kích hoạt chúng nếu bạn cần chúng, đó là quy tắc chung cho mọi thứ, thực sự.
William T Froggard
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.