Android

Kuinka tarkistaa linux-kuunteluportit (käytössä olevat portit)

Suspense: The X-Ray Camera / Subway / Dream Song

Suspense: The X-Ray Camera / Subway / Dream Song

Sisällysluettelo:

Anonim

Vianmäärityksen yhteydessä verkkoyhteyteen tai sovelluskohtaisiin ongelmiin on ensin tarkistettava, mitkä portit ovat järjestelmässäsi tosiasiallisesti käytössä ja mitkä sovellukset kuuntelevat tiettyä porttia.

Tässä artikkelissa selitetään, kuinka saada selville, mitkä palvelut kuuntelevat mitä portteja käyttävät netstat , ss ja lsof komentoja. Ohjeet koskevat kaikkia Linux- ja Unix-pohjaisia ​​käyttöjärjestelmiä, kuten macOS.

Mikä on Listening Port

Verkkoportti tunnistetaan sen numeron, siihen liittyvän IP-osoitteen ja tietoliikenneprotokollan, kuten TCP tai UDP, tyypin perusteella.

Kuunteluportti on verkkoportti, jota sovellus tai prosessi kuuntelee ja toimii viestinnän päätepisteenä.

Jokainen kuunteluportti voi olla avoin tai suljettu (suodatettu) palomuurilla. Yleisesti ottaen avoin portti on verkkoportti, joka vastaanottaa saapuvat paketit etäpaikoista.

Sinulla ei voi olla kahta palvelua, jotka kuuntelevat samaa porttia samassa IP-osoitteessa.

Jos esimerkiksi käytät Apache-verkkopalvelinta, joka kuuntelee portteja 80 ja 443 ja yrität asentaa Nginxiä, myöhemmin ei käynnisty, koska HTTP- ja HTTPS-portit ovat jo käytössä.

Tarkista kuunteluportit netstat

netstat on komentorivityökalu, joka voi tarjota tietoja verkkoyhteyksistä.

Listaa kaikki TCP- tai UDP-portit, joita kuunnellaan, mukaan lukien portteja käyttävät palvelut ja pistorasian tila käyttämällä seuraavaa komentoa:

sudo netstat -tunlp

Tässä komennossa käytetyillä asetuksilla on seuraava merkitys:

  • -t - Näytä TCP-portit. -u - Näytä UDP-portit. -n - Näytä numeeriset osoitteet isäntien ratkaisemisen sijasta. -l - Näytä vain kuunteluportit. -p - Näytä kuuntelijan prosessin PID ja nimi. Nämä tiedot näkyvät vain, jos suoritat komennon root- tai sudo-käyttäjänä.

Tulos näyttää tältä:

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

Tärkeät sarakkeet tapauksessamme ovat:

  • Proto - pistorasian käyttämä protokolla. Local Address - IP-osoite ja porttinumero, jota prosessi kuuntelee. PID/Program name - PID ja prosessin nimi.

sudo netstat -tnlp | grep:22

Tulos osoittaa, että SSH-palvelin käyttää tässä koneessa porttia 22:

tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 445/sshd tcp6 0 0:::22:::* LISTEN 445/sshd

Jos lähtö on tyhjä, portti ei kuuntele mitään.

Voit suodattaa luettelon myös kriteerien perusteella, esimerkiksi PID, protokolla, tila ja niin edelleen.

netstat on vanhentunut ja korvattu ss ja ip , mutta se on silti eniten käytettyjä komentoja verkkoyhteyksien tarkistamiseen.

Tarkista kuunteluportit ss

ss on uusi netstat . Siinä puuttuu joitain netstat ominaisuuksia, mutta se paljastaa enemmän TCP-tiloja ja se on hiukan nopeampi. Komentovaihtoehdot ovat enimmäkseen samat, joten siirtyminen netstat ss ei ole vaikeaa.

Jos haluat saada luettelon kaikista kuunteluporteista ss : llä, kirjoitat:

sudo ss -tunlp

Tulos on melkein sama kuin 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))

Tarkista kuunteluportit lsof

lsof on tehokas komentorivityökalu, joka tarjoaa tietoja prosessien avaamista tiedostoista.

Linuxissa kaikki on tiedostoa. Voit ajatella pistorasiaa tiedostona, joka kirjoittaa verkkoon.

Saadaksesi luettelon kaikista kuuntelevista TCP-porteista, joissa on lsof tyyppi:

sudo lsof -nP -iTCP -sTCP:LISTEN

Käytetyt vaihtoehdot ovat seuraavat:

  • -n - Älä muunna porttinumeroita porttinimiksi. -p - Älä ratkaise isäntänimiä, näytä numeeriset osoitteet. -iTCP -sTCP:LISTEN - Näytä vain verkkotiedostot, joiden TCP-tila on LISTEN.

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)

Suurin osa tulostesarakkeiden nimistä on itsestään selvä:

  • COMMAND , PID , USER - nimi, pid ja käyttäjä, joka käyttää satamaan liittyvää ohjelmaa. NAME - Portin numero.

Jos haluat selvittää, mitä prosessia kuunnellaan tietyssä portissa, esimerkiksi portissa 3306 haluat käyttää:

sudo lsof -nP -iTCP:3306 -sTCP:LISTEN

Tulos osoittaa, että MySQL-palvelin käyttää porttia 3306 :

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME mysqld 534 mysql 30u IPv6 17636 0t0 TCP *:3306 (LISTEN)

Lisätietoja käy lsof-man sivulla ja lue kaikki tämän työkalun tehokkaat vaihtoehdot.

johtopäätös

Olemme osoittaneet sinulle useita komentoja, joiden avulla voit tarkistaa, mitä portteja järjestelmässäsi käytetään, ja kuinka löytää mitä prosessia kuuntelee tiettyä porttia.

pääte