How to Check Listening Ports in Linux
Inhoudsopgave:
- Wat is luisterpoort
- Controleer luisterpoorten met
netstat
- Controleer luisterpoorten met
ss
- Controleer luisterpoorten met
lsof
- Conclusie
Bij het oplossen van netwerkconnectiviteit of applicatiespecifieke problemen moet een van de eerste dingen zijn om te controleren welke poorten daadwerkelijk op uw systeem worden gebruikt en welke applicatie naar een specifieke poort luistert.
In dit artikel wordt uitgelegd hoe u erachter kunt komen welke services op welke poorten luisteren met de opdrachten
netstat
,
ss
en
lsof
. De instructies zijn van toepassing op alle Linux- en Unix-gebaseerde besturingssystemen zoals macOS.
Wat is luisterpoort
Netwerkpoort wordt geïdentificeerd door het nummer, het bijbehorende IP-adres en het type communicatieprotocol zoals TCP of UDP.
Luisterpoort is een netwerkpoort waarop een toepassing of proces luistert en fungeert als communicatie-eindpunt.
Elke luisterpoort kan open of gesloten zijn (gefilterd) met behulp van een firewall. In het algemeen is een open poort een netwerkpoort die inkomende pakketten van externe locaties accepteert.
U kunt niet twee services hebben die naar dezelfde poort op hetzelfde IP-adres luisteren.
Als u bijvoorbeeld een Apache-webserver gebruikt die luistert op poorten
80
en
443
en u probeert Nginx te installeren, wordt het later niet gestart omdat de HTTP- en HTTPS-poorten al in gebruik zijn.
Controleer luisterpoorten met
netstat
netstat
is een opdrachtregelprogramma dat informatie kan verstrekken over netwerkverbindingen.
Gebruik de volgende opdracht om alle TCP- of UDP-poorten weer te geven waarnaar wordt geluisterd, inclusief de services die de poorten gebruiken en de socketstatus:
sudo netstat -tunlp
De opties die in deze opdracht worden gebruikt, hebben de volgende betekenis:
-
-t
- TCP-poorten weergeven.-u
- Toon UDP-poorten.-n
- Toon numerieke adressen in plaats van het oplossen van hosts.-l
- Toon alleen luisterpoorten.-p
- Toon de PID en de naam van het luisterproces. Deze informatie wordt alleen weergegeven als u de opdracht uitvoert als root- of sudo-gebruiker.
De uitvoer ziet er ongeveer zo uit:
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 445/sshd tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 929/master tcp6 0 0:::3306:::* LISTEN 534/mysqld tcp6 0 0:::80:::* LISTEN 515/apache2 tcp6 0 0:::22:::* LISTEN 445/sshd tcp6 0 0:::25:::* LISTEN 929/master tcp6 0 0:::33060:::* LISTEN 534/mysqld udp 0 0 0.0.0.0:68 0.0.0.0:* 966/dhclient
De belangrijke kolommen in ons geval zijn:
-
Proto
- Het protocol dat door de socket wordt gebruikt.Local Address
- Het IP-adres en poortnummer waarop het proces luistert.PID/Program name
- De PID en de naam van het proces.
sudo netstat -tnlp | grep:22
Uit de uitvoer blijkt dat poort 22 op deze machine wordt gebruikt door de SSH-server:
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 445/sshd tcp6 0 0:::22:::* LISTEN 445/sshd
Als de uitvoer leeg is, betekent dit dat er niets naar de poort luistert.
U kunt de lijst ook filteren op basis van criteria, bijvoorbeeld PID, protocol, status, enzovoort.
netstat
is verouderd en vervangen door
ss
en
ip
, maar toch is het een van de meest gebruikte commando's om netwerkverbindingen te controleren.
Controleer luisterpoorten met
ss
ss
is nieuwe
netstat
. Het mist enkele van de
netstat
functies, maar onthult meer TCP-staten en is iets sneller. De opdrachtopties zijn meestal hetzelfde, dus de overgang van
netstat
naar
ss
is niet moeilijk.
Om een lijst van alle luisterpoorten met
ss
, typ je:
sudo ss -tunlp
De output is bijna hetzelfde als die gerapporteerd door
netstat
:
State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:(("sshd", pid=445, fd=3)) LISTEN 0 100 0.0.0.0:25 0.0.0.0:* users:(("master", pid=929, fd=13)) LISTEN 0 128 *:3306 *:* users:(("mysqld", pid=534, fd=30)) LISTEN 0 128 *:80 *:* users:(("apache2", pid=765, fd=4), ("apache2", pid=764, fd=4), ("apache2", pid=515, fd=4)) LISTEN 0 128:22:* users:(("sshd", pid=445, fd=4)) LISTEN 0 100:25:* users:(("master", pid=929, fd=14)) LISTEN 0 70 *:33060 *:* users:(("mysqld", pid=534, fd=33))
Controleer luisterpoorten met
lsof
lsof
is een krachtig opdrachtregelprogramma dat informatie biedt over bestanden die door processen zijn geopend.
In Linux is alles een bestand. Je kunt een socket zien als een bestand dat naar het netwerk schrijft.
Om een lijst te krijgen van alle luister-TCP-poorten met
lsof
type:
sudo lsof -nP -iTCP -sTCP:LISTEN
De gebruikte opties zijn als volgt:
-
-n
- Converteer geen poortnummers naar poortnamen.-p
- Geen hostnamen oplossen, numerieke adressen weergeven.-iTCP -sTCP:LISTEN
- Toon alleen netwerkbestanden met de status LISTEN van TCP.
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME sshd 445 root 3u IPv4 16434 0t0 TCP *:22 (LISTEN) sshd 445 root 4u IPv6 16445 0t0 TCP *:22 (LISTEN) apache2 515 root 4u IPv6 16590 0t0 TCP *:80 (LISTEN) mysqld 534 mysql 30u IPv6 17636 0t0 TCP *:3306 (LISTEN) mysqld 534 mysql 33u IPv6 19973 0t0 TCP *:33060 (LISTEN) apache2 764 www-data 4u IPv6 16590 0t0 TCP *:80 (LISTEN) apache2 765 www-data 4u IPv6 16590 0t0 TCP *:80 (LISTEN) master 929 root 13u IPv4 19637 0t0 TCP *:25 (LISTEN) master 929 root 14u IPv6 19638 0t0 TCP *:25 (LISTEN)
De meeste namen van de uitvoerkolommen spreken voor zich:
-
COMMAND
,PID
,USER
- De naam, de pid en de gebruiker die het programma uitvoert dat aan de poort is gekoppeld.NAME
- Het poortnummer.
Om te zoeken naar welk proces er wordt geluisterd op een bepaalde poort, bijvoorbeeld poort
3306
u:
sudo lsof -nP -iTCP:3306 -sTCP:LISTEN
Uit de uitvoer blijkt dat poort
3306
wordt gebruikt door de MySQL-server:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME mysqld 534 mysql 30u IPv6 17636 0t0 TCP *:3306 (LISTEN)
Voor meer informatie bezoek de lsof man-pagina en lees over alle andere krachtige opties van deze tool.
Conclusie
We hebben u verschillende opdrachten getoond die u kunt gebruiken om te controleren welke poorten op uw systeem worden gebruikt en hoe u kunt vinden welk proces naar een specifieke poort luistert.
terminalIntel-poorten Linux Netbook OS naar desktops
Intel heeft het Moblin OS overgezet van netbooks naar desktop-schermen.
Gebruik schijf controleren (chkdsk) in Windows om te controleren op fouten in de harde schijf
Leer hoe u Check Disk (chkdsk) in Windows gebruikt om te controleren op fouten in de harde schijf.
Hoe te controleren (scannen) op open poorten in Linux
Dit artikel beschrijft verschillende benaderingen om erachter te komen welke poorten naar buiten worden geopend op uw Linux-systeem.