Telnet envia Ctrl-C

14

Eu uso o telnet para conectar-me a um servidor de terminal, que faz o proxy do tráfego para uma porta RS-232.

Infelizmente, ao usar alguns dos dispositivos, não é possível enviar o caractere CTRL + C (0x03). Em vez de transmitir o caractere, parece que o cliente local detectou o pressionamento de tecla e eu fiquei em "algum outro modo". O que eu queria era enviar um personagem.

Para depurar isso, estou brincando com:

^] toggle termdata

e

^] toggle options

Aqui está o que acontece quando pressiono CTRL + C em um servidor de terminal que não funciona:

telnet 10.10.129.101 2012
Trying 10.10.129.101...
Connected to termserv-val3 (10.10.129.101).
Escape character is '^]'.
^]
telnet> toggle options
Will show option processing.
^]
telnet> toggle termdata
Will print hexadecimal representation of terminal traffic.
SENT IAC IP
SENT DO TIMING MARK

Aqui está o que acontece nos servidores de terminal que funcionam:

telnet termserv-val2 2012
Trying 10.10.128.93...
Connected to termserv-val2 (10.10.128.93).
Escape character is '^]'.

telnet> toggle options
Will show option processing.

telnet> toggle termdata
Will print hexadecimal representation of terminal traffic.
< 0x0   03
^C

Eu tentei toggle localchars , mas isso não fez diferença alguma.

Eu também tentei mode character , o que me permitiu enviar o caractere CTRL + C , mas aqui eu não recebi nenhuma saída do dispositivo.

Como posso configurar meu cliente de telnet para resolver isso?

    
por Allan 05.07.2012 / 17:31

5 respostas

5

Você já tentou desativar os localchars no seu cliente de telnet?

bash$ telnet
telnet> toggle localchars
Won't recognize certain control characters.
telnet> open myhost

Você também pode colocar este comando no arquivo ~/.telnetrc , dependendo da sua versão do telnet.

    
por 12.07.2012 / 22:39
2

Você pode tentar o modo de limpeza de 8 bits ... ele impede que o telnet interprete muito dos dados

telnet -8 host port

(Este é um tiro no escuro)

Na maior parte, você está no caminho certo, tentando fazer com que o telnet pare de pré-interpretar as teclas pressionadas ... como CTRL-C e CTRL-Z e outras. Modo de 8 bits deve ajudar.

    
por 05.07.2012 / 20:36
2

Isso pode ajudar, embora use 3 outras ferramentas em vez de telnet :

echo 03 | xxd -r -p | nc host port

    
por 28.09.2015 / 06:50
1

^C é um caractere de quebra. Você pode enviá-lo com um escape de telnet (o padrão é ^] ) e, em seguida, send brk .

    
por 13.07.2012 / 22:04
0

Eu usei 'toggle options' e 'toggle termdata' para verificar se a situação no meu site é igual à do post original. Consegui enviar o caractere ^ C (control-C) especificamente com o comando telnet 'send ip', conforme descrito na documentação. No meu caso eu coloquei todos os 3 comandos no meu ~ / .telnetrc

    
por 06.01.2017 / 10:13