Hva er en port?
I datanettverk representerer en port et logisk inn- og utkjøringssted for en tilkobling. Porter er basert på programvare og er helt virtuelle. Disse portene på en datamaskin administreres av operativsystemet.
Hva vil vi snakke om?
Denne raske opplæringen demonstrerer de forskjellige metodene for å bestemme hvilken Linux -prosess eller tjeneste for øyeblikket lytter på en bestemt port. La oss snakke om havner og deres formål.
Hvordan er porter analoge med fysiske porter?
Akkurat som fysiske porter er med på å samhandle med forskjellige perifere enheter koblet til en datamaskin, hjelper portene de forskjellige tjenestene til å kommunisere med hverandre. Disse tjenestene kan være på samme datamaskin eller på forskjellige datamaskiner.
Litt om en port av en tjeneste
For å lytte etter innkommende tilkoblingsforespørsler, forbinder en prosess seg med et portnummer. De fleste prosesser er satt opp med en standardport, og de må bruke den porten i henhold til deres spesifikasjon. De bytter ikke automatisk til den andre porten med mindre konfigurasjonen deres eksplisitt er endret.
Noen få eksempler på protokoller og deres tilhørende standardporter inkluderer Secure Shell (SSH) -protokollen (Port22), Apache HTTP (Port80), MySQL -databaseserveren (Port3306), og så videre. Du kan bruke denne informasjonen til å oppdage hvilken standardport som bruker en tjeneste som bruker.
Konfigurasjonsfilen til disse tjenestene kan redigeres for å bruke en annen port også.
Kontrollere portene på Linux
La oss nå se hvordan du kan sjekke hvilke port/porter en prosess bruker på Linux. Her vil vi vise deg de forskjellige kommandoene for dette formålet.
1. LSOF -kommando
LSOF -verktøyet er nyttig for å skaffe en liste over portene som brukes av systemet ditt. La oss vurdere følgende eksempel for å få en informasjon om en prosess (prosesser) ved å bruke TCP -porten 22:
$ sudo lsof -i tcp: 22
LSOF -kommandoen gir mer informasjon som brukerens navn og hvilke prosess -ID -er som er koblet til hver prosess. Det fungerer med både TCP- og UDP -porter.
2. SS -kommando
De ss Kommando er en annen måte å finne ut hvilke prosesser som er koblet til en bestemt port. Selv om LSOF er den mer vanlige forkortelsen, kan noen mennesker synes at SS er mer hendige.
La oss se etter prosessene eller tjenestene som lytter på port 3306:
$ sudo ss -tunap | Grep: 3306
La oss bryte ned denne kommandoen:
1. t: Den ber SS -kommandoen om å vise TCP -pakkene.
2. u: Den ber SS -kommandoen om å vise UDP -pakkene.
3. n: Det brukes til å vise portnumrene i stedet for oversettelsene deres.
4. en: Det brukes til å vise lytting så vel som ikke-lyttende stikkontakter av alle typer.
5. p: Det brukes til å vise prosessene som bruker en stikkontakt.
Resultatet av den forrige kommandoen viser hvilken prosess som bruker hvilken port. Du kan også utstede følgende kommando:
$ sudo ss -tup -a sport =: 80
Her betyr sport kildeporten.
Disse to tilnærmingene kan hjelpe deg med å finne ID -ene i prosessene som er koblet til forskjellige porter.
3. NetStat -kommando
NetStat -kommandoen viser informasjonen om nettverket ditt og kan brukes til å fikse problemene eller endre måten nettverket ditt er satt opp. Det kan også følge nøye med på nettverkstilkoblingene dine.
Denne kommandoen brukes ofte til å se en informasjon om inngående og utgående tilkoblinger, ruting av tabeller, portlytting og bruksstatistikk. Selv om det har blitt gjort foreldet de siste årene, er Netstat fremdeles et nyttig verktøy for å analysere nettverk.
Med GREP -kommandoen kan Netstat bestemme hvilken prosess eller tjeneste som bruker en bestemt port (ved å nevne porten):
$ sudo netstat -ltnp | grep -w ': 80'
Alternativene som brukes her kan klassifiseres som følger:
1. t: Det viser bare TCP -tilkoblingen.
2. l: Det brukes til å vise resultatene i en liste.
3. n: Den viser adresser og portnumre i numerisk format.
4. p: Det viser PID- og programnavnet som er tilknyttet hver stikkontakt.
4. Fikseringskommando
Kommandoen bestemmer prosessene som bruker filene eller stikkontaktene. Du kan bruke den til å liste tjenestene som kjører på en bestemt port. La oss ta eksemplet med port 3306 og se hvilke tjenester som kjører her:
$ sudo fuser 3306/tcp
Dette gir oss prosessnumrene ved hjelp av denne porten. Du kan bruke dette prosessnummeret til å finne de tilsvarende prosessnavnene. For eksempel, hvis prosessnummeret er 15809, er kommandoen som skal brukes her som følger:
$ ps -p 15809 -o comm =
Det kreves imidlertid visse verktøy for å identifisere prosessene som bruker en ikke-standardport. “LSOF” er et verktøy for å oppdage hvilke tjenester som er tilgjengelige i et nettverk og hvilke porter de bruker. Tenk på følgende eksempel. Dette viser hvordan du lister opp UDP- og TCP -lytteportene:
$ sudo lsof -pni | Egrep "(UDP | Listen)"
Følgende er en beskrivelse av alternativene som brukes her:
1. P: Det undertrykker oppslaget av porttjenestens navn.
2. n: Den viser de numeriske nettverksadressene.
3. Jeg: Den viser IP -stikkontaktene.
Både portene og de tilhørende prosessene vises i det tidligere nevnte resultatet. Denne måten er spesielt nyttig for prosesser med ikke-default-porter.
Konklusjon
I denne artikkelen snakket vi om fire mulige Linux-kommandolinjeverktøy og ga eksemplene på hvordan du bruker dem til å finne ut hvilken prosess lytter på en bestemt port.