Vraag Hoe controleer ik of een poort op een Windows-computer is geblokkeerd?


Op het Windows-platform, welke native-opties moet ik controleren of een poort (3306, bijvoorbeeld) op mijn lokale computer (zoals in localhost), wordt geblokkeerd?


91
2018-06-16 14:21


oorsprong


Gewoon om te verduidelijken, bedoel je geblokkeerd, zoals geblokkeerd door een firewall of gateway, of bedoel je al in gebruik door iets anders? - squillman
De Controleer de test van mijn pc-firewall kunt u een specifieke poort of een reeks poorten testen vanaf een externe bron. - Peter Stuer


antwoorden:


Omdat u op de Windows-computer werkt, kunnen deze dingen worden gedaan,

  • Voer de volgende opdracht uit en zoek naar een ": 3306" -luisteraar (u hebt UDP / TCP niet genoemd). Dit zal bevestigen dat er iets op de poort draait.

    netstat -a -n

  • Hierna, als u inkomende verbindingen op deze poort verwacht en denkt dat de firewall ze mogelijk blokkeert, zou dit kunnen start Windows-firewall-logging en controleer de logboeken op verbroken verbindingen

    • Ga naar de Windows Firewall, Geavanceerde instellingen
    • Klik op de knop Instellingen naast "LAN-verbinding"
    • Selecteer "Log drop-packs"
    • Kijk naar de locatie van het logbestand (indien niet aanwezig, definieer een locatie)
    • Klik OK
    • Nu, wanneer de verbindingspoging wordt gedaan (ervan uitgaande dat je weet wanneer dit is gebeurd), kijk dan naar het logbestand voor een drop op poort 3306.
    • Als dit wordt gezien, wilt u een uitzondering toevoegen voor deze poort.
  • Er is nog een opdracht om de status van de firewall te controleren
    (Update voor Windows 7-gebruikers - zoals vermeld door Nick onder - gebruik netsh advfirewall-firewall)

    netsh firewall show state

    • dit zal de geblokkeerde poorten vermelden evenals actieve luisterpoorten met toepassingsassociaties
  • Met deze opdracht wordt de configuratiegegevens van de Windows-firewall gedumpt

    netsh firewall show config


Als u een actief blok hebt (binnenkomende verbindingen worden door de firewall verwijderd) nadat u met het loggen bent begonnen, zou u dat in het logboek moeten zien.

Als u een toepassing / service uitvoert die op 3306 luistert, de firewall config moet laten zien dat het Ingeschakeld is. Als dit niet wordt gezien, hebt u waarschijnlijk een uitzondering met de firewall gemist om deze app / service toe te staan.

Uiteindelijk wordt poort 3306 meestal gebruikt voor MySQL. Dus ik neem aan dat je MySQL-server gebruikt op deze Windows-computer. U zou daarom een ​​luisteraar voor 3306 moeten zien die inkomende verbindingen goedkeurt. Als u dat niet ziet, moet u met uw toepassing (MySQL) werken om dat als eerste te laten beginnen.


100
2018-06-16 14:28



+1 voor geweldige details - Sage
Vanaf Windows Vista is de opdracht "netsh firewall" gedeprecieerd. Het raadt aan in plaats daarvan "netsh advfirewall firewall" en referenties te gebruiken go.microsoft.com/fwlink/?linkid=121488 - Nick DeVore
Als u de uitvoer op de opdrachtregel wilt ontleden, voegt u toe |find "3306" bij de opdracht, b.v. C:\Windows\System32>netstat -an |find "3306" - Cees Timmerman
Ik kan de instellingenknop niet vinden die is opgegeven in stap 2 van de tweede aanbeveling ... - Bassie
@Bassie, probeer het docs.microsoft.com/en-us/windows/access-protection/... - nik


NETSTAT zal je vertellen of de poort is het luisteren maar het zal u niet vertellen of de poort is Open naar de buitenwereld. Wat ik hiermee bedoel, is dat NETSTAT kan aantonen dat 0.0.0.0 LISTENING is op poort 3306, maar een firewall blokkeert nog steeds die poort die externe verbindingen voorkomt; dus het is niet voldoende om op te vertrouwen NETSTAT alleen.

De beste manier om te controleren of een poort is geblokkeerd, is door een poortscan uit te voeren vanaf de clientcomputer. 

Er zijn veel manieren om een ​​poortscan uit te voeren, maar omdat je zei dat je op Windows stond, zal ik het Microsoft-opdrachtregelhulpprogramma voorstellen PortQry en de grafische versie PortQryUI

Om alle open poorten te testen:

portqry.exe -n #.#.#.#   

Om een ​​specifieke poort te testen:

portqry.exe -n #.#.#.# -e #

Bijvoorbeeld om de webinterface van een router op 192.168.1.1 te testen:

portqry.exe -n 192.168.1.1 -e 80

Wat terugkomt:

TCP port 80 (http service): LISTENING

Waar als testen op een lokale computer zonder HTTPD wordt uitgevoerd:

TCP port 80 (http service): NOT LISTENING

Met een PortScan-hulpprogramma krijgt u een van de 3 resultaten.

  • Listening betekent dat de server luistert naar de opgegeven poort
  • Filtered betekent dat het een TCP-bevestigingspakket heeft ontvangen met de vlag Reset set die waarschijnlijk duidt op een firewall- of softwareprobleem
  • Not Listening betekent dat er helemaal geen reactie is ontvangen

telnet is een andere opdrachtregeloptie die standaard standaard op het besturingssysteem is geïnstalleerd. Dit opdrachtregelhulpprogramma kan op een snelle manier worden gebruikt om te zien of een poort reageert op een netwerkaanvraag.

Gebruiken telnet u zou gewoon de volgende opdracht van een opdrachtprompt geven:

telnet localhost 3306

Het bovenstaande commando zou je een snelle indicatie moeten geven als de poort 3306 op de localhost reageert.


18
2018-04-04 00:47



Ik download PortQryUI en ik heb gecontroleerd of ik de 445-poort in zowel tcp als udp heb geblokkeerd en ingeschakeld, het toont hetzelfde luisteren in tcp en niet luisteren in udp. - Liam neesan


Sinds PowerShell 4.0 kunt u de opdracht gebruiken Test-NetConnection

Als u Port 3306 wilt testen zoals in uw voorbeeld, is de opdracht

Test-NetConnection -ComputerName localhost -Port 3306

TechNet Test-NetConnection documentatie


8
2018-01-17 14:56



+1 hiervoor. Een echt leuk alternatief dat geen installatie van iets vereist op de meeste moderne Windows-machines. - DCaugs


Als u vanaf de lokale computer (met behulp van het externe IP-adres) telnet naar de poort kunt verzenden, maar niet vanaf een andere computer, wordt deze ergens tussen geblokkeerd.

Merk op dat een firewall op uw lokale computer staat kon zelfs de eerste actie voorkomen.


5
2018-06-16 14:27



Merk op dat Telnet niet meer wordt geïnstalleerd op Win7 en nieuwere systemen. - Alexis Wilke
@AlexisWilke Dat is niet correct. Telnet kan worden geïnstalleerd - deepdive
Om telnet te installeren vanaf de opdrachtregel: dism / online / Inschakelen-Feature / FeatureName: TelnetClient - Jason Massey