שימוש בפקודה netstat ב- Linux

למד מה הפקודה netstat וכמה מהדוגמאות בזמן אמת.


netstat (סטטיסטיקת רשת) הוא כלי שורת פקודה המציג חיבורי רשת (נכנסים ויוצאים כאחד), טבלאות ניתוב ומספר נתונים סטטיסטיים של ממשקי רשת..

זה זמין במערכות הפעלה לינוקס, דמויות יוניקס ומערכות חלונות. netstat הוא חזק ויכול להיות כלי שימושי לפתור בעיות הקשורות לרשת ולאמת סטטיסטיקות חיבור.

אם אתה מקליד netstat-עזרה, תקבל את הנחיות השימוש הבאות.

[[מוגן בדוא”ל] ~] # netstat-עזרה
שימוש: netstat [-vWeenNcCF] [] -r netstat {-V | –version | -h | –help}
netstat [-vWnNcaeol] […]
netstat {[-vWeenNac] -I [] | [-veenNac] -i | [-cnNe] -M | -s [-6tuw]} [עיכוב]

-טבלת ניתוב תצוגה r – –
-I, – ממשקים = ​​טבלת ממשקי תצוגה עבור
-i, – ממשקי תצוגת טבלת ממשקים
-קבוצות קבוצות מציגות חברות לקבוצה מרובת-שידור
-נתונים סטטיסטיים מציגים נתונים סטטיסטיים ברשת (כמו SNMP)
-M, – מסכות מציגה חיבורים מוסווים

-v, – verbose להיות מילולי
-W, בכל רחבי אל תפחיתו כתובות IP
-n, – המספר לא פותר שמות
–מארחים מספריים אינם פותרים שמות מארחים
–יציאות מספריות אינן פותרות שמות יציאות
–משתמשים מספריים אינם פותרים שמות משתמשים
-N, – שמות חומרה סימבוליים לפתור
-e, – תוספת להציג מידע נוסף / נוסף
-p, – התוכניות מציגות שם PID / שם התוכנית לשקעים
-o, – זמני תצוגת טיימרים
-ג, – רישום רציף

-l, – שקעי שרת האזנה לתצוגה
-א, – להציג את כל השקעים (ברירת מחדל: מחובר)
-F, – הצגת תצוגת מידע בסיס העברת נתונים (ברירת מחדל)
-מטמון ניתוב תצוגה של C, – Cache במקום FIB
-Z, – הקשר מציג הקשר אבטחה SELinux עבור שקעים

= {- t | –tcp} {-u | –udp} {-U | –udplite} {-S | –sctp} {-w | –raw}
{-x | –unix} –ax25 –ipx – netrom
= השתמש ב- ‘-6 | -4’ או ‘-A’ או ‘-‘; ברירת מחדל: inet
רשימת משפחות כתובות אפשריות (התומכות בניתוב):
inet (DARPA Internet) inet6 (IPv6) ax25 (AMPR AX.25)
netrom (AMPR NET / ROM) ipx (Novell IPX) ddp (Appletalk DDP)
x25 (CCITT X.25)
[[מוגן בדוא”ל] ~] #

הרשה לי להראות לך כמה מדוגמאות הפקודה. להלן נבדקים ב- RHEL / CentOS, אבל אני לא רואה שום סיבה לא לעבוד על הפצה אחרת כמו אובונטו..

חיבור מבוסס

אם אתה מחפש את כל החיבורים שהוקמו מהשרת.

[[מוגן בדוא”ל] ~] # netstat -natu | grep ‘הוקמה’
tcp 0 21 68.183.37.102:22 222.186.31.135:21714 הוקם
tcp 0 36 68.183.37.102:22 52.148.155.182:49859 הוקם
tcp 0 0 68.183.37.102:22 61.177.142.158:55481 הוקם
[[מוגן בדוא”ל] ~] #

אם הקמתם הרבה חיבורים ומעוניינים לחפש אחד מה- IP, תוכלו להשתמש ב- grep אחר.

[[מוגן בדוא”ל] ~] # netstat -natu | grep ‘מופעל’ | grep 61.177.142.158
tcp 0 1280 68.183.37.102:22 61.177.142.158:33932 הוקם
[[מוגן בדוא”ל] ~] #

חיבור האזנה

נניח שהתחלתם שירות כלשהו, ​​וזה אמור להאזין ב- IP מסוים: יציאה, זה יהיה שימושי כדי לאמת.

