ターミナル サーバーに接続するために 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
~/.telnetrc
telnet のバージョンによっては、このコマンドをファイル内に記述することもできます。
答え2
これは役立つかもしれませんが、代わりに他の 3 つのツールを使用しますtelnet
。
echo 03 | xxd -r -p | nc host port
答え3
8ビットクリーンモードを試してみるといいかもしれません...これにより、telnetがデータの多くを解釈するのを止めます
telnet -8 host port
(これは当て推量です)
ほとんどの場合、正しい方向に進んでいます。telnet がCtrl+CやCtrl+などのキーストロークを事前に解釈しないようにしようとしているのZです。8 ビット モードが役立つはずです。
答え4
私はこれに苦労していましたが、Google で検索しても答えが見つかりませんでした。これは非常に古いスレッドですが、私と同じように解決策を探している人がここに来た場合に備えて、これを残しておきます。
- Ctrl+でtelnetコマンドモードに入る]
- 次のコマンドを入力します:
mode character
。これによりtelnetが文字モード、何らかの理由で、今では期待どおりに動作しCrtlますC。