質問: windowsファイアウォールがオンの場合、同じlan内の他のマシンからftpサーバーにアクセスできない windows 10でftpサーバーを構成しています。windowsファイアウォールをオフにすると、同じlan上の他のマシンからftpサーバーにアクセスできます。しかし、ファイアウォールをオンにすると、ftpにアクセスできません。これらは、自分の問題に固有であると感じるファイアウォールインバウンドルールです(私は完全なwindowsファイアウォールルールリストを切り取って共有しようと考えていましたが、非常に大きいです。微調整する必要がある他のルールを教えてください。切り取ります。ここで共有してください。)インバウンドルール 送信ルール 正しく構成されていないものを教えてください。 (windows 10の場合)
回答: [〜#〜] ftp [〜#〜] の場合、tcpポート20と21の両方を確実に開く必要があります。さらに、マシンで実行されているサーバーサービスが パッシブモード を使用している場合は、ftpサーバーが使用するように構成されているtcpポート範囲も開く必要があります。 クイックポートの内訳 tcpポート20および21(ie active and passive)で安全でないftpを実行しているようです。 [〜#〜] ftps [〜#〜] tcpポート990および989で暗黙のsslを使用。 ftpプロトコルは、コントロール/コマンドにポート/チャネルを使用し、クライアントとサーバーのデータ交換部分に別のポート/チャネルを使用します。 安全でないftp コマンドチャネル:tcpポート21 データチャネル(アクティブ):tcpポート20 データチャネル(パッシブ):<ftp server configured tcp port range> 暗黙のsslを使用したftps コマンドチャネル:tcpポート990 データチャネル(アクティブ):tcpポート989 コマンドラインファイアウォール (このセクションは問題を修正するはずです)管理者として昇格したコマンドラインで以下を実行し、ftpサーバーサービスへの受信トラフィックが、windows os分類ネットワークの任意のipアドレスとプロファイルスコープの該当するコマンドとデータポートで通信できるようにするwindowsファイアウォールルールを作成します。サーバーに適した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ルールで scope が定義されていることを確認して、lanのipアドレス範囲が許可されるか、許可されるようにします。 任意のipアドレスから。最後に、サーバーのネットワークアダプターがファイアウォールルールで許可されているプロファイルで構成されていることを確認します。 ポート 注:必要に応じてパッシブポート範囲を追加します。 スコープ プロフィール その他のリソース ftp接続モード(アクティブvsパッシブ) ファイアウォールルールのプロパティページ:[スコープ]タブ ファイアウォールプロファイルについて パッシブモードのftpサーバー用にwindowsファイアウォールを構成する方法