O Netcat não funciona como esperado quando executado remotamente em um shell não interativo

1

Eu observei muitos comportamentos inesperados ao tentar iniciar o Netcat no modo de escuta remotamente.
1. Quando o seguinte comando é usado:

ssh [email protected] 'nc -l -k 80 &'

Eu observei que a primeira conexão TCP para esse ouvinte de qualquer cliente falha. Ao tentar estabelecer conexão, o ouvinte emite um pacote FIN e fecha a conexão. Mas ao tentar se conectar mais uma vez, a conexão é estabelecida. Eu notei algum problema com os descritores de arquivos e quando eu usei a opção -d ao iniciar o netcat:

ssh [email protected] 'nc -d -l -k 80 &'

, este problema é resolvido. Mas não consegui entender o que exatamente causa esse problema. Minha pergunta é por que o netcat se comporta de maneira diferente quando executado remotamente usando ssh.

  1. Outro problema que notei é que o modo verbal não funciona.

    raiz [email protected] 'nc -l -v -k 80 &'

Isso nem inicia o netcat quando -v é usado.

    
por rizwan 19.08.2015 / 00:21

1 resposta

1

Em vez de terminar o comando com &, forneça o sinal -f para ssh. A Netcat está morrendo de SIGPIPE quando grava a saída e o sshd desaparece. Alternativamente, se você não quiser enviar a saída de volta através do ssh, você também pode redirecionar a saída do netcat para um arquivo antes de colocá-lo no background ... > /tmp/nc.log & .

    
por 19.08.2015 / 00:25

Tags