at Finde PID til den Proces, ved Hjælp af en Bestemt Port


Oversigt

Vi alle ved, at en port kan kun bruges af en enkelt applikation eller service på samme tid. Nogle gange er vi nødt til at vide, hvilken proces der lytter på en bestemt port.

i denne tutorial ser vi forskellige tilgange til at finde processen, der lytter på en bestemt port i Linu..

root tilladelse

i Linu.kan kun rodbrugeren eller procesejeren få detaljerede oplysninger om processen.,

Når vi vil kontrollere en proces, der lytter på en bestemt port, ved vi ikke, hvem processen hører til.

med root-tilladelse kan vi få alle de nødvendige oplysninger om processen, for eksempel procesidentifikatoren.

derfor er vi muligvis nødt til at starte vores netværksværktøjer med rodbrugeren (eller med sudo).

brug af netstat

netstat-kommandoen er medlem af pakken net-tools.

tidligere kom det forudinstalleret i mange Linu. – distributioner. Net – tools-pakken er dog ikke blevet opdateret siden 2011.,

på grund af sin manglende understøttelse af moderne Linu.-kernefunktioner og andre grunde er net-tools-pakken forældet.

når det er sagt, er netstat selv stadig meget udbredt, så lad os se på, hvordan det kan hjælpe.lad os først se et eksempel på output fra netstat-kommandoen:

med indstillingerne ltnup viser netstat os alle porte, der er i brug i ovenstående eksempel.,

Lad os få et kig på, hvad muligheder betyder, at:

  • l – vis kun lytter stikkontakter
  • t – vis TCP-forbindelser
  • n – vis adresserne i en numerisk form
  • u – vis UDP-forbindelser
  • p – vise proces-id/program name (navn)

Hvis vi gennemgå de ovenstående output, er den sidste kolonne er præcis, hvad vi leder efter: PID og Processen navn lytter på en bestemt port.

Vi kan simpelthen rør netstat-output til grep-kommandoen for at få procesoplysningerne på en individuel port.,se, hvilken proces der lytter på port 22:

root# netstat -ltnup | grep ':22'tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 575/sshd

brug af ss

i det foregående afsnit diskuterede vi, at pakken net-tools er udskrevet.

ss-kommandoen er udskiftningen af netstat-kommandoen.

lad os nu se, hvordan du bruger SS-kommandoen til at se, hvilken proces der lytter på port 22:

Hvis vi kontrollerer indstillingerne, finder vi ud af, at de indstillinger, vi overførte til SS-kommandoen, er de samme som vi overførte til netstat.,

den eneste forskel er, at vi gjorde brug af tilstandsfilteret til SS-værktøjet i stedet for en ekstra grep-proces til at filtrere output.i lighed med output fra netstat-kommandoen ligger den forventede procesinformation også i den sidste kolonne.

brug af lsof

kommandoen lsof kan liste alle åbne filer i et Linu. – system.,

Vi kan bruge lsof-kommandoen til at finde den proces, ved hjælp af en bestemt port med-i :portnummer indstilling:

root# lsof -i :22COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAMEsshd 575 root 3u IPv4 19373 0t0 TCP *:ssh (LISTEN)

De første fire kolonner i ovenstående output fortælle os den proces navn lytter på port 22 og dens PID, ejer, og den file descriptor.

Vi kan videregive flere -i :port til lsof-kommandoen til at finde ud af de processer, der lytter på forskellige porte:

root# lsof -i :22 -i :68COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAMEsshd 575 root 3u IPv4 19373 0t0 TCP *:ssh (LISTEN)dhcpcd 8822 root 10u IPv4 49601 0t0 UDP *:bootpc

Brug fuser

fuserenheden værktøj viser hvilke processer, der ved hjælp af navngivne filer, stikkontakter, eller fil systemer., Det er inkluderet i psmisc-pakken og forudinstalleret på mange moderne Linu. – distributioner som standard.

Vi kan bruge dette til at se oplysningerne om processen, der kører på en bestemt port. Lad os igen finde ud af PID ‘ en for behandlingslyttende TCP-port 22:

root# fuser 22/tcp22/tcp: 575

ovenstående output er ret ligetil. Vi ved, at processen med PID 575 lytter på TCP-port 22.

det fortæller os dog ikke detaljerede oplysninger om processen, for eksempel Hvad hedder process 575? hvem ejer processen? og så videre.,

Hvis vi ønsker at få flere oplysninger om processen, vi kan passere “-v” mulighed for at fuser-kommandoen til at have en verbose output:

root# fuser -v 22/tcp USER PID ACCESS COMMAND22/tcp: root 575 F.... sshd

ved Hjælp af fuserenheden kommando, kan vi også kontrollere den kørende proces oplysninger om flere TCP-eller UDP-porte, der er i et skud:

root# fuser -v 22/tcp 68/udp USER PID ACCESS COMMAND22/tcp: root 575 F.... sshd68/udp: root 8822 F.... dhcpcd

Konklusion

I denne korte artikel, vi har lært fire forskellige Linux command-line utilities med eksempler for at finde ud af oplysninger om den proces, der lytter på en bestemt port.,

de er alle meget kraftfulde værktøjer at have i vores arsenal på Linu. – kommandolinjen.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *

Videre til værktøjslinje