web-dev-qa-db-ja.com

サーバーがローカルIPのみを受け入れる自宅からのFTP接続のトンネリング

職場のFTPサーバーにアクセスする必要がありますが、サーバーはローカルIPのみを受け入れます。自宅のマシンからアクセスできません。 PuTTYを介してUnix作業マシンにSSH接続し、そこからFTPサーバーへのコンソールFTP接続を正常に開くことができました。

私はこれを乗り越えることができましたが、それは私にとって非常に面倒なので、私はしたくありません。サーバー上でFTPのニーズを満たすために、選択したFTPクライアントであるFileZillaを使用できるように、PuTTYを介して作業マシンを介してFTP接続をトンネリングすることをお勧めします。もちろん、これはポート21を介して行われます。

PuTTYがsshを介してポート転送できることは知っていますが、使用方法がわかりません。

ホーム->仕事->サーバー。

11
Ben Jacobson

SOCKSプロキシを使用します。

PuTTY window

送信元ポートは(ローカルで)SOCKSプロキシになりました。それをSOCKSプロキシとして使用するようにFileZillaを構成します(以下を参照)。それを介して、ssh先のホスト(作業マシン)への接続を開き、そこから、指定した任意のIPアドレスに接続します。 SOCKSをサポートし、FTPを含むすべてのもので機能します。

残りのPuTTY構成は同じままです-ポートを構成し(図のように)、SSH経由でそのPuTTYセッションを作業マシンに接続します。

FileZillaオプションは次のようになります。

enter image description here

FTP接続のターゲットを設定するときは、ホスト名ではなくIPアドレスを使用してください。これは、DNS解決が引き続きローカルで行われる可能性があり、それを望まないためです。

全体が安全で目に見えません-それはネットワーク上の他のものへの基本的なSSH接続のように見えます。

注意:コマンドラインからこれを実行する場合は、PuTTYのplink.exeを使用して次の操作を実行できます。

plink -ssh -D 9090 [email protected]

puTTYプロファイルを作成したり、GUIを使用したりしなくても、同じことを実現できます。

13
EightBitTony

内部サーバー(NATの背後)、FileZilla、またはNautilus File Managerのファイルシステムを参照する方法は次のとおりです-[〜#〜] sftp [〜#〜](TCPポート22)でのSSHセッション、スルーゲートウェイサーバー(NAT外):

  1. ターミナルでの最初の実行:

Sudo ssh -L 9090:{内部サーバーのホスト名またはIP}:22 root @ {ゲートウェイサーバーのホスト名またはIP}

  1. 次に、新しい接続を作成します。

    FileZillaの場合:

    • ホスト:sftp://127.0.0.1
    • ユーザー名/パスワード:内部サーバーの資格情報。
    • ポート:9090(ターミナルコマンドと同じポート)。

またはノーチラスで:

sftp://127.0.0.1:9090/の場合、内部サーバーの資格情報を入力するように求められます。

これで、内部サーバーのファイルシステムを参照できるようになります。


enter image description here

注:ご覧のとおり、PuTTYまたはFileZillaでSOCKSプロキシを設定する必要はありません:)

2
Noam Manos

まず、SCPを使用する方がはるかに簡単/間違いなく優れています。 SSHを持っているので、SCPアクセスも持っているのが一般的です。しかし、私はあなたのネットワークを知らないので、質問に...

まず、クライアントがアクティブモードでFTPを使用するように設定されていることを確認します。パッシブモードの使用を提案したかったのですが、使用するポートを制御できません。

次に、FTPクライアントがアクティブモードで使用するポートの数を少数に制限します。 10未満が良いでしょう。そして、これが理由です。

3番目に、これらすべてのポートのリモートポートフォワードを作成します。

それはそれを機能させるはずです

2
Philip Couling