Ich habe einen FTP-Server auf meinem Windows 10 konfiguriert. Wenn ich meine Windows-Firewall ausschalte, kann ich von anderen Rechnern im selben LAN auf den FTP-Server zugreifen. Aber wenn ich die Firewall einschalte, kann ich nicht auf den FTP zugreifen. Dies sind meine Firewall-Eingangsregeln, die meiner Meinung nach spezifisch für mein Problem sind (ich dachte daran, die vollständige Liste der Windows-Firewall-Regeln auszuschneiden und zu teilen. Aber sie ist riesig. Bitte weisen Sie mich auf weitere Regeln hin, die ich optimieren muss. Ich werde sie ausschneiden und hier teilen.)
Bitte sagen Sie mir, was falsch konfiguriert ist. (Ich verwende Windows 10)
Antwort1
FürFTPSie sollten sicherstellen, dass Sie beide TCP-Ports 20
und öffnen 21
. Wenn der auf dem Computer ausgeführte Serverdienst außerdemPassivmodus, müssen Sie auch den TCP-Portbereich öffnen, der für die Verwendung durch den FTP-Server konfiguriert ist.
Schnelle Portaufschlüsselung
Es scheint, dass Sie unsicheres FTP auf TCP-Ports ausführen
20
und21
(d.h. aktiv und passiv) und vielleicht auch FTPSmit implizitem SSL auf TCP-Port990
und989
.Das FTP-Protokoll verwendet einen Port/Kanal für die Steuerelemente/Befehle und einen anderen Port/Kanal für den Datenaustauschteil des Clients und Servers.
- Befehlskanal: TCP-Port
21
- Datenkanal (aktiv): TCP-Port
20
- Datenkanal (passiv):
<FTP Server configured TCP port range>
- Befehlskanal: TCP-Port
990
- Datenkanal (aktiv): TCP-Port
989
Befehlszeilen-Firewall (dieser Abschnitt sollte das Problem beheben)
Führen Sie den folgenden Befehl in der Befehlszeile mit Administratorrechten aus, um eine Windows-Firewall-Regel zu erstellen, die eingehendem Datenverkehr zu Ihrem FTP-Serverdienst die Kommunikation über die entsprechenden Befehls- und Datenports für alle IP-Adressen und alle Profilbereiche klassifizierter Netzwerke des Windows-Betriebssystems ermöglicht.
Sie müssen den program="<C:\FTPServer\FTPServer.exe>"
für Ihren Server geeigneten Wert angeben oder stattdessen „“ verwenden, das service=<ftpsvc>
auf den Dienstnamen verweist.
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
Führen Sie das Folgende aus, umDeaktivieren Sie die Stateful FTP-Filterung, damit die Firewall keinen FTP-Verkehr blockiert.Sie müssen daher nicht den gesamten passiven Portbereich öffnen, um diesen Datenverkehr zuzulassen.
netsh advfirewall set global StatefulFTP disable
Benutzeroberfläche der Windows-Firewall
Stellen Sie sicher, dass Sie dieUmfangin den Regeln definiert, so dass dieIP-Adressbereich des LANwerden durchgelassen oder lassenjede beliebige IP-Adressedurch. Zuletzt sollten Sie sicherstellen, dass die Netzwerkadapter auf dem Server in einem Profil konfiguriert sind, das die Firewall-Regel zulässt.
Häfen
Notiz: Fügen Sie ggf. den passiven Portbereich hinzu.
Umfang
Profile