SSHトンネルについて


15

ssh(ポート22)のみを介してrootアクセスできるLinux(Ubuntu)サーバーがあります。そのサーバーには、ポート3306でリッスンするMySQLデータベースがあります。パテ(私のマシン)とトンネリング(Linuxマシン)を使用して、私のマシンのローカルポート(たとえば4000)から、ポート22上のLinuxサーバー、そしてポート3306上のサーバーからそれ自体へ?

回答:


20

私はいくつかのスケッチを描きました

ssh tunnelコマンドが入力されたマシン(または、あなたの場合:トンネリングのあるPuttyが開始されたマシン)は、「ホスト」と呼ばれます

ローカルから始まるsshトンネル


リモートから開始するsshトンネル

前書き

  1. 地元: -L Specifies that the given port on the local (client) host is to be forwarded to the given host and port on the remote side.

    ssh -L sourcePort:forwardToHost:onPort connectToHost意味:にsshで接続しconnectToHost、すべての接続試行を、マシンから到達可能なマシンのローカル sourcePort toポートonPortに転送します。forwardToHostconnectToHost

  2. リモート: -R Specifies that the given port on the remote (server) host is to be forwarded to the given host and port on the local side.

    ssh -R sourcePort:forwardToHost:onPort connectToHost意味:sshでに接続しconnectToHost、すべての接続試行をリモート sourcePortに転送します。これは、ローカルマシンから到達可能なonPortマシン上のポートに転送さforwardToHostれます。

あなたの例

最初の画像はあなたの状況を表しています。呼ばれる青いボックスyour hostは、Ubuntuサーバーに対してPuttyを起動するWindowsマシンremotehostで、私のイメージで呼び出されます。緑のポート(この場合、ポート番号4000)への接続3306は、localhostUbuntuサーバーマシンのピンクのMySQLポート(つまり、Ubuntuサーバー自体)に転送されます。

Puttyでセットアップするには

Puttyを起動し、通常の接続設定(ホスト名またはIPアドレス)を入力します。左側のツリーで、

接続→SSH→トンネル

そして、送信元ポート(画像内の123)と宛先(画像内のlocalhost:456 )で新しいローカルトンネルを作成します。4000localhost:3306

[ 追加 ]をクリックすることを忘れないでください

次に、セッションに戻り、[ 保存 ]をクリックして、次回の設定を保持します。保存された接続を使用してサーバーにログインできます。ログインに成功すると、ホストのポート4000に接続するたびに、Ubuntuサーバーのポート3306に実際に接続します。

パテで順方向トンネルを作成する


非常に良い、イラストをありがとう。「リモート」タイプのトンネルを追加していただき、ありがとうございます。
グス14年

1
この答えは素晴らしいです
マウリシオパスキエフアン14


1
投票数がこれほど少ないのは残念です。
ライアンフィッシャー

1
このスケッチが大好きです。絵は千の言葉に値します。
qartal

16

簡単な答えはイエスですが、トンネルは実際にコンピューターで開始されることに注意してください。それが機能する方法は、サーバーへのSSH接続を作成し(安全です)、SSHにあなたの側のポートをリッスンし、入ってくる接続を転送するように指示します-特定のホストアドレスの特定のポートにサーバ側。トンネルのターゲットは同じサーバーである必要はありません-他の有効なアドレスである場合があります-SSHサーバー自体を実行しているサーバーではない場合-の代わりにSSHサーバーから来たように着信接続を見るクライアントから。

設定するには、Putty構成ダイアログを開き、サーバーへのアクセスに通常使用する接続の設定を選択し、「開く」ではなく「ロード」をクリックします。次に、左側のツリーで、[接続]-> [SSH]-> [トンネル]に移動し、送信元ポート4000と宛先「localhost:3306」で新しい「ローカル」トンネルを作成します(宛先アドレスはサーバーで解決されるため、サーバーの観点から見ると、MySQLポートはローカルホストにあります)。次に「セッション」に戻り、「保存」をクリックして、次回の設定を保持します。これで、保存した接続を使用してサーバーにログインできます。ログインに成功すると、コンピューターのポート4000に接続するたびに、実際にはサーバーのポート3306に接続します。

トンネルに真剣に取り組んでおり、MS-Windowsクライアントを実行している場合は、Puttyを使用して、Puttyコンソールを開かなくてもトンネルを簡単に設定および実行できるPutty Tunnel Managerを検討することをお勧めします。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.