職場のFTPサーバーにアクセスする必要がありますが、サーバーはローカルIPのみを受け入れます。自宅のマシンからアクセスできません。 PuTTYを介してUnix作業マシンにSSH接続し、そこからFTPサーバーへのコンソールFTP接続を正常に開くことができました。
私はこれを乗り越えることができましたが、それは私にとって非常に面倒なので、私はしたくありません。サーバー上でFTPのニーズを満たすために、選択したFTPクライアントであるFileZillaを使用できるように、PuTTYを介して作業マシンを介してFTP接続をトンネリングすることをお勧めします。もちろん、これはポート21を介して行われます。
PuTTYがsshを介してポート転送できることは知っていますが、使用方法がわかりません。
ホーム->仕事->サーバー。
SOCKSプロキシを使用します。
送信元ポートは(ローカルで)SOCKSプロキシになりました。それをSOCKSプロキシとして使用するようにFileZillaを構成します(以下を参照)。それを介して、ssh先のホスト(作業マシン)への接続を開き、そこから、指定した任意のIPアドレスに接続します。 SOCKSをサポートし、FTPを含むすべてのもので機能します。
残りのPuTTY構成は同じままです-ポートを構成し(図のように)、SSH経由でそのPuTTYセッションを作業マシンに接続します。
FileZillaオプションは次のようになります。
FTP接続のターゲットを設定するときは、ホスト名ではなくIPアドレスを使用してください。これは、DNS解決が引き続きローカルで行われる可能性があり、それを望まないためです。
全体が安全で目に見えません-それはネットワーク上の他のものへの基本的なSSH接続のように見えます。
注意:コマンドラインからこれを実行する場合は、PuTTYのplink.exe
を使用して次の操作を実行できます。
plink -ssh -D 9090 [email protected]
puTTYプロファイルを作成したり、GUIを使用したりしなくても、同じことを実現できます。
内部サーバー(NATの背後)、FileZilla、またはNautilus File Managerのファイルシステムを参照する方法は次のとおりです-[〜#〜] sftp [〜#〜](TCPポート22)でのSSHセッション、スルーゲートウェイサーバー(NAT外):
Sudo ssh -L 9090:{内部サーバーのホスト名またはIP}:22 root @ {ゲートウェイサーバーのホスト名またはIP}
次に、新しい接続を作成します。
FileZillaの場合:
またはノーチラスで:
sftp://127.0.0.1:9090/
の場合、内部サーバーの資格情報を入力するように求められます。
これで、内部サーバーのファイルシステムを参照できるようになります。
注:ご覧のとおり、PuTTYまたはFileZillaでSOCKSプロキシを設定する必要はありません:)
まず、SCPを使用する方がはるかに簡単/間違いなく優れています。 SSHを持っているので、SCPアクセスも持っているのが一般的です。しかし、私はあなたのネットワークを知らないので、質問に...
まず、クライアントがアクティブモードでFTPを使用するように設定されていることを確認します。パッシブモードの使用を提案したかったのですが、使用するポートを制御できません。
次に、FTPクライアントがアクティブモードで使用するポートの数を少数に制限します。 10未満が良いでしょう。そして、これが理由です。
3番目に、これらすべてのポートのリモートポートフォワードを作成します。
それはそれを機能させるはずです