Ich verwende Telnet, um eine Verbindung zu einem Terminalserver herzustellen, der den Datenverkehr an einen RS-232-Port weiterleitet.
Leider ist es bei manchen Geräten nicht möglich, das CTRL+ C-Zeichen (0x03) zu senden. Anstatt das Zeichen zu übertragen, scheint der lokale Client den Tastendruck abzufangen und ich bleibe im „irgendeinem-anderen-Modus“. Ich wollte einfach nur ein Zeichen senden.
Um dies zu debuggen, habe ich mit Folgendem herumgespielt:
^] toggle termdata
Und
^] toggle options
Folgendes passiert, wenn ich auf einem Terminalserver CTRL+ drücke, was nicht funktioniert:C
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
Folgendes passiert auf Terminalservern, die funktionieren:
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
Ich habe es versucht toggle localchars
, aber es hat keinen Unterschied gemacht.
Ich habe es auch versucht , wodurch ich das Zeichen + mode character
senden konnte , aber hier habe ich keine Ausgabe vom Gerät zurückbekommen.CTRLC
Wie kann ich meinen Telnet-Client konfigurieren, um dieses Problem zu lösen?
Antwort1
Haben Sie versucht, lokale Zeichen in Ihrem Telnet-Client zu deaktivieren?
bash$ telnet
telnet> toggle localchars
Won't recognize certain control characters.
telnet> open myhost
~/.telnetrc
Abhängig von Ihrer Telnet-Version können Sie diesen Befehl möglicherweise auch in die Datei einfügen .
Antwort2
Dies könnte hilfreich sein, obwohl stattdessen drei andere Tools verwendet werden telnet
:
echo 03 | xxd -r -p | nc host port
Antwort3
Sie können den 8-Bit-Clean-Modus ausprobieren ... er verhindert, dass Telnet einen Großteil der Daten interpretiert
telnet -8 host port
(Das ist ein Schuss ins Blaue)
Im Großen und Ganzen sind Sie auf dem richtigen Weg, wenn Sie versuchen, Telnet dazu zu bringen, die Vorinterpretation von Tastenanschlägen wie Ctrl+ Cund Ctrl+ Zusw. zu beenden. Der 8-Bit-Modus sollte helfen.
Antwort4
Ich habe damit gekämpft und beim Googeln keine Antwort gefunden. Dies ist ein sehr alter Thread, aber ich werde ihn stehen lassen, falls jemand anders hierher kommt und wie ich nach einer Lösung sucht.
- Wechseln Sie in den Telnet-Befehlsmodus mit Ctrl+]
- Geben Sie den Befehl ein:
mode character
. Dadurch wird Telnet inZeichenmodus, das aus irgendeinem Grund jetzt wie erwartet funktioniert, Crtl+ Cund alles.