私の状況: gdbserver と eclipse を使用して C++ アプリケーションをリモートでデバッグしたいと考えています。Eclipse はローカル ワークステーション (192.168.0.0 ネットワーク内) で実行されており、gdbserver は 10.0.0.0 ネットワーク内のクラスター マシンで実行されています。両方のネットワークにあるマシンを介してクラスター マシンに SSH でアクセスできます。
Eclipse が gdbserver にアクセスできるようにトンネルを設定するにはどうすればよいでしょうか? 管理者権限/root/sudo アクセス権がありません。
すべてのマシンは OpenSSH を搭載した Linux/Unix です。
答え1
すでにリモート プライベート ネットワーク (10.0.0.0) 上のシステムに SSH で接続できると思います。ローカル システムで openssh を実行している場合は、次を追加します$HOME/.ssh/config
。
Host gatewaymachine
LocalForward 12080 remote_ip:portnum
ここで、「remote_ip」はgdbserverが実行されるリモートクラスタマシンシステムのIPアドレスで、portnumはそれがリッスンするポートです。ゲートウェイマシンにSSHで接続し、アプリケーションをローカルホストのポート12080に接続します。たとえば、これがWebアプリケーションの場合
http://localhost:12080
Web アプリケーションを使用していない場合は、接続情報を設定して、「localhost」ポート「12080」(または任意のポート、以下を参照) にアクセスすることを反映する必要があります。
ssh 設定を編集する代わりに、ssh コマンド パラメータを使用することもできます。
ssh -L 12080:remote_ip:portnum gatewaymachine
(12080 を 1024 より大きい任意のポートに変更します。1024 未満の場合は、ポートにバインドするためにルート アクセスが必要になります)
答え2
基本的にはjtimbermanが言った通りです:)。オートトンネルを長時間維持するのが難しい場合。