Weboldal keresés

15 Hasznos 'Sockstat parancspélda' a FreeBSD nyitott portjainak megtalálásához


A Sockstat egy sokoldalú parancssori segédprogram, amely a hálózaton és a rendszeren megnyitott socketek megjelenítésére szolgál a FreeBSD-ben. Főleg a sockstat parancs alapértelmezés szerint telepítve van a FreeBSD-ben, és általában azon folyamatok nevének megjelenítésére használják, amelyek egy adott hálózati portot nyitottak meg a FreeBSD rendszeren.

A sockstat azonban a protokoll verziója (mindkét IP-verzió), a kapcsolat állapota, valamint a démon vagy program milyen portokra köti és figyeli a megnyitott socketeket is listázhatja.

Olvassa el még: 20 hasznos „netstat” parancs példa a hálózati kapcsolatok ellenőrzéséhez

Megjelenítheti a folyamatok közötti kommunikációs socketeket is, amelyeket általában Unix tartományi socketeknek vagy IPC-nek neveznek. A grep szűrővel kombinált vagy az awk segédprogramon keresztül továbbított Sockstat parancs hatékony eszköznek bizonyul a helyi hálózati verem számára.

Csökkentheti a megnyitott kapcsolat eredményeit a socketet birtokló felhasználó, a hálózati socket fájlleírója vagy a socketet megnyitó folyamat PID-je alapján.

Ebben az útmutatóban felsorolunk néhány gyakori, de nagyon hatékony felhasználási példát a sockstat parancssori hálózati segédprogramjára a FreeBSD-ben.

Követelmények

  1. FreeBSD 11.1 telepítési útmutató

1. Sorolja fel az összes megnyitott portot a FreeBSD-ben

Egyszerűen végrehajtva, opciók és kapcsolók nélkül, a sockstat parancs megjeleníti az összes megnyitott socketet a FreeBSD rendszerben, ahogy az alábbi képernyőképen is látható.

sockstat

A sockstat kimenetén megjelenő értékek leírása a következő:

  • USER : A socket tulajdonosa (felhasználói fiókja).
  • COMMAND : A parancs, amely megnyitotta a socketet.
  • PID : A socketet birtokló parancs folyamatazonosítója.
  • FD : A socket fájlleíró száma.
  • PROTO : A megnyitott sockethez vagy socket típushoz társított szállítási protokoll (általában TCP/UDP) unix tartomány socketek (datagram, adatfolyam vagy seqpac) esetén UNIX socketekhez.
  • HELYI CÍM: Az IP-alapú socket-ek helyi IP-címe. Unix socketek esetén a sockethez csatolt végpont fájlnevet jelenti. A ? ” jelölés arra utal, hogy a socket végpontot nem lehetett felismerni vagy létrehozni.
  • IDEGEN CÍM : Az a távoli IP-cím, amelyhez az aljzat csatlakozik.

2. Sorolja fel a figyelő vagy megnyitott portokat a FreeBSD-ben

A -l kapcsolóval végrehajtott sockstat parancs megjeleníti a hálózati veremben megnyitott összes lehallgató socketet, valamint az összes megnyitott unix tartományi socketet vagy elnevezett vezetéket, amelyek valamilyen helyi adatfeldolgozásban vesznek részt a rendszerben.

sockstat -l

3. Sorolja fel a FreeBSD-ben megnyitott IPv4-portokat

Ha az összes megnyitott socketet csak az IPv4 protokollhoz szeretné megjeleníteni, adja ki a parancsot a -4 jelzővel, az alábbi példában javasolt módon.

sockstat -4

4. Sorolja fel a FreeBSD IPv6 megnyitott portjait

Az IPv4-es verzióhoz hasonlóan a megnyitott hálózati socketeket is megjelenítheti csak IPv6 esetén az alábbi parancs kiadásával.

sockstat -6

5. Sorolja fel a FreeBSD TCP vagy UDP megnyitott portjait

Ha csak meghatározott hálózati protokollon (például TCP vagy UDP) alapuló hálózati socketeket szeretne megjeleníteni, használja a -P jelzőt, majd a a protokoll argumentum neve.

A protokollneveket az /etc/protocols fájl tartalmának ellenőrzésével találhatja meg. Jelenleg az ICMP protokollt nem támogatja a sockstat eszköz.

Csak a TCP socketek megjelenítése
sockstat -P tcp

Csak az UDP socketeket jelenítse meg
sockstat -P udp

Láncolja mindkét protokollt.

sockstat –P tcp,udp

6. Sorolja fel a TCP- és UDP-specifikus portszámokat

