15 Uporabni primeri ukazov Sockstat za iskanje odprtih vrat v FreeBSD


Sockstat je vsestranski pripomoček za ukazno vrstico, ki se uporablja za prikaz omrežnih in sistemsko odprtih vtičnic v FreeBSD. V glavnem je ukaz sockstat privzeto nameščen v FreeBSD in se običajno uporablja za prikaz imena procesov, ki so odprli določena omrežna vrata v sistemu FreeBSD.

Sockstat pa lahko prikaže tudi odprte vtičnice glede na različico protokola (obe različici IP), stanje povezave in na katera vrata se demon ali program poveže in posluša.

Prikazuje lahko tudi medprocesne komunikacijske vtičnice, običajno znane kot Unix domenske vtičnice ali IPC. Ukaz Sockstat v kombinaciji s pripomočkom awk se izkaže za močno orodje za niz lokalnih omrežij.

Rezultate za odprto povezavo lahko zmanjša na podlagi uporabnika, ki je lastnik vtičnice, deskriptorja datoteke omrežne vtičnice ali PID procesa, ki je odprl vtičnico.

V tem priročniku bomo našteli nekaj pogostih primerov uporabe, vendar tudi zelo zmogljivega omrežnega pripomočka za ukazno vrstico sockstat v FreeBSD.

  1. Navodila za namestitev FreeBSD 11.1

1. Seznam vseh odprtih vrat v FreeBSD

Preprosto izvedeno brez možnosti ali stikal, ukaz sockstat prikaže vse odprte vtičnice v sistemu FreeBSD, kot je prikazano na spodnjem posnetku zaslona.

# sockstat

Vrednosti, prikazane na izhodu sockstat, so opisane kot:

  • UPORABNIK: Lastnik (uporabniški račun) vtičnice.
  • COMMAND: Ukaz, ki je odprl vtičnico.
  • PID: ID procesa ukaza, ki je lastnik vtičnice.
  • FD: Številka deskriptorja datoteke vtičnice.
  • PROTO: Transportni protokol (običajno TCP/UDP), povezan z odprto vtičnico ali vrsto vtičnice v primeru vtičnic domene unix (datagram, tok ali seqpac) za vtičnice UNIX.
  • LOKALNI NASLOV: Predstavlja lokalni naslov IP za vtičnice, ki temeljijo na IP. V primeru vtičnic Unix predstavlja ime datoteke končne točke, pritrjeno na vtičnico. Zapis \"??" pomeni, da končne točke vtičnice ni bilo mogoče prepoznati ali vzpostaviti.
  • TUJI NASLOV: Oddaljeni naslov IP, na katerega je priključena vtičnica.

2. Seznam poslušanih ali odprtih vrat v FreeBSD

Izveden z zastavico -l , bo ukaz sockstat prikazal vse vtičnice za poslušanje, odprte v omrežnem skladu, in vse odprte vtičnice domene unix ali imenovane cevi, ki sodelujejo pri nekakšni lokalni obdelavi podatkov v sistemu.

# sockstat -l

3. Navedite odprta vrata IPv4 v FreeBSD

Če želite prikazati vse odprte vtičnice samo za protokol IPv4, izdajte ukaz z zastavico -4 , kot je predlagano v spodnjem primeru.

# sockstat -4

4. Navedite odprta vrata IPv6 v FreeBSD

Podobno kot pri različici IPv4 lahko tudi odprte omrežne vtičnice prikažete samo za IPv6, tako da izdate ukaz, kot je prikazano spodaj.

# sockstat -6

5. Navedite vrata TCP ali UDP, odprta v FreeBSD

Za prikaz omrežnih vtičnic, ki temeljijo le na določenem omrežnem protokolu, na primer TCP ali UDP, uporabite zastavico -P , čemur sledi ime argumenta protokola.

Imena protokolov lahko najdete tako, da pregledate vsebino datoteke/etc/protocols. Trenutno orodje sockstat ne podpira protokola ICMP.

# sockstat -P tcp
# sockstat -P udp

Povežite oba protokola.

# sockstat –P tcp,udp

6. Navedite številke vrat TCP in UDP

Če želite prikazati vse odprte vtičnice TCP ali UDP IP glede na lokalno ali oddaljeno številko vrat, uporabite spodnje ukazne zastavice in skladnjo, kot je prikazano na spodnjem posnetku zaslona.

# sockstat -P tcp -p 443             [Show TCP HTTPS Port]
# sockstat -P udp -p 53              [Show UDP DNS Port] 
# sockstat -P tcp -p 443,53,80,21    [Show Both TCP and UDP]

