telnet - "외부 호스트에 의해 연결이 종료되었습니다"

telnet - "외부 호스트에 의해 연결이 종료되었습니다"

Apache Spark 클러스터를 설정하고 싶지만 작업자 컴퓨터에서 포트 7077(Spark Master가 실행 중인 곳)의 마스터 컴퓨터로 통신할 수 없습니다.

그래서 작업자 컴퓨터에서 호스트 컴퓨터로 이동해 보았는데 telnet다음과 같습니다.

root@worker:~# telnet spark 7077
Trying 10.xx.xx.xx...
Connected to spark.
Escape character is '^]'.
Connection closed by foreign host.

명령은 "외부 호스트에 의해 연결이 닫혔습니다"와 함께 즉시 종료됩니다. 시간 초과가 발생하지 않습니다.

호스트가 포트에서 수신 대기 중이고 telnet출력에 "Connected to Spark"가 표시되는지 확인했습니다. - 이는 연결이 성공했음을 의미합니다.

이 행동의 이유는 무엇일까요? 연결이 끊어지는 것이 업무용 컴퓨터에서 주 컴퓨터로 통신할 수 없는 이유가 아닐까 궁금합니다.

답변1

포트 7077에서 연결을 수신하는 프로세스는 연결을 수락한 다음 즉시 연결을 닫습니다. 문제는 시스템 자체가 아니라 애플리케이션의 코드나 구성에 있습니다.

답변2

방금 일부 가상 서버, 특히 NAT를 실행하는 서버의 이상한 동작에 대해 배웠습니다. 가상 서버의 노출된 포트에 연결하면 서버는 대상으로 연결을 전달하려고 시도합니다. 따라서 NAT는 메시지를 보내지 않고 연결을 종료합니다. 무슨 일이 일어나고 있는지 알아내려고 머리카락을 뽑습니다. 이는 이전 답변과 매우 유사합니다. 소스는 가상 호스트 자체와의 상호 작용입니다.

가장 가능성이 높은 원인은 누군가가 포트를 사용하고 있고 한 번에 하나의 연결만 허용하고 다른 연결은 거부하는 애플리케이션을 실행하고 있다는 것입니다.

답변3

애플리케이션에는 localhost에서만 연결할 수 있다는 정책 제한이 있습니다. Elasticsearch와 동일한 "문제"입니다. 애플리케이션 구성을 확인하고 터널을 생성할 수도 있습니다. 하다

ssh -N -L 7077:127.0.0.1:7077 userxy@spark

그런 다음 컴퓨터에서 다음을 수행하십시오.

telnet 127.0.0.1 7077

답변4

Python 코드를 통해 호스트에서 이메일을 보내는 데 실패한 이유를 디버깅하려고 할 때 이 오류가 발생했습니다. 이는 특정 호스트의 메일 서버에 있는 메일 대기열이 꽉 찼기 때문인 것으로 나타났습니다.

관련 정보