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クライアントを構成してこれを解決するにはどうすればよいですか?
Telnetクライアントでlocalcharsをオフにしてみましたか?
bash$ telnet
telnet> toggle localchars
Won't recognize certain control characters.
telnet> open myhost
Telnetのバージョンによっては、このコマンドを~/.telnetrc
ファイルに入れることもできます。
これは役立つかもしれませんが、telnet
の代わりに他の3つのツールを使用します。
echo 03 | xxd -r -p | nc Host port
あなたは8ビットのクリーンモードを試すかもしれません...それはtelnetがデータの多くを解釈することを止めます
telnet -8 Host port
(これは暗闇の中でのショットです)
ほとんどの場合、正しい方向に進んでおり、TelnetがCTRL-CやCTRL-Zなどのキーストロークの事前解釈を停止するようにしています。 8ビットモードが役立つはずです。
^C
はブレーク文字です。 telnetエスケープで送信できます(デフォルトは^]
) その後 send brk
。
使用する
nc Host port
あなたが望むのは単にサーバーポートに接続し、Ctrl C
必要な場合。 nc
はnetcat
パッケージでインストールできます。
追伸アイデアは@ bambam-sの回答からとったものですが、使用されたxxd
コマンドの意味がわからないので、私のユースケースではそれがなくても問題なく機能します。
「トグルオプション」と「トグル用語データ」を使用して、サイトの状況が元のポスターの状況と一致していることを確認しました。ドキュメントに記載されているように、Telnetコマンドの「send ip」を使用して、^ C(control-C)文字を送信できました。私の場合、3つのコマンドすべてを〜/ .telnetrcに入れました