어떤 서비스가 TCP 연결을 허용합니까?

어떤 서비스가 TCP 연결을 허용합니까?

저는 최근에 소켓 프로그래밍을 배우고 있으며 이제 막 tcp/ip 소켓을 배우기 시작했습니다.나의 학습자료daytime를 실행하여 localhost 서비스에 연결하는 예를 보면 telnet 127.0.0.1 13예상되는 결과는 텔넷 세션이 열려야 한다는 것입니다. daytime 13/tcp내 파일에 " " 항목이 있고 /etc/services서비스 xinetd가 실행 중이지만 telnet 명령을 시도하면 즉시 "연결이 거부되었습니다"라는 메시지가 나타납니다.

묻다: 주간서비스 업무에 원격으로 로그인이 안되는 이유는 무엇인가요?

묻다: 텔넷 연결을 허용할 수 있는 다른 로컬 호스트 서비스가 있습니까? tcp항목이 있는 임의의 서비스 선택에 텔넷 연결을 시도했지만 /etc/services모두 동일한 "연결 거부" 오류가 발생했습니다.

나의 단기 목표는 localhost tcp 서비스에 대한 성공적인 텔넷 연결을 통해 학습 자료를 복제하는 것입니다. 그렇지 않은 경우 inetd에는 수행을 통해 배우고 싶은 다른 작업을 수행합니다.

>telnet 127.0.0.1 13
Trying 127.0.0.1...
telnet: connect to address 127.0.0.1: Connection refused
>telnet 127.0.0.1 49000
Trying 127.0.0.1...
telnet: connect to address 127.0.0.1: Connection refused
>telnet 127.0.0.1 9009
Trying 127.0.0.1...
telnet: connect to address 127.0.0.1: Connection refused
>uname -a
Linux linuxbox 3.11.10-301.fc20.x86_64 #1 SMP Thu Dec 5 14:01:17 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

답변1

/etc/services실제로 실행 중인 서비스를 나타내지 는 않습니다 . 바라보다/etc/services의 목적. 실행 중인 서비스를 찾거나 시작해야 합니다. 당신은 그것을 보면 당신이 무엇을 듣고 있는지 알 수 있습니다 netstat -nlt. 구체적인 서비스는 다양하지만 다음과 같이 표시됩니다.

$ netstat -nlt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN
tcp        0      0 192.168.122.1:53        0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN
tcp6       0      0 :::3306                 :::*                    LISTEN
tcp6       0      0 :::111                  :::*                    LISTEN
tcp6       0      0 :::22                   :::*                    LISTEN
tcp6       0      0 ::1:631                 :::*                    LISTEN
tcp6       0      0 ::1:25                  :::*                    LISTEN

그래서:

  1. daytime서비스가 실행되고 있지 않을 수 있습니다. 목록에 나타나지 않으면(위 목록에서 내가 실행하고 있지 않음을 볼 수 있음) 해당 포트에서 수신 대기 중인 것이 아무것도 없는 것입니다. 서비스가 설치되어 있으면 서비스를 시작할 수 있습니다.
  2. 무엇이 설치되고 활성화되어 있는지에 따라 다른 많은 잠재적인 서비스가 있습니다. 위 목록에서 포트는 25메일 서비스를 수신하고 있습니다. 그래서 telnet포트 25를 통해 연결할 수 있습니다. Telnet은 기본적으로 설치되어 있지 않기 때문에 connect를 사용 nc하지만 원리는 동일합니다.

    $ nc 127.0.0.1 25 220 centos7.feedthecoder.com ESMTP Postfix HELO me.theworld.com ...

편집: 댓글에서 언급했듯이 이는 확실히 방화벽 문제일 수 있습니다. 일반적으로 설치로 인해 차단되지는 않지만 127.0.0.1항상 가능합니다.

또한 배포판에 따라 daytime설치가 불가능할 수 있으며 이는 추가 장애물이 될 수 있습니다. 설치된 경우 일반 서비스 시작(예: 또는 동등한 배포판)을 통해 시작할 수 있어야 합니다 .service start daytime

편집: 이는 daytime내부 서비스로만 사용할 수 있는 것으로 나타났습니다. xinetd따라서 서비스 나열에 대한 위의 정보가 올바른 동안 해당 서비스가 설치되어 있고 파일이 설정 되어 있는지 daytime확인 하세요 .xinetd/etc/xinetd/daytime-streamdisabledno

관련 정보