SQL Server 用の Linux サーバーを介して Windows 間のトンネルを作成することは可能ですか?

SQL Server 用の Linux サーバーを介して Windows 間のトンネルを作成することは可能ですか?

時々、別の場所にある MS SQL Server のデータを確認する必要があります。
現在のところ、データベースのバックアップを作成し、それを別のサーバーに移動して、.bakファイルをダウンロードし、ローカル マシンで復元する必要があります。しかし、データベースが拡大しているため、これは面倒になり始めています。

Win 7 -> Linux -> Windows Server 2008 with SQL ServerMS SQL Management Studio のトンネルを作成することは可能ですか (また、その方法は?) ?
Linux と Windows Server は、別の場所にある同じネットワーク上にあります。外部から見えるのは Linux サーバーだけです。

残念ながら、どのマシンでも変更を加えることができません。Putty
経由で SSH トンネルを試しましたが、失敗しました。

答え1

win7 マシンで、putty を開き、Linux ssh セッションに対して次の設定を行います: 接続 -> SSH -> トンネル -> 送信元ポート: 1433、宛先: 192.168.0.3:1433、ローカル ラジオ ボタンを選択します。

これで、win7 マシンから localhost:1433 に接続できるはずです。

答え2

はい、可能です。見てみましょうここたとえば、 などです。トンネルの設定にサポートが必要な場合は、さらに情報を提供する必要があります。

答え3

うーん、Linux サーバーの iptables に新しいルールを追加できる場合は、単純なポート転送でこれを達成できます。ただし、データベースがインターネットから見えるようになるため、これは非常に危険であることに注意してください。もちろん、データベース サーバーに接続して非標準ポートを使用する必要がある場合にのみ、ポート転送を有効にできます。これは、Linux マシンの iptables に設定する必要があるルールです。


-A PREROUTING -p tcp -m tcp -s IPOFYOURNETWORK --dport PORTNUMBER1 -j DNAT --to-destination IPOFDATASERVER:PORTNUMER2
-A POSTROUTING -d IPOFDATASERVER -j MASQUERADE

IPOFYOURNETWORKは、接続を試みるネットワークまたはコンピュータのIPです。

PORTNUMBER1 は、データベースを表示させたいポートです (標準以外のポートを設定することもできます)

IPOFDATASERVER:PORTNUMER2 はデータベース サーバーの IP とポートです。

答え4

FINESEC のコメントに従うと、「接続が積極的に拒否されました」というエラーが発生する可能性があります。

Putty のトンネルの下にある「ローカル ポートは他のホストからの接続を受け入れる」および「リモート ポートも同様に受け入れる」チェックボックスをオンにすることで、この問題を解決できました。誰かの役に立つかもしれません。

関連情報