2016-06-26 10 views
1

私は、セキュリティ上の理由から、2台のマシン間にファイアウォールが制限されている2台のマシン間でFTPクライアントを開発します。ファイアウォールは、サーバーとクライアントの両方で既に定義されたポートへの接続のみを受け入れ、ポート範囲を開く可能性はありません。しかし、クライアントとサーバーをバインドして、特定のポートとネゴシエートすることはできません。たとえば、ローカルのポート50000からFTPサーバーのポート21に1つのファイルを常にアップロードしたいとします。どのように私はこの目標を達成することができますか?Apache Commons FTPクライアント:固定ローカルポート番号から接続

+0

「ポート23から1ファイルをアップロードする」*とはどういう意味ですか? 23は発信TCP/IP接続のローカルポートですか?通常、ユーザープログラムに対しては、1024未満の特権ポートを使用することはできません。 –

+0

私はローカルポートからのもので、質問を更新しました。地元の港で高いと考えてください。しかしそれは指定されなければならない。 – user435245

+0

ファイアウォールに送信クライアントポートのルールがある場合は、設定が間違っています。セキュリティ上のメリットはありません。クライアントソフトウェアのさまざまな種類の問題を多かれ少なかれ解決できます。 – EJP

答えて

1

あなたはFTP制御接続のローカルポートを変更する場合:

  • は、特定のローカルポートにバインドされたソケットを作成するためにSocketFactory(特にそのSocketFactory.createSocket() method)を実装します。
  • SocketClientから継承)を使用してSocketFactoryの実装を割り当てます。
+0

私はJava 6を使用しています。このJavaのバージョンをガイドしてください。 – user435245

+0

Java 6には違いはありません。確認しましたか? –

関連する問題