ポート転送 – リモートデスクトップ接続を介したTCP/IP接続のトンネリング

port-forwarding remote-desktop

プライベートネットワーク上にリモートデスクトップ接続で接続できるリモートWindowsサーバーがあります。私のコンピュータからそのサーバのネットワーク上の他のコンピュータへのTCP/IP接続ができるようにしたいのですが、どうすればよいでしょうか?

リモートデスクトップ接続を使用すると、接続を介してプリンタやドライブなどのローカルリソースを共有することができます。RDC経由でTCP/IP接続を「トンネル」する方法はありますか?

SSHで提供されているポートフォワードと同じようなものが欲しいです。RDC経由でこれを行う方法は見当たりませんが、機能があることを期待していて、私が知らないだけです

  39  Kristopher Johnson  2010-04-13


ベストアンサー

RDP を使ってトンネルすることはできないと思いますが、もしサーバに rdp してからクライアントに戻って ssh トンネルを開始した場合は、マシンは ssh で接続されていることになります。リモートポートとローカルポートの両方を転送することができるので、すべてを逆にすることができます

EDIT

クライアント PC に ssh サーバをインストールし、ポート 443 で ssh 接続を受け入れるように設定した場合、サーバから ssh サーバ (クライアント) に接続することができます (ssh クライアント接続を使用)

8  Charles Gargent  2010-04-13


クライアント側(Windowsネイティブクライアントではなく)でrdesktopを実行している場合、rdp2tcpを使用することができます。 これにより、RDP接続によるTCPポートの転送を管理することができます

20  Nicolas Collignon  2011-01-16


管理者アクセスやインターフェイス間のネットワークルーティングを許可していない Windows Server で使用するための rdp2tcp よりも優れたものは見つかりませんでした。これを動作させるには、OOPパッチをrdesktop上で実行する必要があります(最新版のrdesktopに対応するものを探すには、最後のページを参照してください)。私は、トンネルのWindowsエンドをコンパイルするためにMinGWコンパイラを使用しました

ドキュメントも充実しており、簡潔にまとめられています

マイナーなポイントのように見えるかもしれませんが、’addin’ 名に ‘-‘ を含む名前を使用すると、rdesktop はコマンドラインを正しく解析するのに失敗します。これは、適切なエスケープを必要とするバシズムだったのかもしれませんが、よくわかりません

私が理解している限りでは、これは Windows 側の管理者権限がないと不可能なので、TCP プロトコルのデータ単位を「見る」真の TCP トンネルではないことに注意してください。どちらかというと、あらかじめ設定されたエンドポイントを持つソックスプロキシのようなものです (結果的にはあまり重要ではありませんが)。また、実際のソックスプロキシも用意されています

対話的なSSHセッションを簡単に管理しましたが、SSHファイル転送には持ちこたえませんでした(rdesktopコンソールで’virtual channel disconnected’と表示されました(rdp2tcpはその子プロセスとしてstdout/stdin dup2’ed/pipedでrdesktopによって実行されていますが、stderrには変化がありません))。ソースにはRDP2TCP_PING_TIMEOUTという定数があり、トンネルを保持するためのキープアライブタイムアウトのように見えました。中間ネットワークで何らかのスロットリングが行われていると仮定して、これを5秒から900秒に増やしてみると、うまくいったようで、100MBまでの転送では持ちこたえた(その特定のネットワークでは約15分かかった)

しかし、rdp2tcpはSIGPIPEを受信していることがわかりましたが、それはrdesktopのパイプが切れたために受信したと主張しています

このような場合、rdesktopを再起動する必要があります。rsyncを使用してファイル転送を再開することができますし、リカバリープロセス全体を自動化できるかもしれません

これらはすべてLinuxをクライアントとして想定しています。Cygwin/Xで発生した無関係なトラブルのため、Windowsではパッチを適用したrdesktopを試していません。動作するはずです

また、私の経験ではSSHを使っていましたが、他の手段による巨大なファイル転送も同じ問題にぶつかる可能性が高いです

3  wolf  2015-11-19


RDPにローカルポートフォワーディングを使えばいいと思います

A -> B -> C

AはWindowsまたはMac、BはLinux、CはWindowsです。A から C に RDP したい場合で、C が A から直接到達できない場合は、A を使用します

ssh username@B -L 7777:C:3389

RDクライアントを開き、127.0.0.0.1:7777をポイントしてCのユーザ名とパスワードを使用します

0  Srinivas Nukala  2017-10-12


タイトルとURLをコピーしました