Tôi đang chạy OS X Mountain Lion trên máy có địa chỉ IP cục bộ 192.168.1.6 (như đã báo cáo bởi cả tiện ích Mạng và ifconfig) và đang chạy một máy chủ web phát triển cục bộ (Django) trên cổng 8000 mà tôi muốn kết nối từ một máy ảo đang chạy một hệ điều hành khách trên cùng một máy.Tại sao tôi có thể kết nối với http://127.0.0.1:8000/ nhưng không được http://192.168.1.6/
Trên hệ điều hành máy chủ (ví dụ: OS X chạy trên kim loại của máy w/địa chỉ 192.168.1.6) Tôi có thể kết nối với máy chủ web thử nghiệm của mình thông qua trình duyệt bằng cách điều hướng tới 127.0.0.1:8000; hoặc localhost: 8000; nhưng không phải khi sử dụng địa chỉ IP cục bộ của máy. Dưới đây là những gì làm cho điều này thêm khó hiểu:
- Bộ định tuyến không lọc cổng; và, để chắc chắn, tôi đã đặt nó để chuyển tiếp một cách rõ ràng các cổng 8000 và 22 đến 192.168.1.6; Và nói về cổng 22,
- Khi tôi bắt đầu dịch vụ SSH, tôi có thể kết nối (từ dòng lệnh) qua ssh 192.168.1.6
- Đó không phải là vấn đề trình duyệt, vì tôi cũng không thể telnet gửi 192.168.1.6 cổng 8000 (kết nối bị từ chối) trong khi tôi có thể telnet đến 127.0.0.1 cổng 8000 và tôi cũng có thể telnet đến 192.168.1.6 cổng 22
- Tường lửa được đặt thành tắt (như được báo cáo trong Tùy chọn hệ thống) nhưng phải thêm an toàn, tôi cũng đã đặt quy tắc ipfw để cho phép mọi thứ thông qua
Dưới đây là các quy tắc ipfw:
00100 allow tcp from any to any dst-port 8000
65535 allow ip from any to any
Dưới đây là thêm xác nhận rằng cổng là, thực sự, được lắng nghe bởi máy chủ thử nghiệm của tôi:
netstat -an | grep 8000
tcp4 0 0 127.0.0.1.8000 *.* LISTEN
vì vậy những gì đang xảy ra ở đây? Bằng cách nào đó cổng 22 đang được xử lý khác với cổng 8000, nhưng mọi nơi tôi có thể nghĩ để tìm những khác biệt mà tôi không thể tìm thấy. Tại sao tôi không thể vào cổng 8000 của máy này bằng địa chỉ IP cục bộ của nó?
Cảm ơn bạn rất nhiều! – shanusmagnus
Tôi yêu bạn vì điều này. –
Um ... cảm ơn. Vậy ... điều này có nghĩa là chúng ta sẽ hẹn hò bây giờ? ;) –