Quais serviços aceitam conexão tcp?

2

Eu tenho aprendido sobre programação de socket recentemente, e estou apenas começando a aprender sobre sockets tcp / ip. Meu material de estudo fornece um exemplo de conexão ao serviço localhost daytime por executando telnet 127.0.0.1 13 com o resultado esperado de que uma sessão de telnet deve ser aberta. Eu tenho uma entrada para " daytime 13/tcp " no meu arquivo /etc/services , e eu tenho o serviço xinetd em execução, mas quando eu tento o comando telnet, eu imediatamente recebo "Conexão recusada".

Q : por que não faz telnet para o serviço de dia?

Q : existem outros serviços de host local que aceitariam uma conexão telnet? Tentei fazer telnet para uma seleção aleatória de serviços que tinham tcp entradas em /etc/services , mas todos eles deram o mesmo erro "Conexão recusada".

Meu objetivo de curto prazo é apenas replicar a conexão de telnet bem sucedida do meu material de estudo para um serviço tcp localhost - se não inetd , então qualquer outra coisa; Eu só quero aprender pela prática.

>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
    
por StoneThrow 13.06.2017 / 19:34

1 resposta

2

O /etc/services não indica quais serviços estão sendo executados. Veja objetivo do / etc / services . Você precisará encontrar um serviço em execução (ou iniciar um). Você pode ver o que está escutando em netstat -nlt . Os serviços específicos variam, mas você verá algo como:

$ 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

Então:

  1. daytime service provavelmente não está sendo executado. Se ele não aparecer na lista (e você pode ver na listagem acima, eu não o tenho em execução), então nada está escutando na porta. Pode ser possível iniciar o serviço se estiver instalado.
  2. Existem muitos outros serviços em potencial, dependendo do que está instalado e ativo. Na listagem acima, a porta 25 está escutando, que é o serviço de e-mail. Então eu poderia conectar via telnet à porta 25. Como o telnet não é instalado por padrão, eu uso nc para conectar, mas o princípio é o mesmo:

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

Editar: como mencionado em um comentário, pode ser um problema de firewall. Geralmente, as instalações não bloqueiam 127.0.0.1 , mas é sempre uma possibilidade.

Além disso, dependendo da sua distribuição, daytime pode não ser instalado, o que seria mais um impedimento. Se estiver instalado, você poderá iniciá-lo por meio do início de serviço normal (por exemplo, service start daytime ou equivalente a distro).

Editar: verifica-se que daytime é fornecido exclusivamente por xinetd como um serviço interno. Portanto, embora as informações acima sobre serviços de listagem estejam corretas, para ter daytime , verifique se xinetd está instalado e se o arquivo /etc/xinetd/daytime-stream tem disabled definido como no .

    
por 13.06.2017 / 19:46