Windows ファイアウォールがオンの場合、同じ LAN 内の他のマシンから FTP サーバーにアクセスできない

Windows ファイアウォールがオンの場合、同じ LAN 内の他のマシンから FTP サーバーにアクセスできない

Windows 10 に FTP サーバーを設定しています。Windows ファイアウォールをオフにすると、同じ LAN 上の他のマシンから FTP サーバーにアクセスできます。しかし、ファイアウォールをオンにすると、FTP にアクセスできなくなります。これらは、私の問題に特有のファイアウォールの受信ルールです (完全な Windows ファイアウォール ルール リストを切り取って共有しようと思っていましたが、膨大です。調整が必要な他のルールがあれば教えてください。切り取ってここで共有します)。

インバウンドルール ここに画像の説明を入力してください ここに画像の説明を入力してください

アウトバウンドルール ここに画像の説明を入力してください ここに画像の説明を入力してください

何が設定不良なのか教えてください。(Windows 10 を使用しています)

答え1

のためにFTP20TCPポートとの両方を開いていることを確認する必要があります21。さらに、マシン上で実行されているサーバーサービスがパッシブモードFTP サーバーが使用するように設定されている TCP ポート範囲も開く必要があります。

クイックポートの内訳

TCPポートで安全でないFTPを実行しているようです2021つまり能動的と受動的)、そしておそらく FTPSTCP ポート990およびで暗黙的な SSL を使用します989

FTP プロトコルは、制御/コマンド用にポート/チャネルを使用し、クライアントとサーバーのデータ交換部分に別のポート/チャネルを使用します。

安全でない FTP

  • コマンドチャネル: TCP ポート21
  • データチャネル(アクティブ): TCPポート20
  • データ チャネル (パッシブ):<FTP Server configured TCP port range>

暗黙的な SSL を使用した FTPS

  • コマンドチャネル: 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アドレス最後に、サーバー上のネットワーク アダプターがファイアウォール ルールで許可されているプロファイルで構成されていることを確認します。

ポート

注記: 該当する場合は、パッシブ ポート範囲を追加します。

ここに画像の説明を入力してください

範囲

ここに画像の説明を入力してください

プロフィール

ここに画像の説明を入力してください


その他のリソース

関連情報