Löytää PID-Prosessin Avulla Tiettyyn Porttiin


Yleistä

Me kaikki tiedämme, että portti voidaan käyttää vain yhden sovelluksen tai palvelun samaan aikaan. Joskus meidän on tiedettävä, mitä prosessia tietyssä satamassa kuunnellaan.

tässä opetusohjelmassa näemme erilaisia lähestymistapoja prosessin kuuntelemiseen tietyssä portissa Linuxissa.

root Lupaa

Linux, vain root käyttäjä tai prosessin omistaja voi saada yksityiskohtaisia tietoja prosessi.,

Kun haluamme tarkistaa prosessin kuuntelun tietyssä portissa, emme tiedä, kenelle prosessi kuuluu.

root lupaa, voimme saada kaikki tarvittavat tiedot prosessin, esimerkiksi prosessin tunniste.

siksi meidän on ehkä aloitettava verkkotyökalumme pääkäyttäjällä (tai sudolla).

Netstatin

avulla netstat-komento kuuluu net-tools-pakettiin.

aiemmin se tuli esiasennettuna monissa Linux-jakeluissa. Net-tools-pakettia ei kuitenkaan ole päivitetty vuoden 2011 jälkeen.,

koska se ei tue nykyaikaisia Linux-ytimen ominaisuuksia ja muita syitä, net-tools-paketti on vanhentunut.

että sanoi, netstat itse on edelleen laajalti käytössä, joten katsotaanpa, miten se voi auttaa.

Ensinnäkin, katsotaanpa esimerkki lähtö netstat komento:

valinnat ltnup, netstat näyttää meille kaikki portit käytössä yllä olevassa esimerkissä.,

katsotaanpa vilkaista mitä vaihtoehdot tarkoittavat:

  • l – näytä vain kuunnella pistorasiat
  • t – näyttää TCP-yhteyksiä
  • n – ssa-osoitteet numeerisessa muodossa
  • u – näytä UDP-yhteydet
  • p – esityksessä prosessin id/ohjelman nimi

Jos tarkastelemme edellä lähtö, viimeinen sarake on juuri sitä, mitä etsimme: PID ja Prosessin nimi kuuntelee tiettyyn porttiin.

Voimme yksinkertaisesti putki netstat tulostaa grep komento saada käsitellä tietoa yksittäisen portin.,

esimerkiksi, katsotaanpa, mikä prosessi kuuntelee porttia 22:

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

Käyttämällä ss

edellisessä osassa, puhuimme, että net-tools-paketti on vanhentunut.

ss-komento on netstat-komennon korvaaminen.

katsotaanpa Nyt, miten käyttää ss-komento nähdä, mikä prosessi kuuntelee porttia 22:

Jos me tarkista vaihtoehdot, huomaamme, että vaihtoehtoja meillä välitetään ss-komento on sama kuin me välitetään netstat.,

ainoa ero on, että olimme hyödyntämällä valtion-suodatin ss utility sijaan ylimääräinen grep prosessi suodattaa tuotos.

samanlainen kuin netstat-komennon ulostulo, odotetut prosessitiedot ovat myös viimeisessä sarakkeessa.

lsof

lsof-komento voi luetella kaikki avoimet tiedostot Linux-järjestelmässä.,

Voimme käyttää lsof-komentoa löytää prosessia käyttämällä erityisiä portti -i :port_number vaihtoehto:

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

neljä ensimmäistä saraketta edellä lähtö kertoa prosessin nimi kuuntelee porttia 22 ja sen PID, omistaja, ja tiedosto avainsana.

Emme voi kulkea useita -en :port lsof-komentoa selvittää prosessien kuuntelee eri-portit:

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

Käyttämällä kiinnitysyksikön

kiinnitysyksikön apuohjelma näyttää mitkä prosessit käyttävät nimeltä tiedostoja, pistorasiat, tai tiedostojärjestelmää., Se sisältyy psmisc-pakettiin ja esiasennetaan oletusarvoisesti moniin moderneihin Linux-jakeluihin.

Voimme käyttää tätä nähdäksesi prosessin tiedot tietyssä satamassa. Jälleen katsotaanpa selvittää, PID käsittelyn kuuntelee TCP-porttia 22:

root# fuser 22/tcp22/tcp: 575

edellä lähtö on melko yksinkertainen. Tiedämme, että prosessi PID 575 kuuntelee TCP-portti 22.

Kuitenkin, se ei kerro yksityiskohtaista tietoa prosessista, esimerkiksi, mikä on nimi prosessi 575? kuka omistaa prosessin? ja niin edelleen.,

Jos haluat saada lisätietoja prosessi, voimme välittää ”-v” – vaihtoehto, jotta kiinnitysyksikkö komento on verbose output:

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

Käyttämällä kiinnitysyksikön komennon, voimme myös tarkistaa käynnissä prosessi tietoa useita TCP-tai UDP-portit yhdellä kertaa:

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

Johtopäätös

tässä lyhyessä artikkelissa, olemme oppineet neljä eri Linux-komentorivin apuohjelmia esimerkkejä selvittää prosessi-informaation kuuntelee tiettyyn porttiin.,

ne ovat kaikki erittäin tehokkaita työkaluja, joita meillä on arsenaalissa Linux-komentorivillä.

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

Siirry työkalupalkkiin