Telnet 送信 Ctrl-C

Telnet 送信 Ctrl-C

ターミナル サーバーに接続するために telnet を使用し、ターミナル サーバーはトラフィックを RS-232 ポートにプロキシします。

CTRL残念ながら、一部のデバイスを使用する場合、 +文字 (0x03)を送信することはできませんC。文字を送信する代わりに、ローカル クライアントがキーストロークをキャッチし、「その他のモード」のままになっているようです。私が望んでいたのは、文字を送信することだけでした。

これをデバッグするために、私は次のことを試してきました:

^] toggle termdata

そして

^] toggle options

動作しないターミナル サーバーでCTRL+を押すと、次のようになります。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

実際に動作するターミナル サーバーでは次のようになります。

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

試してみましたtoggle localcharsが、何も変わりませんでした。

+文字mode characterを送信できる方法も試しましたが、デバイスから出力が返されませんでした。CTRLC

これを解決するには、Telnet クライアントをどのように構成すればよいでしょうか?

答え1

Telnet クライアントで localchars をオフにしてみましたか?

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

~/.telnetrctelnet のバージョンによっては、このコマンドをファイル内に記述することもできます。

答え2

これは役立つかもしれませんが、代わりに他の 3 つのツールを使用しますtelnet

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

答え3

8ビットクリーンモードを試してみるといいかもしれません...これにより、telnetがデータの多くを解釈するのを止めます

telnet -8 host port

(これは当て推量です)

ほとんどの場合、正しい方向に進んでいます。telnet がCtrl+CCtrl+などのキーストロークを事前に解釈しないようにしようとしているのZです。8 ビット モードが役立つはずです。

答え4

私はこれに苦労していましたが、Google で検索しても答えが見つかりませんでした。これは非常に古いスレッドですが、私と同じように解決策を探している人がここに来た場合に備えて、これを残しておきます。

  1. Ctrl+でtelnetコマンドモードに入る]
  2. 次のコマンドを入力します: mode character。これによりtelnetが文字モード、何らかの理由で、今では期待どおりに動作しCrtlますC

関連情報