localhost : 8000에서 포트 수신 대기하지만 ip : 8000에서는 수신하지


9

안녕하세요. 포트 8000에서 웹 응용 프로그램을 실행하고 있습니다. 호스트 서버 localhost : 8000에서 웹 응용 프로그램에 액세스하면 정상적으로 응답하지만 127.0.0.1:8000도 작동하지만 192.168.1.7:8000은 작동하지 않습니다. 192.168.1.7은 내 서버의 IP입니다.

또한 포트 80에서 실행되는 다른 웹 응용 프로그램으로 이동하려고하면 192.168.1.7로 작동합니다.

ufw 방화벽을 활성화하고 ufw 기본 허용을 설정했습니다. 우분투 서버 12.04를 사용하고 있습니다

ip-address : 8000을 사용하여 포트 8000에서 내 앱에 액세스 할 수없는 이유에 대한 제안이 있습니까?

미리 감사드립니다!


1
응용 프로그램이 모든 로컬 주소 (0.0.0.0)가 아닌 로컬 호스트 주소 (127.0.0.1)를 수신 중일 수 있습니다. 사람들이이 문제를 해결하는 데 도움이되는 충분한 정보를 앱에 제공하지 않았습니다.
James Henstridge

포트 8000에서 실행되는 내 앱은 웹 사이트입니다. 아마도이 netstat 복사 / 붙여 넣기는 내 네트워크에 대한 자세한 내용을 알려줄 것입니다.
Marionette

3
글쎄, 달리기 netstat -tln | grep 8000는 문제에 약간의 빛을 비출 수 있습니다. 서버의 로컬 주소가 127.0.0.1:8000아닌 경우 0.0.0.0:8000루프백 인터페이스를 통해서만 연결할 수 있습니다.
James Henstridge

iptables를 확인하십시오

답변:


5

@JamesHenstridge가 지적한 것처럼 관찰중인 동작은 우분투가 일부 IP에서 응용 프로그램을 차단하기 때문이 아니라 응용 프로그램이 명시 적으로 로컬 루프백 인터페이스 (127.xxx)에만 바인딩하기 때문입니다. 최소한 해당 포트를 구체적으로 차단하기 위해 방화벽을 설치 및 설정하지 않은 경우.

다른 (또는 모든) 인터페이스에서 수신 대기하도록 설정이 있는지 확인하려면 응용 프로그램 설명서를 참조해야합니다.


라우터의 포트 포워딩에 대해서도 잘 알고 있습니까? 포트 8000의 인터넷에서 연결하려면 포트 8000을 해당 시스템의 IP로 전달해야합니다.
wlraider70

0

응용 프로그램의 한 구성 파일에서 외부 externalIP : yourport를 수신하도록 응용 프로그램을 설정해야합니다. 애플리케이션이 127.0.0.1:xxxx 또는 localhost : xxxx를 청취하도록 지시하는 지시문을 찾을 수있는 구성 파일이 있음을 의미합니다. 이것은 내부 IP (예 : 192.168.1.40) 또는 외부 IP로 변경할 IP입니다.

때로는 로컬 호스트 IP를 0.0.0.0:xxxx로 바꿔야합니다. 즉, 응용 프로그램이 모든 IP의 요청에 응답해야합니다.

IPtable은 내부 IP에서 외부 IP로 패킷을 전달하는 데 도움이 될 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.