Ha meg szeretné jeleníteni az összes TCP vagy UDP IP megnyitott socketet a helyi vagy távoli portszám alapján, használja az alábbi parancsjelzőket és szintaxist, az alábbi képernyőképen látható módon.

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. Sorolja fel a FreeBSD megnyitott és csatlakoztatott portjait

Az összes megnyitott és csatlakoztatott socket megjelenítéséhez használja a -c jelzőt. Ahogy az alábbi mintákon is látható, a parancsok kiadásával listázhatja az összes HTTPS csatlakoztatott socketet vagy az összes TCP-hez csatlakoztatott socketet.

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

8. Sorolja fel a hálózati figyelő portokat a FreeBSD-ben

Az összes nyitott TCP socket figyelési állapotban felsorolásához fűzze hozzá a -l és a -s jelzőket, az alábbi példában látható módon. Mivel kapcsolat nélküli protokoll, az UDP nem tárol információt a kapcsolat állapotáról.

Az UDP megnyitott socketek állapotuk használatával nem jeleníthetők meg, mivel az udp protokoll datagramokat használ az adatok küldésére/fogadására, és nincs beépített mechanizmusa a kapcsolat állapotának meghatározására.

sockstat -46 -l -s

9. Sorolja fel a Unix socketeket és az elnevezett csöveket

A Unix tartományi socketek, valamint a helyi folyamatok közötti kommunikáció egyéb formái, például az elnevezett csövek, megjeleníthetők a sockstat paranccsal a -u jelző használatával, az alábbi képen látható módon.

sockstat -u

10. Sorolja fel a FreeBSD alkalmazás által megnyitott portokat

A Sockstat parancs kimenete szűrhető a grep segédprogramon keresztül, hogy megjelenítse az adott alkalmazás vagy parancs által megnyitott portok listáját.

Tegyük fel, hogy listázni szeretné az Nginx webszerverhez társított összes socketet, a feladat végrehajtásához kiadhatja a következő parancsot.

sockstat -46 | grep nginx

Ha csak az Nginx webszerverhez tartozó csatlakoztatott socketeket szeretné megjeleníteni, adja ki a következő parancsot.

sockstat -46 -c| grep nginx

11. Sorolja fel a HTTPS-hez csatlakoztatott protokollokat

Az alábbi parancs futtatásával listázhatja a HTTPS protokollhoz társított összes csatlakoztatott socketet az egyes kapcsolatok állapota mellett.

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

12. Sorolja fel a HTTP távoli socketeket

A HTTP protokollhoz társított összes távoli socket listázásához futtassa a következő parancskombinációk egyikét.

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. Keresse meg a legmagasabb HTTP-kéréseket IP-címek alapján

Ha meg szeretné tudni, hogy az egyes távoli IP-címek hány HTTP-kapcsolatot kérnek, adja ki az alábbi parancsot. Ez a parancs nagyon hasznos lehet abban az esetben, ha meg szeretné állapítani, hogy a webszerver valamilyen DDOS támadás alatt áll-e. Gyanú esetén érdemes megvizsgálni a legmagasabb kérési arányú IP-címeket.

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

14. Sorolja fel a DNS megnyitott socketeket

Ha beállított egy gyorsítótárazó és továbbító DNS-kiszolgálót a telephelyén, hogy a belső ügyfeleket TCP-átviteli protokollon keresztül szolgálja ki, és meg szeretné jeleníteni az összes socket listáját
a feloldó által megnyitott, az egyes socket-kapcsolatok állapotával együtt hajtsa végre a következő parancsot.

sockstat -46 -P tcp –p 53 -s

15. TCP DNS lekérdezése helyi tartományban

Ha nincs DNS-forgalom a hálózaton, manuálisan indíthat DNS-lekérdezést a TCP-foglalatban a helyi gép konzoljáról a következő dig parancs futtatásával. Ezután adja ki a fenti parancsot az összes feloldó socket listázásához.

dig +tcp  www.domain.com  @127.0.0.1

Ez minden! A netstat és az lsof parancssori segédprogramok mellett a sockstat parancssor egy hatékony segédprogram hálózati információk megszerzésére, valamint a FreeBSD hálózati verem és a hálózattal kapcsolatos folyamatok és szolgáltatások számos aspektusának hibaelhárítására.

A FreeBSD sockstat parancs megfelelőjét Linuxban a netstat vagy az újonnan ss parancs képviseli. Akár hiszi, akár nem, a sockstat segédprogram alapján találhat egy hasonló, Android operációs rendszerre fejlesztett alkalmazást SockStat – Simple Netstat GUI néven.