web-dev-qa-db-ja.com

telnetコマンドを使用せずにtelnetモードを文字に強制します

ホストBからtelnetを使用してアクセスできるリモートホストCがあります。ホストAから、sshを使用して、ホストCのtelnetサーバーにアクセスするためのポートフォワードを作成します。

HostAで次のコマンドを使用します

ssh  -n -l root <ip HostB> -L3015:<private ip hostC>:23 -N -t -t

このコマンドを使用すると、telnet localhost 3015を使用してhostCのtelnetポートに接続できますが、hostCモデル/デバイスに応じて、telnetは行ごとまたは文字ごとに機能します。 telnetを常に文字モードで動作させたい。

Telnetコマンドを使用してモードを変更できることは知っていますが、telnetプロンプト(telnet>)にエスケープせずにこのモードを強制する必要があります。エクスポートする環境変数の種類や、telnetクライアントを渡すためのフラグ/オプションがあるかどうかはわかりません(manページには何も表示されません)。

もちろん、ホストAまたはホストBからホストCにtelnetを使用して接続する場合、telnetモードは常に文字です(行ごとではありません)。

2
eferro

あなたがやろうとしていることに正確に従わない...

ただし、ホストごとにtelnetコマンドを指定することも、$ HOME /.telnetrcまたは/ etc/telnetrcファイルを使用して、DEFAULTHostを使用してすべてのホストに設定することもできます。 telnetのマニュアルページの「ホストを開く」の部分を参照してください。

1
Kyle Brandt

どのTelnetクライアントまたは少なくとも使用しているOSをお知らせいただければ助かります。多くのシステムでは、23以外のポート(または/ etc/servicesで一致する「telnet」)にtelnetで接続すると、クライアントはいかなる種類のプロトコルネゴシエーションも実行しません。これは、HTTPまたはPOPサーバーを手動でデバッグするのに最適ですが、あなたの場合はそれほど優れていません。

Linux、OS X、およびCygwinのtelnetのマニュアルページによると、ポート番号の前にマイナスを付けます。 telnet localhost -3015非標準ポートでネゴシエーションを強制する必要があります。 Solarisのマニュアルページにはこれについては触れられていません。標準のWindowstelnetクライアントが何を提供するのかわかりません。

0
Gerald Combs