Vsftpを実行しているOpenSuSEボックスがあります。ホスティング会社のファイアウォールの背後にあります。彼らはファイアウォールを制御します、私はそれにアクセスできません。 VPNから10.x.x.x経由で無制限にアクセスでき、パブリックIPアドレス41.x.x.xのポート20、21、40000〜40500が転送されます。
VPNからは、すべてが正常に機能します。しかし、外部からは問題があります。クライアントがパッシブモードに切り替わると、サーバーは次のように応答します。
227パッシブモードに入る(10、x、x、x , 157,213)
Filezillaで、次のメッセージが表示されます。
227パッシブモードに入る(41、x、x、x、228,63)
ポートをそれぞれ40248と58203に調整しました。 vsftpd.confファイルには、次の行があります。
pasv_max_port = 40500
pasv_min_port = 40000
#pasv_address = 10.x.x.x
これは私が転送しているポートに対応しています。
パッシブモードに切り替えた後、クライアントはサーバーからそれ以上の応答を受け取りません。サーバーに転送されていないポートで、アクセスできないIPアドレスに接続しようとしていて、サーバーがそのポートで接続をリッスンしていないことが原因であると思われます。
変えてみました
pasv_address = 41.x.x.x
設定ファイルにありますが、VPNからの接続を切断するだけです。 41.x.x.xで接続が開始されるとすぐに、ポートが一致しなくなります。
これを機能させるには、構成で何を変更する必要がありますか?
サーバーログとクライアントログの間でもIPが異なることに基づいて、ファイアウォールが接続を傍受し、NATそれまたは何かを試みていると思われます(ただし、ファイアウォールがファイアウォールが制御接続を混乱させないように、SSL/TLSで接続してみてください。