[[מוגן בדוא”ל] ~] # netstat -an | grep ‘LISTEN’
tcp 0 0 127.0.0.1:25 0.0.0.0:* האזנה
tcp 0 0 0.0.0.0:111 0.0.0.0:* האזנה
tcp 0 0 0.0.0.0:22 0.0.0.0:* האזנה
tcp6 0 0 ::: 111 ::: * האזנה
tcp6 0 0 ::: 80 ::: * האזנה
tcp6 0 0 ::: 22 ::: * האזנה
[[מוגן בדוא”ל] ~] #

לחלופין, אתה יכול להשתמש בוויכוח -l כדי להציג את כל ארובות ההאזנה.

[[מוגן בדוא”ל] ~] # netstat -l
חיבורי אינטרנט פעילים (שרתים בלבד)
Proto Recv-Q שלח-Q כתובת מקומית מדינה כתובת חוץ
tcp 0 0 localhost: smtp 0.0.0.0:* האזנה
tcp 0 0 0.0.0.0:sunrpc 0.0.0.0:* האזנה
tcp 0 0 0.0.0.0:ssh 0.0.0.0:* האזנה
tcp6 0 0 [::]: sunrpc [::]: * האזנה
tcp6 0 0 [::]: מטמון האינטרנט [::]: * האזנה
tcp6 0 0 [::]: ssh [::]: * האזנה
udp 0 0 0.0.0.0:805 0.0.0.0:*
udp 0 0 0.0.0.0:sunrpc 0.0.0.0:*
udp 0 0 localhost: 323 0.0.0.0:*
udp6 0 0 [::]: 805 [::]: *
udp6 0 0 [::]: sunrpc [::]: *
udp6 0 0 ip6-localhost: 323 [::]: *
שקעים פעילים של UNIX (שרתים בלבד)
Proto RefCnt דגלים סוג נתיב I-Node צומת
יוניקס 2 [ACC] STREAM LISTENING 15108 / run / dbus / system_bus_socket
יוניקס 2 [ACC] STREAM LISTENING 8202 / run / systemd / journal / stdout
יוניקס 2 [ACC] SEQPACKET LISTENING 12813 / run / udev / control
יוניקס 2 [ACC] STREAM Listening 17542 ציבורי / טנדר
יוניקס 2 [ACC] STREAM LISTENING 15165 /var/run/rpcbind.sock
יוניקס 2 [ACC] STREAM Listening 17546 ציבורי / ניקוי
יוניקס 2 [ACC] STREAM LISTENING 15605 /var/lib/gssproxy/default.sock
יוניקס 2 [ACC] STREAM LISTENING 12706 / run / systemd / private
יוניקס 2 [ACC] STREAM Listening 17549 public / qmgr
יוניקס 2 [ACC] STREAM Listening 17571 ציבורי / סומק
יוניקס 2 [ACC] STREAM Listening 17553 private / tlsmgr
יוניקס 2 [ACC] STREAM Listening 17586 public / showq
יוניקס 2 [ACC] STREAM Listening 17556 פרטי / שכתב
יוניקס 2 [ACC] STREAM Listening 17559 פרטי / הקפצה
יוניקס 2 [ACC] STREAM Listening 17562 פרטי / דחייה
יוניקס 2 [ACC] STREAM Listening 17565 פרטי / עקבות
יוניקס 2 [ACC] STREAM Listening 17568 פרטי / אמת
יוניקס 2 [ACC] STREAM Listening 17574 פרטי / פרוקימיק
יוניקס 2 [ACC] STREAM Listening 17577 פרטי / פרוקסי
יוניקס 2 [ACC] STREAM Listening 17580 פרטי / smtp
יוניקס 2 [ACC] STREAM Listening 17583 פרטי / ממסר
יוניקס 2 [ACC] STREAM Listening 17589 פרטי / שגיאה
יוניקס 2 [ACC] STREAM Listening 17592 פרטי / נסה שוב
יוניקס 2 [ACC] STREAM Listening 17595 פרטי / מחק
יוניקס 2 [ACC] STREAM Listening 17598 פרטי / מקומי
יוניקס 2 [ACC] STREAM Listening 17601 פרטי / וירטואלי
יוניקס 2 [ACC] STREAM Listening 17604 פרטי / lmtp
יוניקס 2 [ACC] STREAM Listening 17607 פרטי / סדן
יוניקס 2 [ACC] STREAM LISTENING 17610 private / scache
יוניקס 2 [ACC] STREAM LISTENING 15606 /run/gssproxy.sock
[[מוגן בדוא”ל] ~] #

