Witam, uruchamiam aplikację internetową na porcie 8000. Kiedy uzyskuję do niej dostęp z serwera hosta localhost: 8000 odpowiada ok, 127.0.0.1:8000 również działa, ale 192.168.1.7:8000 nie działa. 192.168.1.7 to adres IP mojego serwera.
Również jeśli spróbuję przejść do innej aplikacji sieci Web działającej na porcie 80, działa to 192.168.1.7
Włączyłem zaporę ufw i ustawiłem domyślne zezwolenie ufw. Używam serwera Ubuntu 12.04
Wszelkie sugestie, dlaczego nie mogę dostać się do mojej aplikacji na porcie 8000 przy użyciu adresu IP: 8000?
Z góry dziękuję!
netstat -tln | grep 8000
może rzucić nieco światła na problem. Jeśli lokalny adres serwera jest127.0.0.1:8000
raczej niż0.0.0.0:8000
, wtedy będzie dostępny tylko poprzez interfejs pętli zwrotnej.Odpowiedzi:
Jak zauważa @JamesHenstridge, zachowanie, które obserwujesz, nie wynika z faktu, że Ubuntu blokuje twoją aplikację pod niektórymi adresami IP, ale z powodu wyraźnego powiązania aplikacji tylko z lokalnym interfejsem pętli zwrotnej (127.xxx). Przynajmniej jeśli nie zainstalowałeś i nie skonfigurowałeś zapory ogniowej, aby blokować ten port.
Musisz zapoznać się z dokumentacją aplikacji, aby sprawdzić, czy istnieje ustawienie umożliwiające nasłuchiwanie na innych (lub na wszystkich) interfejsach.
źródło
W jednym pliku konfiguracyjnym aplikacji należy skonfigurować aplikację tak, aby nasłuchiwała zewnętrznego zewnętrznego adresu IP: twojego portu. Oznacza to, że istnieje plik konfiguracyjny, w którym można znaleźć dyrektywę informującą aplikację, aby nasłuchiwała 127.0.0.1:xxxx lub localhost: xxxx Jest to adres IP, który należy zmienić za pomocą wewnętrznego adresu IP (np .: 192.168.1.40) lub zewnętrznego adresu IP
Czasami adres IP hosta lokalnego powinien zostać zastąpiony przez 0.0.0.0:xxxx, co oznacza, że aplikacja powinna odpowiedzieć na żądanie z dowolnego adresu IP.
Iptables może również pomóc w przekazywaniu pakietów z wewnętrznego adresu IP do zewnętrznego adresu IP.
źródło