در این مقاله با فرمان SS آشنا خواهیم شد. سیستمعامل لینوکس حاوی تعداد زیادی از ابزار است که باعث میشود تقریباً هر نیازی را برطرف کند. این ابزار جهت توسعه، امنیت، بهرهوری، مدیریت و … مورداستفاده قرار میگیرند. یکی از پرکاربردترین ابزارهای لینوکس netstat است. اگرچه، فرمان netstat در مواردی همچون سرعت و در دسترس بودن، موردانتقاد قرار گرفته است.
فرمان SS ابزاری است که برای تخلیه آمار سوکت و نمایش اطلاعات مورداستفاده قرار میگیرد. این فرمان مشابه با netstat بوده ولی سادهتر و سریعتر عمل میکند. دستور SS میتواند TCP و اطلاعات بیشتری را نسبت به بسیاری از دیگر ابزارها نمایش دهد. دستور SS در حقیقت ورژن جدید دستور netstat است. به همین دلیل ما دربارهی نحوهی استفاده از این ابزار صحبت خواهیم کرد تا بتوانید راحتتر اطلاعات ماشین لینوکس خود را به دست بیاورید و از ارتباطات شبکهی خود باخبر شوید.
کامند SS میتواند سوکتهای دامنهی PACKET، TCP، UDP، DCCP، RAW و Unix را نمایش دهد. بهوسیلهی کامند ss جزئیات بیشتری از نحوهی ارتباط بین ماشین لینوکس خود با دیگر ماشینها، شبکهها و سرویسها و همچنین جزئیات بیشتری از ارتباطات شبکه، آمار پروتکلهای شبکهای و ارتباطات سوکت لینوکس به دست خواهید آورد. با در اختیار داشتن این اطلاعات میتوانید بهراحتی مسائل مربوط به شبکههای مختلف را حل کنید.
فرمان ss همانند دیگر دستورات در پلتفرم لینوکس عمل میکند. کافی است تا فرمان موردنظر را صادر کرده و سپس با ترکیب گزینههای موجود آن را پیگیری کنید.
اگر به صفحه اصلی کامند ss نگاه کنید، متوجه خواهید شد که گزینههای موجود برای فرمان netstat وجود ندارد. کامند ss بهمراتب قدرتمندتر از netstat است.
چنانچه دستور ss را بدون هیچ استدلال یا گزینهای صادر کنید، لیست کامل سوکتهای TCP با اتصالات ثابت ایجاد خواهد شد:
به دلیل اینکه کامند ss (بدون گزینه) مقادیر زیادی از اطلاعات را نمایش میدهد، میتوانید خروجی فرمان را به یک فایل جهت مشاهدات بعدی بفرستید:
ss > ss_output
البته این فرمان اولیه برای هر موقعیتی مورداستفاده قرار نمیگیرد. جهت مشاهده سوکتهای فعلی کافی است تا دستور زیر را وارد کنید:
ss -l
خروجی دستور بالا فقط لیستی از سوکتهای فعلی است.
کامند ss از گزینه t- برای مشاهده ارتباطات TCP، از گزینه u- برای UDP و از x- برای UNIX استفاده میکند. با صدور هر یک از این فرمانها، مقدار زیادی از اطلاعات را به دست خواهید آورد که میتوانید از آنها استفاده کنید.
استفاده از گزینههای u- و t- و x- بهتنهایی، فقط لیست ارتباطاتی را که متصل هستند را نمایش خواهد داد. پس چنانچه میخواهید ارتباطاتی که برقرار هستند (گوش میدهند) را مشاهده کنید، پس از گزینههای بالا باید گزینهی a- را نیز اضافه کنید:
ss -t -a
خروجی فرمان بالا شامل تمام سوکتهای TCP خواهد بود:
در مثال بالا میتوانید مشاهده کنید که ارتباطات UDP در آدرس IP ماشین به آدرسهای IP مختلف و از طریق پورتهای مختلف در حال ساخته شدن هستند.
برخلاف فرمان netstat، فرمان ss نام دستور و PID مربوط به این ارتباطات را نمایش نمیدهد. بنابراین همچنان اطلاعات بسیار زیادی را جهت شروع عیبیابی در اختیار خواهید داشت. پس میتوانید بفهمید که کدام آدرس IP / پورت ارتباط را برقرار میکند؟ اینگونه شما اطلاعاتی را در اختیار خواهید داشت که میتواند در ابتداییترین مراحل عیبیابی به شما کمک کند.
یکی از گزینههای در دسترس برای کامند ss توانایی فیلتر کردن آن با استفاده از TCP است. با استیت «states» شما بهراحتی میتوانید نتایج دستور ss را فیلتر کنید. ابزار ss میتواند با تمام استیتهای استاندارد TCP مرتبط شود:
سایر استیتهای موجود عبارتاند از:
سینتکس کار با استیتها بسیار ساده است:
For tcp ipv4:
ss -4 state FILTER
For tcp ipv6:
ss -6 state FILTER
کلمه FILTER نام استیتی است که میخواهید استفاده کنید.
جهت مشاهده تمام سوکتهای IPv6 فعال در ماشین خود کافی است فرمان زیر را وارد کنید:
ss -4 state listening
نتایج این دستور در شکل زیر نشان داده شده است:
کار دیگری که با ss میتوانید انجام دهید این است که به شما از ارتباطات آدرس IP دیگر به شما گزارش دهد. فرض کنید میخواهید ببینید که آیا یک ماشین در آدرس ۱۹۲.۱۶۸.۱.۱۳۹ به شما متصل است یا خیر؟ بدین منظور کافی است تا دستور زیر را وارد کنید:
ss dst 192.168.1.139
نتیجهی این دستور به شما استیت، پورت IP محلی، و پورت IP کنترل از راه دور سوکت را خواهد داد:
فرمان ss در عیبیابی سرور لینوکس به شما کمکهای بسیار زیادی میکند. این امر باعث خواهد شد شما که زمان خود را صرف مطالعه در صفحه اصلی ss کنید. این فرمان بسیار سریعتر و سادهتر از netstat عمل میکند ولی برای کار با آن باید مفاهیم اولیه وارد کردن دستورات را یاد بگیرید.
جهت کسب اطلاعات بیشتر میتوانید مقالهی ۱۰ مثال کاربردی دستور ss را مطالعه کنید.
سینداد یعنی هدیهی سیمرغ، یا فرزند سیمرغ؛ به عبارتی یعنی خود سیمرغ، با همه ی شگفتی هایش، اما جوانتر و سرزنده تر. و این چیزی است که ما سعی می کنیم در سینداد باشیم. از سال ۱۳۸۵ دانش مان را به صورت خدماتی در حوزه ی هاستینگ، شبکه و تولید نرم افزار در اختیار مشتریان مان قرار داده ایم و به این افتخار می کنیم که تک تک آنها تا به امروز همراه ما مانده اند. باور داریم که سینداد صرفاً یک شرکت نیست، بلکه نوعی باور است به ارائه ی شگفت انگیز از هر چیز.