נצל את grep כדי לסנן את התוצאות.

מספר היציאה המשמש את PID

אתה יודע שהיישום שלך התחיל ומודע ל- PID (מזהה תהליכים) אך אינך בטוח מה מספר היציאה בו הוא משתמש. הדוגמה הבאה היא PID 3937

[[מוגן בדוא”ל] ~] # netstat -anlp | grep 3937
tcp6 0 0 ::: 80 ::: * האזנה 3937 / httpd
יוניקס 3 [] STREAM CONNECTED 2442387 3937 / httpd
[[מוגן בדוא”ל] ~] #

כפי שאתה יכול לראות, יציאה 80 משמשת ל- PID 3937.

כל סטטיסטיקות הפרוטוקולים

האם נתקלת בהתנתקות תכופה עקב מחיקה של המנה? הוויכוח שלה יראה לך נתונים סטטיסטיים כוללים שבהם אתה יכול לשים לב להודעות המנותקות.

[[מוגן בדוא”ל] ~] # netstat -s
Ip:
731422 סה”כ מנות שהתקבלו
0 מועבר
0 חבילות נכנסות הושלכו
731399 מנות נכנסות נמסרו
787732 בקשות שנשלחו
16 ירדו בגלל מסלול חסר
Icmp:
5277 הודעות ICMP שהתקבלו
הודעת ICMP קלט 120 נכשלה.
שגיאות InCsum: 6
היסטוגרמת קלט של ICMP:
היעד לא ניתן להגיע אליו: 193
פסק זמן במעבר: 16
בקשות הד: 5060
הד עונה: 2
9355 הודעות ICMP נשלחו
0 הודעות ICMP נכשלו
היסטוגרמת פלט של ICMP:
היעד לא ניתן להגיע אליו: 4295
הד עונה: 5060
IcmpMsg:
InType0: 2
InType3: 193
InType8: 5060
InType11: 16
OutType0: 5060
OutType3: 4295
Tcp:
42 פתחי חיבורים פעילים
35226 פתחי חיבור פסיביים
1693 ניסיונות חיבור נכשלים
645 איפוס חיבור התקבל
2 קשרים הוקמו
646705 פלחים שהתקבלו
648037 פלחים נשלחים
99463 קטעים משודרים מחדש
27377 קטעים רעים שהתקבלו.
150893 איפוסים נשלחו
שגיאות InCsum: 27377
Udp:
קיבלו 74547 מנות
4814 מנות לנמל לא ידוע התקבלו.
56 מנות מקבלות שגיאות
74584 חבילות נשלחו
0 מקבלים שגיאות מאגר
0 שגיאות מאגר
שגיאות InCsum: 56
UdpLite:
TcpExt:
177 עוגיות SYN לא חוקיות שהתקבלו
1693 איפוס שהתקבל עבור שקעי SYN_RECV עובריים
316 שקעי TCP זמן סיום המתן בטיימר מהיר
3 מנות דוחות בחיבורים מבוססים בגלל חותמת זמן
70248 עיכובים שנשלחו
6 עיכובים מעוכבים עוד יותר בגלל שקע נעול
מצב ack מהיר מהיר הופעל 3082 פעמים
17 שקעי SYN ל- LISTEN צנחו
28179 מנות עמדו בתור ישירות כדי להמיר מחדש את הכניסה מראש.
9802 בתים שהתקבלו ישירות בהקשר של תהליכים מראש
72106 כותרות מנות חזו
התקבלו 94182 אישורים שלא מכילים עומס נתונים
40094 ניבא אישור
332 פעמים התאוששו מאובדן מנות על ידי אישורים סלקטיביים
8 חלונות עומס התאוששו ללא התחלה איטית על ידי DSACK
1173 חלונות עומס התאוששו ללא התחלה איטית לאחר התאמה חלקית
1029 פסק זמן לאחר התאוששות SACK
8 פסק זמן במצב הפסד
329 שידור מהיר מחדש
3 שידורים חוזרים קדימה
32 שידורים חוזרים בהתחלה איטית
44785 פסק זמן נוסף ל- TCP
TCPLossProbes: 9763
התאוששות TCPLossProbe: 1732
54 שידור חוזר של SACK נכשל
3144 ערכות DSACK שנשלחו למנות ישנות
4 חבילות DSACK שנשלחו למנות שלא הושלמו
695 תקני DSACK התקבלו
1 ערכות DSACK עבור מנות שלא התקבלו
44 חיבורים מתאפסים עקב נתונים לא צפויים
76 חיבורים מתאפסים בגלל סגירת משתמשים מוקדמת
6079 קשרים בוטלו עקב פסק זמן
TCPDSACKIgnoredNoUndo: 448
TCPSpuriousRTOs: 5
TCPSackShiftFallback: 465
IPReversePathFilter: 11
TCPRcvCoalesce: 32369
TCPOFOQueue: 4313
TCPOFOMerge: 4
TCPChallengeACK: 2
TCPSynRetrans: 43670
TCPOrigDataSent: 208010
TCPACKSkippedSeq: 12
IpExt:
InNoRoutes: 12
InOctets: 133789295
OutOctets: 151093769
InNoECTPkts: 731338
INECT1Pkts: 3
INECT0Pkts: 1568
INCEPkts: 108
[[מוגן בדוא”ל] ~] #

