Cổng nghe trên localhost: 8000 nhưng không phải trên ip: 8000


9

Xin chào, tôi đang chạy một ứng dụng web trên cổng 8000. Khi tôi truy cập nó từ máy chủ lưu trữ localhost: 8000 thì nó phản hồi tốt, 127.0.0.1:8000 cũng hoạt động, nhưng 192.168.1.7:8000 không hoạt động. 192.168.1.7 là ip của máy chủ của tôi.

Ngoài ra nếu tôi cố gắng đi đến một ứng dụng web khác đang chạy trên cổng 80 thì nó hoạt động 192.168.1.7

Tôi đã bật tường lửa ufw và đặt cho phép mặc định ufw. Tôi đang sử dụng máy chủ Ubuntu 12.04

Bất kỳ đề xuất nào về lý do tại sao tôi không thể truy cập ứng dụng của mình trên cổng 8000 bằng địa chỉ IP: 8000?

Cảm ơn trước!


1
Ứng dụng có thể đang lắng nghe địa chỉ localhost (127.0.0.1) chứ không phải tất cả các địa chỉ cục bộ (0.0.0.0). Bạn chưa cung cấp đủ thông tin trên ứng dụng của mình cho mọi người để giúp bạn khắc phục điều này.
James Henstridge

Ứng dụng của tôi chạy trên cổng 8000 chỉ là một trang web. Có lẽ bản sao / dán netstat này sẽ tiết lộ thêm về mạng của tôi:
Marionette

3
Chà, chạy netstat -tln | grep 8000có thể làm sáng tỏ vấn đề. Nếu địa chỉ cục bộ của máy chủ là 127.0.0.1:8000hơn 0.0.0.0:8000, thì nó sẽ chỉ có thể truy cập thông qua giao diện loopback.
James Henstridge

kiểm tra iptables của bạn

Câu trả lời:


5

Như @JamesHenstridge chỉ ra, hành vi bạn quan sát không phải do Ubuntu chặn ứng dụng của bạn trên một số IP, mà do ứng dụng của bạn chỉ ràng buộc rõ ràng với giao diện loopback cục bộ (127.xxx). Ít nhất là nếu bạn không cài đặt và thiết lập tường lửa để chặn cổng đó.

Bạn cần tham khảo tài liệu của ứng dụng của mình để xem liệu có cài đặt nào để ứng dụng nghe trên các giao diện khác (hoặc trên tất cả) không.


Ngoài ra, bạn có quen thuộc với chuyển tiếp cổng trên bộ định tuyến của bạn? Nếu bạn định kết nối với nó từ internet trên cổng 8000, bạn cần chuyển tiếp cổng 8000 đến ip của máy đó.
wlraider70

0

Trong một tệp cấu hình của ứng dụng của bạn, bạn nên thiết lập ứng dụng của mình để nghe bên ngoàiIP: yourport. Điều đó có nghĩa là có một tệp cấu hình nơi bạn có thể tìm thấy một lệnh cho ứng dụng nghe 127.0.0.1:xxxx hoặc localhost: xxxx Đây là IP để thay đổi với IP bên trong (ví dụ: 192.168.1.40) hoặc IP bên ngoài

Đôi khi, IP localhost nên được thay thế bằng 0.0.0.0:xxxx, điều đó có nghĩa là ứng dụng sẽ trả lời yêu cầu từ bất kỳ IP nào.

Iptables cũng có thể giúp chuyển tiếp các gói từ IP bên trong sang IP bên ngoài.

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.