دستور ss یکی از ابزارهای قدرتمند در سیستمعامل لینوکس برای نمایش اطلاعات مربوط به سوکتهای شبکه (Sockets) است. این ابزار جایگزین مدرن و سریعتر برای دستور قدیمیتر **netstat** محسوب میشود. با استفاده از ss، میتوان جزئیات کاملی از اتصالات شبکه، پورتهای باز، وضعیت سوکتها و بسیاری اطلاعات دیگر را بهسرعت و با دقت بالا مشاهده کرد.
در این مقاله، به بررسی کامل دستور ss، نحوه استفاده از آن، و گزینههای پیشرفتهای که ارائه میدهد خواهیم پرداخت.
—
معرفی دستور ss
دستور **ss** مخفف **Socket Statistics** است و در لینوکس برای نمایش اطلاعات زیر استفاده میشود:
– اتصالات شبکه (TCP، UDP، UNIX)
– وضعیت پورتها
– سوکتهای باز
– جزئیات مربوط به تأخیر یا ترافیک
این ابزار در مقایسه با netstat، عملکرد سریعتری دارد و اطلاعات بیشتری ارائه میدهد.
—
نصب دستور ss
در اکثر توزیعهای لینوکس، ابزار ss بهصورت پیشفرض نصب است. اگر این ابزار روی سیستم شما نصب نیست، میتوانید با نصب بسته **iproute2** به آن دسترسی پیدا کنید:
sudo apt update && sudo apt install iproute2 # برای توزیعهای مبتنی بر Debian
sudo yum install iproute2 # برای توزیعهای مبتنی بر Red Hat
—
استفاده اولیه از دستور ss
برای مشاهده تمام اتصالات فعال در سیستم، میتوانید از دستور زیر استفاده کنید:
ss
این دستور اطلاعاتی از قبیل نوع پروتکل، آدرس مبدأ، آدرس مقصد، و وضعیت اتصال را نمایش میدهد.
—
گزینههای پرکاربرد در ss
۱. نمایش تمام اتصالات فعال
برای نمایش تمام اتصالات (TCP، UDP، و غیره):
ss -a
۲. مشاهده اتصالات TCP
اتصالات TCP پرکاربردترین نوع اتصالات هستند:
ss -t
۳. مشاهده اتصالات UDP
برای مشاهده جزئیات مربوط به اتصالات UDP:
ss -u
۴. فیلتر کردن پورتها
اگر بخواهید فقط اتصالات یک پورت خاص را مشاهده کنید، میتوانید از گزینه **dport** استفاده کنید. بهعنوان مثال، برای مشاهده اتصالات پورت ۸۰ (HTTP):
ss -t state established '( dport = :80 )'
۵. مشاهده پورتهای باز
برای مشاهده تمام پورتهایی که سیستم به آنها گوش میدهد:
ss -l
۶. نمایش آمار مختصر
اگر فقط به خلاصهای از وضعیت سوکتها نیاز دارید:
ss -s
تحلیل خروجیهای ss
خروجی دستور ss شامل ستونهای مختلفی است:
– **Netid**: نوع پروتکل (TCP، UDP، RAW، و غیره)
– **State**: وضعیت اتصال (LISTEN، ESTABLISHED، CLOSED و غیره)
– **Recv-Q**: تعداد بایتهای منتظر دریافت
– **Send-Q**: تعداد بایتهای منتظر ارسال
– **Local Address**: آدرس و پورت محلی
– **Peer Address**: آدرس و پورت مقصد
—
استفاده پیشرفته از ss
۱. نمایش جزئیات بیشتر با pid
برای مشاهده PID (شناسه پردازش) و نام برنامهای که از سوکت استفاده میکند:
ss -p
۲. فیلتر کردن با استفاده از وضعیت اتصال
برای مشاهده اتصالات با وضعیت خاص (مثلاً ESTABLISHED):
ss -t state established
۳. نمایش جزئیات RAW و Unix Sockets
برای مشاهده سوکتهای Raw و Unix:
ss -w
ss -x
۴. مانیتورینگ زنده اتصالات
برای مشاهده تغییرات اتصالات در لحظه:
watch ss -t
—
مزایای استفاده از ss نسبت به netstat
– **سرعت بیشتر**: به دلیل استفاده از /proc و عدم وابستگی به کِرنل، خروجی ss سریعتر تولید میشود.
– **اطلاعات کاملتر**: ss اطلاعات دقیقتر و بهروزتری در مقایسه با netstat ارائه میدهد.
– **پشتیبانی از پروتکلهای بیشتر**: ss قابلیت نمایش جزئیات بیشتری از پروتکلهای مختلف دارد.
—
نمونه سناریو: تحلیل مشکلات شبکه با ss
فرض کنید در یک سرور با کندی در اتصال HTTP مواجه هستید. برای تحلیل این مشکل:
۱. بررسی اتصالات پورت ۸۰:
ss -t state established '( dport = :80 )'
۲. مشاهده تعداد پورتهای LISTEN برای HTTP:
ss -l '( sport = :80 )'
۳. بررسی برنامه مرتبط با این پورت:
ss -pl '( sport = :80 )'
—
جمعبندی
دستور ss یکی از ابزارهای حیاتی برای مدیران سیستم و کاربران لینوکس است که نیاز به تحلیل اتصالات شبکه دارند. این ابزار با گزینههای متنوع و قابلیتهای پیشرفته، جایگزین بسیار مناسبی برای netstat به شمار میآید.
با تمرین و استفاده از گزینههای مختلف ss، میتوانید به یک کاربر حرفهای در مدیریت اتصالات شبکه تبدیل شوید.