7. Seznam odprtih in povezanih vrat v FreeBSD

Če želite prikazati vse odprte in priključene vtičnice, uporabite zastavico -c . Kot je prikazano v spodnjih vzorcih, lahko z izdajo ukazov navedete vse povezane vtičnice HTTPS ali vse vtičnice, povezane s TCP.

# sockstat -P tcp -p 443 -c
# sockstat -P tcp -c

8. Naštejte vrata za poslušanje omrežja v FreeBSD

Če želite prikazati vse odprte vtičnice TCP v stanju poslušanja, dodajte zastavici -l in -s , kot je prikazano v spodnjem primeru. Ker je protokol brez povezave, UDP ne vsebuje nobenih informacij o stanju povezave.

Odprtih vtičnic UDP ni mogoče prikazati z uporabo njihovega stanja, ker protokol udp uporablja datagrame za pošiljanje/sprejemanje podatkov in nima vgrajenega mehanizma za določanje stanja povezave.

# sockstat -46 -l -s

9. Navedite Unix vtičnice in imenovane cevi

Unique domenske vtičnice in druge oblike lokalne medprocesne komunikacije, kot so imenovane cevi, se lahko prikažejo z ukazom sockstat z uporabo zastavice -u , kot je prikazano na spodnji sliki.

# sockstat -u

10. Navedite vrata, ki jih aplikacija odpre v FreeBSD

Izhod ukaza Sockstat lahko filtrirate prek pripomočka grep, da prikažete seznam vrat, ki jih odpre določena aplikacija ali ukaz.

Recimo, da želite navesti vse vtičnice, povezane s spletnim strežnikom Nginx, lahko za dosego naloge izdate naslednji ukaz.

# sockstat -46 | grep nginx

Če želite prikazati samo povezane vtičnice, povezane s spletnim strežnikom Nginx, izdajte naslednji ukaz.

# sockstat -46 -c| grep nginx

11. Seznam povezanih protokolov HTTPS

Lahko prikažete vse povezane vtičnice, povezane s protokolom HTTPS, skupaj s stanjem vsake povezave, tako da zaženete spodnji ukaz.

# sockstat -46 -s -P TCP -p 443 -c

12. Navedite oddaljene vtičnice HTTP

Če želite prikazati vse oddaljene vtičnice, povezane s protokolom HTTP, lahko zaženete eno od naslednjih kombinacij ukazov.

# sockstat -46 -c | egrep '80|443' | awk '{print $7}' | uniq -c | sort -nr
# sockstat -46 -c -p 80,443 | grep -v ADDRESS|awk '{print $7}' | uniq -c | sort -nr

13. Poiščite najvišje zahteve HTTP po naslovih IP

Če želite ugotoviti, koliko povezav HTTP zahteva vsak oddaljeni naslov IP, izdajte spodnji ukaz. Ta ukaz je lahko zelo koristen, če želite ugotoviti, ali je vaš spletni strežnik pod nekakšnim DDOS napadom. V primeru suma morate raziskati naslove IP z najvišjo stopnjo zahtev.

# sockstat -46 -c | egrep '80|443' | awk '{print $7}' | cut -d: -f1 | uniq -c | sort –nr

14. Seznam odprtih vtičnic DNS

Če ste v svojih prostorih konfigurirali predpomnilniški in posredovalni strežnik DNS, da služi notranjim odjemalcem prek transportnega protokola TCP in želite prikazati seznam vseh vtičnic
ki ga je odprl razreševalec, skupaj s stanjem vsake povezave vtičnice izvedite naslednji ukaz.

# sockstat -46 -P tcp –p 53 -s

15. Vprašajte DNS TCP na lokalni domeni

Če v omrežju ni prometa DNS, lahko ročno sprožite poizvedbo DNS v vtičnici TCP s konzole lokalnega računalnika, tako da izvedete naslednji ukaz dig. Nato izdajte zgornji ukaz, da prikažete vse vtičnice razreševalnika.

# dig +tcp  www.domain.com  @127.0.0.1

To je vse! Poleg pripomočkov ukazne vrstice lsof je ukazna vrstica sockstat zmogljiv pripomoček, ki se uporablja za pridobivanje informacij o omrežju in odpravljanje težav z več vidiki omrežnega sklada FreeBSD ter procesov in storitev, povezanih z mreženjem.

Protipostavko ukaza FreeBSD sockstat v Linuxu predstavlja netstat ali nov ukaz ss. Verjeli ali ne, na podlagi pripomočka sockstat lahko najdete podobno aplikacijo, razvito za OS Android, z imenom SockStat - Simple Netstat GUI.