web-dev-qa-db-ja.com

TelnetはCtrl-Cを送信します

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

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

これをデバッグするために私は遊んでいます:

^] 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これにより、 CTRL+C 文字ですが、ここではデバイスからの出力はありませんでした。

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

14
Allan

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

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

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

5
jlp

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

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

3
bambam

あなたは8ビットのクリーンモードを試すかもしれません...それはtelnetがデータの多くを解釈することを止めます

telnet -8 Host port

(これは暗闇の中でのショットです)

ほとんどの場合、正しい方向に進んでおり、TelnetがCTRL-CやCTRL-Zなどのキーストロークの事前解釈を停止するようにしています。 8ビットモードが役立つはずです。

3
lornix

^Cはブレーク文字です。 telnetエスケープで送信できます(デフォルトは^]) その後 send brk

1
dadinck

使用する

nc Host port

あなたが望むのは単にサーバーポートに接続し、Ctrl C必要な場合。 ncnetcatパッケージでインストールできます。

追伸アイデアは@ bambam-sの回答からとったものですが、使用されたxxdコマンドの意味がわからないので、私のユースケースではそれがなくても問題なく機能します。

0
VasyaNovikov

「トグルオプション」と「トグル用語データ」を使用して、サイトの状況が元のポスターの状況と一致していることを確認しました。ドキュメントに記載されているように、Telnetコマンドの「send ip」を使用して、^ C(control-C)文字を送信できました。私の場合、3つのコマンドすべてを〜/ .telnetrcに入れました

0
robm