تعرف على أمر netstat وبعض الأمثلة في الوقت الفعلي.
netstat (إحصائيات الشبكة) هي أداة سطر أوامر تعرض اتصالات الشبكة (الواردة والصادرة) ، وجداول التوجيه ، وعددًا من إحصائيات واجهة الشبكة.
وهي متاحة على أنظمة تشغيل Linux و Like-like و Windows. netstat قوي ويمكن أن يكون أداة مفيدة لاستكشاف المشكلات المتعلقة بالشبكة والتحقق من إحصاءات الاتصال.
إذا قمت بكتابة netstat -help ، فستحصل على إرشادات الاستخدام التالية.
[[البريد الإلكتروني محمي] ~] # netstat – مساعدة
الاستخدام: netstat [-vWeenNcCF] [] -r netstat {-V | –version | -h | –help}
netstat [-vWnNcaeol] […]
netstat {[-vWeenNac] -I [] | [-veenNac] -i | [-cnNe] -M | -s [-6tuw]} [تأخير]
-ص ، – جدول توجيه عرض الطريق
-أنا ، – واجهات = عرض جدول واجهة ل
-ط ، – واجهات عرض جدول واجهة
-تعرض g، –groups عضويات مجموعة الإرسال المتعدد
-s ، – تعرض الإحصائيات إحصاءات الشبكات (مثل SNMP)
-M ، – عرض حفلة تنكرية اتصالات متنكرة
-v ، – مطوّل يكون مطوّل
-W ، – على مستوى العالم لا يتم اقتطاع عناوين IP
-n ، – رقمي لا يحل الأسماء
–المضيفون الرقميون لا يحلون أسماء المضيفين
–لا تحل المنافذ الرقمية أسماء المنافذ
–لا يحل المستخدمون الرقميون أسماء المستخدمين
-N ، – أسماء الأجهزة حل رمزي
-e – – تمديد عرض معلومات أخرى / أكثر
-p ، – تعرض البرامج اسم PID / البرنامج للمآخذ
-س ، – المؤقتات عرض الموقتات
-ج ، – الإدراج المستمر المستمر
-ل ، – الاستماع عرض مآخذ الاستماع الاستماع
-a ، –عرض جميع المقابس (افتراضي: متصل)
-F ، –fib عرض قاعدة بيانات إعادة التوجيه (افتراضي)
-C ، – ذاكرة التخزين المؤقت عرض التوجيه المؤقت بدلاً من FIB
-Z ، –context عرض سياق الأمن SELinux للمآخذ
= {- t | –tcp} {-u | –udp} {-U | –udplite} {-S | –sctp} {-w | –raw}
{-x | –unix} –ax25 –ipx –netrom
= استخدم “-6 | -4” أو “-A” أو “-” ؛ الافتراضي: إنت
قائمة بعناوين العناوين المحتملة (التي تدعم التوجيه):
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 ، لكني لا أرى أي سبب لعدم العمل في توزيعة أخرى مثل Ubuntu.
Contents
اتصال مؤسس
إذا كنت تبحث عن جميع الاتصالات القائمة من الخادم.
[[البريد الإلكتروني محمي] ~] # 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 “الاستماع”
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 Send-Q Local Address State Foreign State
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 [::]: webcache [::]: * LISTEN
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 النشطة (الخوادم فقط)
أعلام بروتو RefCnt نوع حالة مسار العقدة الأولى
يونيكس 2 [ACC] STREAM LISTENING 15108 / run / dbus / system_bus_socket
يونيكس 2 [ACC] STREAM LISTENING 8202 / run / systemd / journal / stdout
unix 2 [ACC] الاستماع إلى حزم حزم 12813 / run / udev / control
unix 2 [ACC] STREAM LISTENING 17542 جمهور / بيك اب
يونيكس 2 [ACC] STREAM LISTENING 15165 /var/run/rpcbind.sock
unix 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 public / flush
يونيكس 2 [ACC] STREAM LISTENING 17553 خاص / tlsmgr
يونيكس 2 [ACC] STREAM LISTENING 17586 public / showq
unix 2 [ACC] الاستماع إلى البث 17556 خاص / إعادة كتابة
unix 2 [ACC] تدفق البث 17559 خاص / وثب
يونيكس 2 [ACC] STREAM LISTENING 17562 خاص / مؤجل
يونكس 2 [ACC] STREAM LISTENING 17565 خاص / أثر
unix 2 [ACC] STREAM LISTENING 17568 خاص / تحقق
يونيكس 2 [ACC] STREAM LISTENING 17574 خاص / بروكسي ماب
يونيكس 2 [ACC] STREAM LISTENING 17577 خاص / proxywrite
يونيكس 2 [ACC] STREAM LISTENING 17580 خاص / smtp
يونيكس 2 [ACC] STREAM LISTENING 17583 خاص / مرحل
unix 2 [ACC] بث البث 17589 خاص / خطأ
يونيكس 2 [ACC] STREAM LISTENING 17592 خاص / إعادة المحاولة
يونكس 2 [ACC] STREAM LISTENING 17595 خاص / تجاهل
unix 2 [ACC] بث البث 17598 خاص / محلي
يونيكس 2 [ACC] STREAM LISTENING 17601 خاص / افتراضي
يونكس 2 [ACC] STREAM LISTENING 17604 خاص / lmtp
يونيكس 2 [ACC] STREAM LISTENING 17607 خاص / سندان
يونيكس 2 [ACC] STREAM LISTENING 17610 خاص / مخبأ
يونيكس 2 [ACC] ستريم الاستماع 15606 /run/gssproxy.sock
[[البريد الإلكتروني محمي] ~] #
الاستفادة من grep لتصفية النتائج.
رقم المنفذ المستخدم بواسطة PID
أنت تعرف أن تطبيقك بدأ ويدرك PID (معرف العملية) ولكنك لست متأكدًا من رقم المنفذ الذي يستخدمه. المثال أدناه هو PID 3937
[[البريد الإلكتروني محمي] ~] # netstat -anlp | grep 3937
tcp6 0 0 ::: 80 ::: * الاستماع 3937 / httpd
UNIX 3 [] STREAM CONNECTED 2442387 3937 / httpd
[[البريد الإلكتروني محمي] ~] #
كما ترى ، يتم استخدام المنفذ 80 لـ PID 3937.
جميع إحصائيات البروتوكولات
هل لديك انقطاع متكرر بسبب تجاهل الحزمة؟ ستعرض لك وسيطة -s الإحصائيات العامة حيث يمكنك الانتباه إلى حزم الرسائل المهملة.
[[البريد الإلكتروني محمي] ~] # netstat -s
Ip:
تم استلام 731422 حزمة
0 معاد توجيهها
تم تجاهل 0 الحزم الواردة
تم تسليم الحزم الواردة 731399
تم إرسال 787732 طلبًا
انخفض 16 بسبب الطريق المفقود
Icmp:
تم استلام 5277 رسالة ICMP
فشل 120 رسالة إدخال ICMP.
أخطاء المراسيم: 6
الرسم البياني لإدخال ICMP:
وجهة غير قابلة للوصول: 193
مهلة العبور: 16
طلبات الصدى: 5060
ردود الصدى: 2
تم إرسال 9355 رسالة ICMP
فشل 0 رسائل ICMP
الرسم البياني لمخرجات ICMP:
الوجهة غير قابلة للوصول: 4295
ردود الصدى: 5060
IcmpMsg:
النوع 0: 2
النوع 3: 193
InType 8: 5060
النوع 11: 16
نوع 0: 5060
نوع 3: 4295
Tcp:
42 فتحة اتصالات نشطة
35226 فتحات اتصال سلبية
1693 محاولات اتصال فاشلة
تم استلام 645 إعادة اتصال
تم إنشاء اتصالين
تم استلام 646705 قطعة
648037 قطاعات ترسل
99463 قطعة أعيد إرسالها
تم استلام 27377 قطعة سيئة.
تم إرسال 150893 إعادة تعيين
أخطاء InCum: 27377
Udp:
تم استلام 74547 حزمة
تم استلام 4814 رزمة إلى منفذ غير معروف.
56 أخطاء تلقي الحزمة
تم إرسال 74584 حزمة
0 تلقي أخطاء المخزن المؤقت
0 إرسال أخطاء المخزن المؤقت
أخطاء المراسيم: 56
UdpLite:
TcpExt:
تم استلام 177 ملف تعريف ارتباط SYN غير صالح
تم استلام 1693 إعادة تعيين لمآخذ SYN_RECV الجنينية
316 مآخذ TCP الانتهاء من الانتظار في توقيت سريع
3 حزم ترفض في الاتصالات القائمة بسبب الطابع الزمني
تم إرسال 70248 مؤخرًا
تأخر 6 أكاس أكثر تأخرا بسبب مقبس مغلق
تم تنشيط وضع ack السريع 3082 مرة
تم إسقاط 17 SYNs إلى LISTEN مآخذ
28179 الحزم في قائمة الانتظار مباشرة إلى recvmsg prequeue.
9802 بايت يتم استقبالها مباشرة في سياق العملية من prequeue
توقع 72106 رؤوس حزم
تم استلام 94182 إقرارًا لا يحتوي على حمولة البيانات
40094 توقع شكر وتقدير
تم استرداد 332 مرة من فقدان الحزم عن طريق الإقرارات الانتقائية
تم استعادة 8 نوافذ ازدحام دون بداية بطيئة بواسطة DSACK
تم استعادة 1173 نافذة ازدحام دون بداية بطيئة بعد مرور جزء من الوقت
1029 مهلة بعد استرداد SACK
8 مهلات في حالة الخسارة
329 إعادة إرسال سريعة
3 عمليات إعادة إرسال أمامية
32 إعادة إرسال في بداية بطيئة
44785 مهلة TCP أخرى
TCPLossProbes: 9763
TCPLossProbeRecovery: 1732
فشل 54 عملية إعادة إرسال SACK
تم إرسال 3144 DSACKs للحزم القديمة
أرسلت 4 DSACKs لحزم خارج الترتيب
تم استلام 695 DSACKs
تلقى 1 DSACKs للحزم خارج الترتيب
تمت إعادة تعيين 44 اتصالًا بسبب بيانات غير متوقعة
تمت إعادة تعيين 76 اتصالًا بسبب الإغلاق المبكر للمستخدم
تم إحباط 6079 اتصالاً بسبب انتهاء المهلة
تم تجاهل TCPDSACK: 448
TCPSpuriousRTOs: 5
رد: 465
IPReversePathFilter: 11
TCPRcvCoalesce: 32369
قائمة الانتظار: 4313
الدمج: 4
TCPChallengeACK: 2
TCPSynRetrans: 43670
TCPOrigDataSent: 208010
TCPACKSkippedSeq: 12
IpExt:
InNoRoutes: 12
InOctets: 133789295
OutOctets: 151093769
InNoECTPkts: 731338
InECT1Pkts: 3
INECT0Pkts: 1568
inCEPkts: 108
[[البريد الإلكتروني محمي] ~] #
معلومات توجيه Kernel
هل تواجه مشكلة في التوجيه؟ أو أن الاتصال لا يعمل كما هو متوقع نظرًا لأن الاتصال يسير عبر مسار مختلف?
تحقق بسرعة من جدول التوجيه.
[[البريد الإلكتروني محمي] ~] # netstat -r
جدول توجيه Kernel IP
بوابة الوجهة Genmask Flags MSS Window 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
ارتباط محلي 0.0.0.0 255.255.0.0 U 0 0 0 eth0
[[البريد الإلكتروني محمي] ~] #
PID المستخدم بواسطة رقم المنفذ
مفيد جدا لاستكشاف مشكلة تعارض المنفذ. لنفترض أنك تحاول بدء خادم Apache أو Nginx ، والذي يصغي على المنفذ 80 ولكن لا يمكن ذلك لأن بعض العمليات الأخرى تستخدم بالفعل المنفذ 80.
[[البريد الإلكتروني محمي] ~] # netstat -anlp | grep 80 | الاستماع
tcp6 0 0 ::: 80 ::: * الاستماع 3937 / httpd
[[البريد الإلكتروني محمي] ~] #
ويمكنك أن ترى أن PID 3937 يستخدم هذا المنفذ.
إذا كنت تستخدم AIX ، ثم
نتستات -Aan | grep $ portnumber
سيؤدي ذلك إلى عرض عنوان كتلة التحكم بالبروتوكول بالنظام الست عشري
بمجرد أن يكون لديك سداسي عشري ، يمكنك تنفيذ أدناه للحصول على العملية التي تحتفظ برقم منفذ.
rmsock $ address_of_pcb tcpcb
قائمة واجهات الشبكة
هل لديك واجهات إيثرنت متعددة؟ أو غير متأكد وتريد معرفة ذلك?
[[البريد الإلكتروني محمي] ~] # netstat -i
جدول واجهة Kernel
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
لو 65536 6 0 0 0 6 0 0 0 LRU
[[البريد الإلكتروني محمي] ~] #
الاستماع المستمر
خيار ممتاز عند تعطل خدمات استكشاف المشكلات ذات الصلة. لنفترض أن أحد التطبيقات يتعطل بشكل عشوائي كل بضع دقائق. ولكن ، لست متأكدا متى بالضبط. يمكنك استخدام الوسيطة -c التي ستظهر النتائج باستمرار.
[[البريد الإلكتروني محمي] ~] # netstat -anlpc | grep 8080
tcp6 0 0 ::: 8080 ::: * الاستماع 11766 / httpd
tcp6 0 0 ::: 8080 ::: * الاستماع 11766 / httpd
tcp6 0 0 ::: 8080 ::: * الاستماع 11766 / httpd
tcp6 0 0 ::: 8080 ::: * الاستماع 11766 / httpd
عندما يتوقف عن التحديث ، فأنت تعلم أنه تعطل.
استنتاج
netstat هي واحدة من الأوامر المستخدمة على نطاق واسع من قبل مسؤول النظام ، وآمل أن تعطيك الأمثلة المذكورة أعلاه فكرة حول ما يمكنك القيام به به. إذا كنت تتطلع إلى معرفة المزيد عن إدارة Linux ، فراجع هذا بالطبع Udemy.
العلامات:
لينكس