كيفية استخدام الأمر ss على نظام Linux
نشرت: 2022-01-29 الأمر ss
هو بديل حديث لـ netstat
الكلاسيكي. يمكنك استخدامه على Linux للحصول على إحصائيات حول اتصالات الشبكة الخاصة بك. إليك كيفية العمل باستخدام هذه الأداة المفيدة.
الأمر ss مقابل netstat
يعطيك ss
، كبديل لأمر netstat
المهمل ، معلومات مفصلة حول كيفية اتصال الكمبيوتر بأجهزة الكمبيوتر والشبكات والخدمات الأخرى.
يعرض ss
إحصائيات بروتوكول التحكم في الإرسال (TCP) ، وبروتوكول مخطط بيانات المستخدم (UDP) ، و Unix (interprocess) ، والمآخذ الأولية. تعمل المقابس الأولية على مستوى OSI للشبكة ، مما يعني أنه يجب معالجة رؤوس TCP و UDP بواسطة برنامج التطبيق ، وليس بواسطة طبقة النقل. تستخدم كل من رسائل بروتوكول رسائل التحكم في الإنترنت (ICMP) وأداة ping المساعدة مآخذ توصيل أولية.
باستخدام ss
لست مضطرًا إلى تثبيت ss
، لأنها بالفعل جزء من توزيعة Linux حديثة. ومع ذلك ، يمكن أن يكون ناتجها طويلاً جدًا - لدينا نتائج تحتوي على أكثر من 630 سطرًا. النتائج أيضا واسعة جدا.
لهذا السبب ، قمنا بتضمين تمثيلات نصية للنتائج التي حصلنا عليها ، لأنها لن تتناسب مع لقطة الشاشة. لقد قمنا بقصها لجعلها أكثر قابلية للإدارة.
سرد اتصالات الشبكة
يسرد استخدام ss
بدون خيارات سطر الأوامر مآخذ التوصيل التي لا تستمع. أي أنه يسرد المنافذ التي ليست في حالة الاستماع.
لمشاهدة هذا ، اكتب ما يلي:
ss
Netid State Recv-Q Send-Q العنوان المحلي: Port Peer Address: Port Process u_str ESTAB 0 0 * 41826 * 41827 u_str ESTAB 0 0 / run / systemd / journal / stdout 35689 * 35688 u_str ESTAB 0 0 * 35550 * 35551 ... u_str ESTAB 0 0 * 38127 * 38128 u_str ESTAB 0 0 / تشغيل / dbus / system_bus_socket 21243 * 21242 u_str ESTAB 0 0 * 19039 * 19040 u_str ESTAB 0 0 / run / systemd / journal / stdout 18887 * 18885 u_str ESTAB 0 0 / تشغيل / dbus / system_bus_socket 19273 * 17306 icmp6 UNCONN 0 0 *: ipv6-icmp *: * udp ESTAB 0 0192.168.4.28٪ enp0s3: bootpc 192.168.4.1:bootps
الأعمدة هي كما يلي:
- Netid : نوع المقبس. في مثالنا ، لدينا "u_str" و "دفق Unix" و "udp" و "icmp6" ، وهو مقبس ICMP من الإصدار 6 من IP. يمكنك العثور على مزيد من الأوصاف لأنواع مقابس Linux في صفحات Linux man.
- الحالة : الحالة التي يوجد بها المقبس.
- Recv-Q : عدد الحزم المتلقاة.
- Send-Q : عدد الحزم المرسلة.
- العنوان المحلي: المنفذ : العنوان المحلي والمنفذ (أو قيم مكافئة لمآخذ Unix).
- عنوان النظير: المنفذ : العنوان البعيد والمنفذ (أو قيم مكافئة لمآخذ Unix).
بالنسبة لمآخذ توصيل UDP ، يكون عمود "الحالة" فارغًا عادةً. بالنسبة لمآخذ TCP يمكن أن يكون واحدًا مما يلي:
- الاستماع: الخادم فقط. المقبس ينتظر طلب اتصال.
- SYN-SENT: من جانب العميل فقط. قدم هذا المقبس طلب اتصال وينتظر لمعرفة ما إذا كان قد تم قبوله.
- تم استلام SYN: من جانب الخادم فقط. هذا المقبس في انتظار إقرار الاتصال بعد قبول طلب الاتصال.
- التأسيس: الخادم والعملاء. تم إنشاء اتصال عملي بين الخادم والعميل ، مما يسمح بنقل البيانات بين الاثنين.
- FIN-WAIT-1: الخادم والعملاء. هذا المقبس ينتظر طلب إنهاء الاتصال من المقبس البعيد ، أو إقرار بطلب إنهاء الاتصال الذي تم إرساله مسبقًا من هذا المقبس.
- FIN-WAIT-2: الخادم والعملاء. هذا المقبس ينتظر طلب إنهاء الاتصال من المقبس البعيد.
- CLOSE-WAIT: الخادم والعميل. هذا المقبس ينتظر طلب إنهاء الاتصال من المستخدم المحلي.
- الإغلاق: الخادم والعملاء. هذا المقبس في انتظار إقرار طلب إنهاء الاتصال من المقبس البعيد.
- ACK الأخير: الخادم والعميل. ينتظر هذا المقبس إقرارًا بطلب إنهاء الاتصال الذي أرسله إلى المقبس البعيد.
- وقت الانتظار: الخادم والعملاء. أرسل هذا المقبس إقرارًا إلى المقبس البعيد لإعلامه بأنه تلقى طلب إنهاء المقبس البعيد. إنه ينتظر الآن للتأكد من استلام هذا الإقرار.
- مغلق: لا يوجد اتصال ، لذلك تم إنهاء المقبس.
قائمة مآخذ الاستماع
لرؤية مآخذ الاستماع ، سنضيف الخيار -l
(الاستماع) ، مثل:
ss -l
Netid State Recv-Q Send-Q العنوان المحلي: Port Peer Address: Port Process nl UNCONN 0 0 rtnl: NetworkManager / 535 * nl UNCONN 0 0 rtnl: Evolution-addre / 2987 * ... u_str LISTEN 0 4096 / run / systemd / private 13349 * 0 u_seq LISTEN 0 4096 / run / udev / control 13376 * 0 u_str LISTEN 0 4096 /tmp/.X11-unix/X0 33071 * 0 u_dgr UNCONN 0 0 / run / systemd / journal / syslog 13360 * 0 u_str الاستماع 0 4096 /run/systemd/fsck.progress 13362 * 0 u_dgr UNCONN 0 0 / run / user / 1000 / systemd / notify 32303 * 0
كل هذه المقابس غير متصلة وتستمع. يعني "rtnl" توجيه netlink ، والذي يستخدم لنقل المعلومات بين عمليات kernel و userpace.
سرد جميع المقابس
لسرد جميع المقابس ، يمكنك استخدام الخيار -a
(الكل):
SS -a
Netid State Recv-Q Send-Q العنوان المحلي: Port Peer Address: Port Process nl UNCONN 0 0 rtnl: NetworkManager / 535 * nl UNCONN 0 0 rtnl: Evolution-addre / 2987 * ... u_str LISTEN 0100 عام / عرض 23222 * 0 u_str LISTEN 0100 خاص / خطأ 23225 * 0 u_str LISTEN 0100 خاص / أعد المحاولة 23228 * 0 ... udp UNCONN 0 0 0.0.0.0:631 0.0.0.0:* udp UNCONN 0 0 0.0.0.0:mdns 0.0.0.0:* ... tcp LISTEN 018 [::]: ssh [::]: * tcp LISTEN 0 5 [:: 1]: ipp [::]: * tcp LISTEN 0100 [:: 1]: smtp [::]: *
يحتوي الإخراج على جميع المقابس ، بغض النظر عن الحالة.
سرد مآخذ TCP
يمكنك أيضًا تطبيق مرشح بحيث يتم عرض المقابس المتطابقة فقط. سنستخدم الخيار -t
(TCP) ، لذلك سيتم إدراج مآخذ TCP فقط:
ss -a -t
سرد مآخذ UDP
يقوم الخيار -u
(UDP) بتنفيذ نفس نوع إجراء التصفية. هذه المرة ، سنرى مآخذ UDP فقط:
ss -a -u
الدولة Recv-Q Send-Q العنوان المحلي: Port Peer Address: Port Process UNCONN 0 0 0.0.0.0:631 0.0.0.0:* UNCONN 0 0 0.0.0.0:mdns 0.0.0.0:* UNCONN 0 0 0.0.0.0:60734 0.0.0.0:* UNCONN 0 0127.0.0.53٪ lo: domain 0.0.0.0:* ESTAB 0 0192.168.4.28٪ enp0s3: bootpc 192.168.4.1:bootps UNCONN 0 0 [::]: mdns [::]: * UNCONN 0 0 [::]: 51193 [::]: *
سرد مآخذ يونكس
لرؤية مآخذ Unix فقط ، يمكنك تضمين الخيار -x
(Unix) ، كما هو موضح أدناه:
ss -a -x
Netid State Recv-Q Send-Q العنوان المحلي: Port Peer Address: Port Process u_str ESTAB 0 0 * 41826 * 41827 u_str ESTAB 0 0 * 23183 * 23184 u_str ESTAB 28 0 @ / tmp / .X11-unix / X0 52640 * 52639 ... u_str ESTAB 0 0 / run / systemd / journal / stdout 18887 * 18885 u_str ESTAB 0 0 / تشغيل / dbus / system_bus_socket 19273 * 17306
سرد مآخذ الخام
مرشح المقابس الأولية هو الخيار -w
(الخام):
ss -a -w
قائمة IP الإصدار 4 مآخذ
يمكن إدراج المآخذ التي تستخدم بروتوكول TCP / IP الإصدار 4 باستخدام الخيار -4
(IPV4):
SS -a -4
سرد IP الإصدار 6 مآخذ
يمكنك تشغيل مرشح الإصدار 6 من IP المطابق باستخدام الخيار -6
(IPV6) ، مثل:
SS -a -6
قائمة مآخذ حسب الدولة
يمكنك سرد مآخذ التوصيل حسب الحالة التي تكون فيها مع خيار state
. هذا يعمل مع الدول الراسخة أو المستمعة أو المغلقة. سنستخدم أيضًا خيار الحل ( -r
) ، الذي يحاول حل عناوين الشبكة إلى أسماء ، والمنافذ إلى البروتوكولات.
سيبحث الأمر التالي عن اتصالات TCP التي تم تأسيسها ، وسيحاول الأمر ss
حل الأسماء:
تأسيس الدولة SS -T -R
يتم سرد أربعة اتصالات في حالة المنشأة. تم حل اسم المضيف ، ubuntu20-04 ، وظهر "ssh" بدلاً من 22 لاتصال SSH في السطر الثاني.
يمكننا تكرار هذا للبحث عن مآخذ في حالة الاستماع:
ss -t -r حالة الاستماع
عنوان Recv-Q Send-Q المحلي: عنوان منفذ المنفذ: عملية المنفذ 0128 مضيف محلي: 5939 0.0.0:* 0 4096 localhost٪ lo: المجال 0.0.0.0:* 0128 0.0.0.0:ssh 0.0.0.0:* 0 5 مضيف محلي: ipp 0.0.0.0:* 0100 مضيف محلي: smtp 0.0.0.0:* 0 128 [::]: ssh [::]: * 0 5 ip6-localhost: ipp [::]: * 0100 ip6-localhost: smtp [::]: *
قائمة مآخذ عن طريق البروتوكول
يمكنك سرد مآخذ التوصيل باستخدام بروتوكول معين مع خيارات dport
sport
، والتي تمثل منفذي الوجهة والمصدر ، على التوالي.
نكتب ما يلي لسرد المآخذ باستخدام بروتوكول HTTPS على اتصال established
(لاحظ المساحة بعد قوس الفتح وقبل إغلاق واحد):
ss - حالة تم إنشاؤها '(dport =: https أو sport =: https)'
يمكننا استخدام اسم البروتوكول أو المنفذ المرتبط عادة بهذا البروتوكول. المنفذ الافتراضي لـ Secure Shell (SSH) هو المنفذ 22.
سنستخدم اسم البروتوكول في أمر واحد ، ثم نكرره باستخدام رقم المنفذ:
ss -a '(dport =: ssh أو sport =: ssh)'
ss -a '(dport =: 22 أو sport =: 22)'
كما هو متوقع ، حصلنا على نفس النتائج.
سرد الاتصالات بعنوان IP محدد
باستخدام خيار dst
(الوجهة) ، يمكننا سرد الاتصالات بعنوان IP وجهة معينة.
نكتب ما يلي:
ss -a dst 192.168.4.25
تحديد العمليات
لمعرفة العمليات التي تستخدم المآخذ ، يمكنك استخدام خيار العمليات ( -p
) ، كما هو موضح أدناه (لاحظ أنه يجب عليك استخدام sudo
):
sudo ss -t -p
الدولة Recv-Q Send-Q العنوان المحلي: Port Peer Address: Port Process ESTAB 0 0 192.168.4.28:57650 54.218.19.119: مستخدمي https: (("Firefox"، pid = 3378، fd = 151)) ESTAB 0 0 192.168.4.28:ssh 192.168.4.25:43946 المستخدمون: (("sshd"، pid = 4086، fd = 4)، ("sshd"، pid = 3985، fd = 4))
يوضح لنا هذا أن الوصلتين المؤسستين على مآخذ TCP يتم استخدامها بواسطة عفريت SSH و Firefox.
خليفة جدير
يوفر الأمر ss
نفس المعلومات التي تم توفيرها مسبقًا بواسطة netstat
، ولكن بطريقة أبسط وأكثر سهولة. يمكنك التحقق من صفحة الدليل لمزيد من الخيارات والنصائح.
أوامر لينكس | ||
الملفات | tar · pv · cat · tac · chmod · grep · diff _ _ _ _ _ _ _ _ _ _ _ · ذيل · ستات · ls · fstab · صدى · أقل · chgrp · chown · rev · look · strings · type · rename · zip · unzip · mount · umount · تثبيت · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · patch · تحويل · rclone · shred · srm | |
العمليات | الاسم المستعار · شاشة · أعلى · لطيف · رينييس · تقدم · ستريس · systemd · tmux · chsh · تاريخ · في · دفعة · مجانية · أي · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · timeout · wall · نعم · قتل · نوم · sudo · su · time · groupadd · usermod · groups · lshw · shutdown · reboot · halt · poweroff · passwd · lscpu · crontab · date · bg · fg | |
الشبكات | netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · حفر · إصبع · nmap · ftp · curl · wget · who · who · w · iptables · ssh-keygen · ufw |
ذات صلة: أفضل أجهزة كمبيوتر Linux المحمولة للمطورين والمتحمسين