Com utilitzar netstat a Linux
El Linux netstat
La comanda us proporciona informació sobre les vostres connexions de xarxa, els ports que s’utilitzen i els processos que les utilitzen. Apreneu a utilitzar-lo.
Ports, processos i protocols
Les preses de xarxa es poden connectar o esperar una connexió. Les connexions utilitzen protocols de xarxa com Transport Control Protocol (TCP) o User Datagram Protocol UDP. Utilitzen adreces de protocol d’Internet i ports de xarxa per establir connexions.
La paraula endolls pot evocar imatges d’un punt de connexió física per a un cable o un cable, però en aquest context, un sòcol és una construcció de programari que s’utilitza per gestionar un extrem d’una connexió de dades de xarxa.
Els sòcols tenen dos estats principals: són els dos connectat i facilitar una comunicació de xarxa contínua, o ho són esperant perquè una connexió entrant hi connecti. Hi ha altres estats, com ara l'estat en què un sòcol està a mitja distància per establir una connexió en un dispositiu remot, però deixant de banda els estats transitoris, es pot pensar que un sòcol està connectat o està esperant (que sovint es diu escoltant).
El sòcol d'escolta s'anomena servidor, i el sòcol que sol·licita una connexió amb el sòcol d'escolta s'anomena a client. Aquests noms no tenen res a veure amb els rols de maquinari o d’ordinador. Simplement defineixen el paper de cada sòcol a cada extrem de la connexió.
El netstat
La comanda us permet descobrir quins sòcols estan connectats i quins sòcols estan escoltant. És a dir, us indica quins ports s’utilitzen i quins processos els utilitzen. Us pot mostrar taules d’encaminament i estadístiques sobre les vostres interfícies de xarxa i connexions multidifusió.
La funcionalitat de netstat
s'ha reproduït al llarg del temps en diferents utilitats Linux, com ara ip i ss. Encara val la pena conèixer aquest avi de totes les ordres d’anàlisi de xarxa, perquè està disponible a tots els sistemes operatius similars a Linux i Unix, i fins i tot a Windows i Mac.
A continuació s’explica com utilitzar-lo, amb exemples d’ordres.
Llistat de tots els endolls
El -a
(totes) opcions marca netstat
mostra tots els endolls connectats i d’espera. Aquesta ordre és susceptible de produir una llista llarga, de manera que la introduïm en menys
.
netstat -a | menys
El llistat inclou sockets TCP (IP), TCP6 (IPv6) i UDP.
L’embolcall de la finestra del terminal fa que sigui una mica difícil veure què passa. Aquí teniu un parell de seccions d’aquest llistat:
Connexions d'Internet actives (servidors establerts) Proto Recv-Q Send-Q Adreça local Adreça estrangera Estat tcp 0 0 localhost: domini 0.0.0.0:* ESCOLTA tcp 0 0 0.0.0.0:ssh 0.0.0.0:* ESCOLTA tcp 0 0 localhost : ipp 0.0.0.0:* ESCOLTA tcp 0 0 localhost: smtp 0.0.0.0:* ESCOLTA tcp6 0 0 [::]: ssh [::]: * ESCOLTA tcp6 0 0 ip6-localhost: ipp [::]: * ESCOLTA. . . Sockets de domini actius UNIX (servidors i establerts) Proto RefCnt Senyaladors Tipus Estat I-Node Camí unix 24 [] DGRAM 12831 / run / systemd / journal / dev-log unix 2 [ACC] ESCOLTA DE CURS 24747 @ / tmp / dbus-zH6clYmvw8 unix 2 [] DGRAM 26372 / run / user / 1000 / systemd / notification unix 2 [] DGRAM 23382 / run / user / 121 / systemd / notification unix 2 [ACC] SEQPACKET LISTENING 12839 / run / udev / control
A la secció "Internet actiu" es mostren les connexions externes connectades i els sockets locals que escolten les sol·licituds de connexió remota. És a dir, llista les connexions de xarxa que s’estableixen (o s’establiran) a dispositius externs.
La secció "Domini UNIX" llista les connexions internes connectades i escoltades. Dit d’una altra manera, enumera les connexions establertes a l’ordinador entre diferents aplicacions, processos i elements del sistema operatiu.
Les columnes "Internet actiu" són:
- Proto: El protocol utilitzat per aquest sòcol (per exemple, TCP o UDP).
- Recv-Q: La cua de recepció. Es tracta de bytes entrants que s’han rebut i estan emmagatzemats a la memòria intermèdia, esperant que el procés local que utilitza aquesta connexió els llegeixi i consumeixi.
- Envia-Q: La cua d’enviament. Mostra els bytes que estan preparats per enviar-se des de la cua d’enviament.
- Adreça local: Detalls de l'adreça del final local de la connexió. El valor per defecte és per a
netstat
per mostrar el nom d'amfitrió local per a l'adreça i el nom del servei per al port. - Adreça estrangera: L'adreça i el número de port de l'extrem remot de la connexió.
- Estat: L'estat del sòcol local. Per als sòcols UDP, això sol estar en blanc. Vegeu el estat taula, a sota.
Per a les connexions TCP, el fitxer estat el valor pot ser un dels següents:
- ESCOLTA: Només al servidor. El sòcol espera una sol·licitud de connexió.
- SYN-SENT: Només al costat del client. Aquest sòcol ha fet una sol·licitud de connexió i està a l’espera de si s’acceptarà.
- SYN-REBUT: Només al servidor. Aquest sòcol espera un confirmació de connexió després d’acceptar una sol·licitud de connexió.
- ESTABLIT: Servidor i clients. S'ha establert una connexió de treball entre el servidor i el client, que permet la transferència de dades entre els dos.
- FIN-WAIT-1: Servidor i clients. Aquest sòcol està esperant una sol·licitud de finalització de la connexió des del sòcol remot o un reconeixement d’una sol·licitud de finalització de la connexió que s’havia enviat prèviament des d’aquest sòcol.
- FIN-WAIT-2: Servidor i clients. Aquest sòcol espera una sol·licitud de finalització de la connexió del sòcol remot.
- ESPERA TANCAT: Servidor i client. Aquest sòcol espera una sol·licitud de finalització de la connexió de l'usuari local.
- TANCAMENT: Servidor i clients. Aquest sòcol està esperant un avís de sol·licitud de finalització de la connexió del sòcol remot.
- ÚLTIMA ACK: Servidor i client. Aquest sòcol espera un reconeixement de la sol·licitud de finalització de la connexió que ha enviat al sòcol remot.
- TEMPS-ESPERA: Servidor i clients. Aquest sòcol va enviar un reconeixement al sòcol remot per fer-li saber que va rebre la sol·licitud de finalització del sòcol remot. Ara està esperant per assegurar-se que s’ha rebut el reconeixement.
- TANCAT: No hi ha connexió, de manera que el sòcol s'ha tancat.
Les columnes "Domini Unix" són:
- Proto: El protocol utilitzat per aquest sòcol. Serà "unix".
- RefCnt: Recompte de referència. El nombre de processos connectats connectats a aquest sòcol.
- Banderes: Normalment es defineix a
ACC
, que representaSO_ACCEPTON
, és a dir, el sòcol espera una sol·licitud de connexió.SO_WAITDATA
, mostrat comW
, vol dir que hi ha dades pendents de ser llegides.SO_NOSPACE
, mostrat comN
, vol dir que no hi ha espai per escriure dades al sòcol (és a dir, la memòria intermèdia d’enviament està plena). - Tipus: El tipus de sòcol. Vegeu el tipus taula següent.
- Estat: L'estat del sòcol. Vegeu el estat taula següent.
- I-Node: L'inode del sistema de fitxers associat amb aquest sòcol.
- Camí: El camí del sistema de fitxers al sòcol.
El sòcol de domini Unix tipus pot ser un dels següents:
- DGRAM: El sòcol s’utilitza en mode datagrama, mitjançant missatges de longitud fixa. No es garanteix que els datagrames siguin fiables, seqüenciats ni sense duplicar.
- CORRENT: Aquest sòcol és un sòcol de flux. Aquest és el tipus de connexió de sòcol "normal" habitual. Aquests sòcols estan dissenyats per proporcionar lliurament seqüencial (en ordre) fiable de paquets.
- RAW: Aquest sòcol s’utilitza com a sòcol en brut. Els sockets sense format funcionen al nivell de xarxa del model OSI i no fan referència a les capçaleres TCP i UDP des del nivell de transport.
- RDM: Aquest sòcol es troba en un extrem d’una connexió de missatges lliurats de manera fiable.
- PAQUET SEQ: Aquest sòcol funciona com un sòcol de paquets seqüencial, que és un altre mitjà per proporcionar lliurament de paquets fiable, seqüenciat i sense duplicar.
- PAQUET: Socket d'accés a la interfície en brut. Els sockets de paquets s’utilitzen per rebre o enviar paquets en brut al nivell del controlador de dispositiu (és a dir, capa d’enllaç de dades) del model OSI.
El sòcol de domini Unix estat pot ser un dels següents:
- GRATU :T: Aquest sòcol no està assignat.
- ESCOLTA: Aquest sòcol està escoltant les sol·licituds de connexió entrants.
- CONNECTANT: Aquest sòcol està en procés de connexió.
- CONNECTAT: S'ha establert una connexió i el sòcol pot rebre i transmetre dades.
- DESCONECTAR: La connexió està en procés de finalització.
Vaja, això és molta informació! Molts dels netstat
les opcions refinen els resultats d’una manera o d’una altra, però no canvien massa el contingut. Fem una ullada.
Llistat de sòcols per tipus
El netstat -a
Comanda pot proporcionar més informació de la que necessiteu veure. Si només voleu o necessiteu veure els sockets TCP, podeu utilitzar el fitxer -t
Opció (TCP) per restringir la visualització només per mostrar sòcols TCP.
netstat -at | menys
La visualització fora es redueix considerablement. Els pocs sòcols que es mostren són tots els sòcols TCP.
El -u
(UDP) i -x
Les opcions (UNIX) es comporten d’una manera similar, restringint els resultats al tipus de sòcol especificat a la línia d’ordres. A continuació, es mostra l’opció -u (UDP):
netstat -au | menys
Només es mostren els sòcols UDP.
Llistats de sòcols per estat
Per veure els sòcols en estat d’escolta o d’espera, utilitzeu el fitxer -l
(escolta) opció.
netstat -l | menys
Els sòcols que es mostren són els que es troben en estat d’escolta.
Això es pot combinar amb les opcions -t (TCP, -u (UDP) i -x (UNIX) per aprofundir en els sockets d'interès. Cerquem sockets TCP escoltats:
netstat -lt | menys
Ara només veiem preses d’escolta TCP.
Estadístiques de xarxa per protocol
Per veure les estadístiques d'un protocol, utilitzeu el fitxer -s
(estadístiques) i passar a la -t
(TCP), -u
(UDP), o bé -x
(UNIX) opcions. Si només utilitzeu el fitxer -s
(estadístiques), veureu estadístiques de tots els protocols. Comprovem les estadístiques del protocol TCP.
netstat -st | menys
Es mostra una col·lecció d'estadístiques de les connexions TCP a menys
.
Mostrant noms de processos i PID
Pot ser útil veure l'identificador de procés (PID) del procés mitjançant un sòcol, juntament amb el nom d'aquest procés. El -p
(programa) opció fa això. Vegem quins són els PID i els noms dels processos per als processos que utilitzen un sòcol TCP que es troba en estat d’escolta. Fem servir sudo
per assegurar-nos que rebem tota la informació disponible, inclosa qualsevol informació que normalment requereixi permisos d’arrel.
sudo netstat -p -at
A continuació, es mostra aquest resultat en una taula amb format:
Connexions d'Internet actives (servidors establerts) Proto Recv-Q Send-Q Adreça local Adreça estrangera Estat PID / Nom del programa tcp 0 0 localhost: domain 0.0.0.0:* LISTEN 6927 / systemd-resolv tcp 0 0 0.0.0.0:ssh 0.0 .0.0: * ESCOLTA 751 / sshd tcp 0 0 localhost: ipp 0.0.0.0:* ESCOLTA 7687 / cupsd tcp 0 0 localhost: smtp 0.0.0.0:* ESCOLTA 1176 / master tcp6 0 0 [::]: ssh [:: ]: * LISTEN 751 / sshd tcp6 0 0 ip6-localhost: ipp [::]: * LISTEN 7687 / cupsd tcp6 0 0 ip6-localhost: smtp [::]: * LISTEN 1176 / master
Tenim una columna addicional anomenada "PID / nom del programa". Aquesta columna llista el PID i el nom del procés que utilitza cadascun dels sòcols.
Llistat d'adreces numèriques
Un altre pas que podem fer per eliminar una certa ambigüitat és mostrar les adreces locals i remotes com a adreces IP en lloc del domini i dels noms d'amfitrió resolts. Si fem servir el fitxer-n
(numèrica), les adreces IPv4 es mostren en format decimal amb punts:
sudo netstat -an | menys
Les adreces IP es mostren com a valors numèrics. També es mostren els números de port, separats per dos punts ” :
”De l’adreça IP.
Una adreça IP de 127.0.0.1 mostra que el sòcol està lligat a l’adreça de loopback de l’ordinador local. Podeu pensar en una adreça IP de 0.0.0.0 com a "ruta predeterminada" per a les adreces locals i "qualsevol adreça IP" per a adreces estrangeres. Les adreces IPv6 es mostren com "::
”També són zero adreces.
Els ports que apareixen a la llista es poden comprovar fàcilment per veure quin és el seu propòsit habitual:
- 22: Es tracta del port d’escolta del Secure Shell (SSH).
- 25: Aquest és el port d’escolta del protocol de transferència de correu simple (SMTP).
- 53: Aquest és el port d’escolta del sistema de noms de domini (DNS).
- 68: Aquest és el port d’escolta del Protocol de configuració d’amfitrió dinàmic (DHCP).
- 631: Aquest és el port d'escolta del sistema d'impressió comú UNIX (CUPS).
RELACIONATS:Quina diferència hi ha entre 127.0.0.1 i 0.0.0.0?
Visualització de la taula d’encaminament
El -r
L'opció (ruta) mostra la taula d'encaminament del nucli.
sudo netstat -r
Aquí teniu aquest resultat en una taula ordenada:
Taula d’encaminament IP del nucli Gateway de destinació Genmask Flags MSS Window irtt Iface default Vigor.router 0.0.0.0 UG 0 0 0 enp0s3 link-local 0.0.0.0 255.255.0.0 U 0 0 0 enp0s3 192.168.4.0 0.0.0.0 255.255.255.0 U 0 0 0 enp0s3
I això és el que signifiquen les columnes:
- Destinació: La xarxa de destinació o el dispositiu amfitrió de destinació (si la destinació no és una xarxa).
- Passarel·la: L'adreça de la passarel·la. Un asterisc "
*
”Apareix aquí si no es defineix una adreça de passarel·la. - Màscara genètica: La màscara de subxarxa de la ruta.
- Banderes: Vegeu el banderes taula, a sota.
- MSS: Mida màxima del segment per defecte per a les connexions TCP en aquesta ruta: és la quantitat de dades més gran que es pot rebre en un segment TCP.
- Finestra: La mida de finestra predeterminada per a les connexions TCP en aquesta ruta, que indica el nombre de paquets que es poden transferir i rebre abans que el buffer receptor estigui ple. A la pràctica, l’aplicació receptora consumeix els paquets.
- irtt: El temps inicial d’anada i tornada. Aquest nucli fa referència a aquest valor per fer ajustaments dinàmics als paràmetres TCP per a connexions remotes que responen lentament.
- Afronto: La interfície de xarxa des de la qual es transmeten els paquets enviats per aquesta ruta.
El banderes el valor pot ser un de:
- U: El recorregut és amunt.
- H: Target és un amfitrió i l'única destinació possible en aquesta ruta.
- G: Utilitzeu la passarel·la.
- R: Restableix la ruta per a l'encaminament dinàmic.
- D: Instal·lat dinàmicament pel dimoni d’encaminament.
- M: Modificat pel dimoni d’encaminament quan va rebre un paquet ICMP (Internet Control Message Protocol).
- A: Instal·lat per
addrconf
, el generador automatitzat de fitxers de configuració de DNS i DHCP. - C: Entrada de memòria cau.
- !: Rebutja la ruta.
Cercar el port utilitzat per un procés
Si canalitzem la sortida de netstat
a través grep
, podem cercar un procés per nom i identificar el port que utilitza. Utilitzem el fitxer -a
(tots), -n
(numèric) i -p
(programa) opcions utilitzades anteriorment i cerqueu "sshd".
sudo netstat -anp | grep "sshd"
grep
troba la cadena de destinació i veiem que el fitxer sshd
el dimoni utilitza el port 22.
Per descomptat, també ho podem fer al revés. Si cerquem ": 22", podem esbrinar quin procés utilitza aquest port, si n'hi ha.
sudo netstat -anp | grep ": 22"
Aquesta vegada grep
troba la cadena de destinació ": 22" i veiem que el procés que utilitza aquest port és el sshd
dimoni, ID de procés 751.
Enumereu les interfícies de xarxa
El -i
(interfícies) mostrarà una taula de les interfícies de xarxa que netstat
pot descobrir.
sudo netstat -i
Aquí teniu el resultat d’una manera més llegible:
Taula d'interfície del nucli Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg enp0s3 1500 4520671 0 0 0 4779773 0 0 0 BMRU lo 65536 30175 0 0 0 30175 0 0 0 LRU
Això és el que signifiquen les columnes:
- Afronto: El nom de la interfície. El
enp0s3
interfície és la interfície de xarxa del fitxer fora món, i elheus aquí
interfície és la interfície loopback. La interfície loopback permet als processos intercomunicar-se dins l’ordinador mitjançant protocols de xarxa, fins i tot si l’ordinador no està connectat a una xarxa. - MTU: La Unitat de Transmissió Màxima (MTU). Aquest és el "paquet" més gran que es pot enviar. Consisteix en una capçalera que conté indicadors d’encaminament i protocol i altres metadades, a més de les dades que realment s’estan transportant.
- RX-OK: El nombre de paquets rebuts, sense errors.
- RX-ERR: El nombre de paquets rebuts, amb errors. Volem que sigui el més baix possible.
- RX-DRP: El nombre de paquets caiguts (és a dir, perduts). També volem que sigui el més baix possible.
- RX-OVR: Nombre de paquets perduts a causa de desbordaments en rebre. Normalment, això significa que la memòria intermèdia receptora estava plena i no podia acceptar cap dada més, però es van rebre més dades i es van haver de descartar. Com més baixa sigui aquesta xifra, millor i zero és perfecte.
- TX-OK: El nombre de paquets transmesos, sense errors.
- RX-ERR: El nombre de paquets transmesos, amb errors. Volem que sigui zero.
- RX-DRP: El nombre de paquets ha caigut en transmetre. L’ideal seria que sigui zero.
- RX-OVR: El nombre de paquets perduts a causa dels desbordaments en transmetre. Normalment, això significa que la memòria intermèdia d’enviament estava plena i no podia acceptar cap dada més, però hi havia més dades a punt per transmetre’s i s’havia de descartar.
- Flg: Banderes. Vegeu el banderes taula següent.
El banderes representar el següent:
- B: S'utilitza una adreça de difusió.
- L: Aquesta interfície és un dispositiu loopback.
- M: S'estan rebent tots els paquets (és a dir, en mode promiscu). No es filtra ni es descarta res.
- O: El protocol de resolució d’adreces (ARP) està desactivat per a aquesta interfície.
- P: Es tracta d’una connexió punt a punt (PPP).
- R: La interfície s'està executant.
- U: La interfície està activada.
Enumereu els membres del grup Multidifusió
En poques paraules, una transmissió multidifusió permet enviar un paquet només una vegada, independentment del nombre de destinataris. Per a serveis com la transmissió de vídeo, per exemple, això augmenta en gran mesura l’eficiència des del punt de vista del remitent.
El -g
opcions (grups) que fa netstat
llista la pertinença a grups de multidifusió de sockets a cada interfície.
sudo netstat -g
Les columnes són bastant senzilles:
- Interfície: El nom de la interfície per la qual transmet el sòcol.
- RefCnt: El recompte de referència, que és el nombre de processos connectats al sòcol.
- Grup: El nom o identificador del grup de multidifusió.
The New Kids on the Block
Les ordres route, ip, ifconfig i ss poden proporcionar molt de què netstat
és capaç de mostrar-te. Són ordres fantàstiques i val la pena consultar-les.
Ens hi hem centrat netstat
perquè està disponible universalment, independentment del sistema operatiu semblant a Unix en què estigueu treballant, fins i tot dels obscurs.