Windows 10 に FTP サーバーを設定しています。Windows ファイアウォールをオフにすると、同じ LAN 上の他のマシンから FTP サーバーにアクセスできます。しかし、ファイアウォールをオンにすると、FTP にアクセスできなくなります。これらは、私の問題に特有のファイアウォールの受信ルールです (完全な Windows ファイアウォール ルール リストを切り取って共有しようと思っていましたが、膨大です。調整が必要な他のルールがあれば教えてください。切り取ってここで共有します)。
何が設定不良なのか教えてください。(Windows 10 を使用しています)
答え1
のためにFTP20
TCPポートとの両方を開いていることを確認する必要があります21
。さらに、マシン上で実行されているサーバーサービスがパッシブモードFTP サーバーが使用するように設定されている TCP ポート範囲も開く必要があります。
クイックポートの内訳
TCPポートで安全でないFTPを実行しているようです
20
。21
つまり能動的と受動的)、そしておそらく FTPSTCP ポート990
およびで暗黙的な SSL を使用します989
。FTP プロトコルは、制御/コマンド用にポート/チャネルを使用し、クライアントとサーバーのデータ交換部分に別のポート/チャネルを使用します。
- コマンドチャネル: TCP ポート
21
- データチャネル(アクティブ): TCPポート
20
- データ チャネル (パッシブ):
<FTP Server configured TCP port range>
- コマンドチャネル: TCP ポート
990
- データチャネル(アクティブ): TCPポート
989
コマンドラインファイアウォール(このセクションでは問題が解決されるはずです)
管理者として昇格されたコマンド ラインで以下を実行し、Windows ファイアウォール ルールを作成して、FTP サーバー サービスへの受信トラフィックが、Windows OS で分類されたネットワークの任意の IP アドレスと任意のプロファイル スコープに対して、該当するコマンド ポートとデータ ポートで通信できるようにします。
program="<C:\FTPServer\FTPServer.exe>"
サーバーに適切な値を指定するか、service=<ftpsvc>
代わりにサービス名を指す を使用する必要があります。
netsh advfirewall firewall add rule name="FTP Inbound" dir=in action=allow program="%windir%\system32\svchost.exe" remoteip=any localip=any protocol=TCP localport=20,21,990,989 remoteport=20,21,990,989 profile=any
以下を実行してファイアウォールがFTPトラフィックをブロックしないように、ステートフルFTPフィルタリングを無効にします。そのため、そのトラフィックを許可するためにパッシブ ポート範囲全体を開く必要はありません。
netsh advfirewall set global StatefulFTP disable
Windows ファイアウォール GUI
必ず範囲ルールで定義されているので、LANのIPアドレス範囲通過が許可されるか、そうでなければ許可される任意のIPアドレス最後に、サーバー上のネットワーク アダプターがファイアウォール ルールで許可されているプロファイルで構成されていることを確認します。
ポート
注記: 該当する場合は、パッシブ ポート範囲を追加します。
範囲
プロフィール