מידע על ניתוב ליבה

נתקל בבעיית ניתוב? או קישוריות אינה פועלת כצפוי עקב חיבור היא נסיעה בדרך אחרת?

בדוק במהירות את טבלת הניתוב.

[[מוגן בדוא”ל] ~] # netstat -r
טבלת ניתוב IP של ליבנה
Destination Gateway Genmask דגלים MSS חלון irtt Iface
שער ברירת מחדל 0.0.0.0 UG 0 0 0 eth0
10.16.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
68.183.32.0 0.0.0.0 255.255.240.0 U 0 0 0 eth0
link-local 0.0.0.0 255.255.0.0 U 0 0 0 eth0
[[מוגן בדוא”ל] ~] #

PID המשמש מספר יציאה

מאוד נוח לפתור בעיות בסכסוך בנמל. נניח שאתה מנסה להפעיל את שרת אפאצ’י או Nginx, שמאזין ביציאה 80 אך לא יכול מכיוון שתהליך אחר שכבר משתמש בפורט 80.

[[מוגן בדוא”ל] ~] # netstat -anlp | grep 80 | grep האזנה
tcp6 0 0 ::: 80 ::: * האזנה 3937 / httpd
[[מוגן בדוא”ל] ~] #

ואתה יכול לראות שה- PID 3937 משתמש ביציאה זו.

אם אתה משתמש ב- AIX, אז

netstat -Aan | מספר פורט של grep $

זה יציג את הכתובת של חסימת בקרת הפרוטוקול בהקסדצימלי

ברגע שיש לך הקסדצימלי, אז אתה יכול לבצע למטה כדי לקבל את התהליך שהוא מחזיק מספר יציאה.

rmsock $ address_of_pcb tcpcb

רשימת ממשקי רשת

יש לך ממשקי אתרנט מרובים? או לא בטוח ורוצים לגלות?

[[מוגן בדוא”ל] ~] # netstat -i
שולחן ממשק ליבה
Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0 1500 793026 0 0 0 849443 0 0 0 BMRU
lo 65536 6 0 0 0 6 0 0 0 LRU
[[מוגן בדוא”ל] ~] #

האזנה רציפה

אפשרות מצוינת בעת פתרון בעיות של בעיות הקשורות לקרוס. נניח שאפליקציה מתרסקת באופן אקראי כל כמה דקות. אבל, לא בטוח מתי בדיוק. אתה יכול להשתמש בטיעון -c אשר יציג את התוצאות ברציפות.

[[מוגן בדוא”ל] ~] # netstat -anlpc | grep 8080
tcp6 0 0 ::: 8080 ::: * LISTEN 11766 / httpd
tcp6 0 0 ::: 8080 ::: * LISTEN 11766 / httpd
tcp6 0 0 ::: 8080 ::: * LISTEN 11766 / httpd
tcp6 0 0 ::: 8080 ::: * LISTEN 11766 / httpd

כאשר הוא מפסיק לעדכן, אתה יודע שזה התרסק.

סיכום

netstat היא אחת מהפקודות הנפוצות של sysadmin ואני מקווה שהדוגמאות שלעיל נותנות לך מושג מה אתה יכול לעשות עם זה. אם אתה מחפש ללמוד עוד אודות ניהול Linux, בדוק זאת קורס אודמי.

תגיות:

  • לינוקס

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map