دانشنامه مارال هاست دانشنامه مارال هاست
  • صفحه اصلی
  • مقالات
    • هاست اشتراکی
    • دامنه
    • سرور مجازی
    • کنترل پنل سی‌پنل
    • کنترل پنل پلسک
    • کنترل پنل دایرکت ادمین
    • ایمیل
    • CloudLinux
    • Cloudflare
  • تماس با ما
دانشنامه مارال هاست دانشنامه مارال هاست
دانشنامه مارال هاست دانشنامه مارال هاست
  • صفحه اصلی
  • مقالات
    • هاست اشتراکی
    • دامنه
    • سرور مجازی
    • کنترل پنل سی‌پنل
    • کنترل پنل پلسک
    • کنترل پنل دایرکت ادمین
    • ایمیل
    • CloudLinux
    • Cloudflare
  • تماس با ما
شبکه
  • Folder icon closed Folder open iconپیاده‌سازی و مدیریت IPv6
  • Folder icon closed Folder open iconپیکربندی IPv6 روی Windows Server
  • Folder icon closed Folder open iconپیکربندی IPv6 روی Linux
  • Folder icon closed Folder open iconپیکربندی IPv6 روی MikroTik RouterOS
  • Folder icon closed Folder open iconIPv6 چیست
  • Folder icon closed Folder open iconاستفاده از IPv6 در Apache و Nginx
  • Folder icon closed Folder open iconتنظیم DNS AAAA Records برای IPv6
  • Folder icon closed Folder open iconتست اتصال IPv6 با ابزارهای خط فرمان
  • Folder icon closed Folder open iconتنظیم DHCPv6 Server روی Linux
  • Folder icon closed Folder open iconمزایا و معایب IPv6 در محیط هاستینگ
  • Folder icon closed Folder open iconبررسی کامل nmtui
  • Folder icon closed Folder open iconاضافه کردن آی پی مازاد به سرور لینوکس و ویندوز
  • Folder icon closed Folder open iconمعماری آدرس‌ دهی در IPv6
  • Folder icon closed Folder open iconساختار بسته در IPv6
  • Folder icon closed Folder open iconمسیریابی در IPv6
  • Folder icon closed Folder open iconمکانیزم‌های انتقال به IPv6
  • Folder icon closed Folder open iconملاحظات امنیتی در IPv6
  • Folder icon closed Folder open iconتغییر gateway با کامند در لینوکس
  • Folder icon closed Folder open iconبررسی دستور tracert در ویندوز
  • Folder icon closed Folder open iconبررسی دستور mtr در لینوکس
  • Folder icon closed Folder open iconآموزش کامل nc (NetCat)
  • Folder icon closed Folder open iconآموزش کامل nmap
  • Folder icon closed Folder open iconآموزش کامل dig
  • Folder icon closed Folder open iconآموزش کامل nslookup
  • Folder icon closed Folder open iconآموزش کامل دستور route و ip route
  • Folder icon closed Folder open iconآموزش کامل telnet
  • Folder icon closed Folder open iconآموزش کامل wget
  • Folder icon closed Folder open iconآموزش کامل ss در لینوکس
  • Folder icon closed Folder open iconعیب‌یابی تفاوت نتیجه DNS بین سرور و کامپیوتر شخصی
  • Folder icon closed Folder open iconآموزش بررسی etc/resolv.conf/ و عیب‌یابی مشکلات DNS در لینوکس
شبکه

آموزش کامل ss در لینوکس

آموزش کامل ss در لینوکس

مقدمه

دستور ss مخفف Socket Statistics یکی از مهم‌ترین ابزارهای لینوکس برای مشاهده و عیب‌یابی Socketها، پورت‌های باز، اتصال‌های TCP و UDP و سرویس‌های در حال Listen است.

مدیران سرور می‌توانند با استفاده از ss به سؤالاتی مانند موارد زیر پاسخ دهند:

  • چه پورت‌هایی روی سرور باز هستند؟
  • چه سرویسی روی پورت 80 اجرا شده است؟
  • چه Processی پورت 443 را اشغال کرده است؟
  • چه IPهایی به SSH متصل هستند؟
  • چند اتصال TCP روی سرور وجود دارد؟
  • چه پورت‌های UDP در حال Listen هستند؟
  • آیا سرویس موردنظر واقعاً روی پورت خود Listen می‌کند؟

در سیستم‌های لینوکسی جدید، ss عملاً جایگزین ابزار قدیمی netstat شده است.


دستور ss چیست؟

ss ابزاری برای مشاهده اطلاعات Socketهای سیستم است و بخشی از مجموعه iproute2 محسوب می‌شود.

با استفاده از آن می‌توان اطلاعات مربوط به:

  • TCP
  • UDP
  • Unix Socket
  • Listening Socket
  • Established Connection
  • Process
  • PID
  • Local Address
  • Remote Address

را مشاهده کرد.


بررسی نصب ss

دستور زیر را اجرا کنید:

ss --version

یا:

which ss

در اکثر توزیع‌های جدید لینوکس این ابزار به‌صورت پیش‌فرض نصب شده است.


نصب ss در Ubuntu و Debian

ابزار ss بخشی از بسته iproute2 است.

sudo apt update
sudo apt install -y iproute2

نصب ss در AlmaLinux و Rocky Linux

sudo dnf install -y iproute

ساختار کلی دستور ss

ساختار کلی به شکل زیر است:

ss [OPTIONS] [FILTER]

ساده‌ترین حالت اجرای دستور:

ss

این دستور Socketهای فعال سیستم را نمایش می‌دهد.


مشاهده تمام اتصال‌های شبکه

ss -a

گزینه -a مخفف all است و Socketهای Listening و Non-Listening را نمایش می‌دهد.


مشاهده اتصال‌های TCP

ss -t

برای نمایش تمام Socketهای TCP:

ss -ta

مشاهده اتصال‌های UDP

ss -u

برای مشاهده تمام Socketهای UDP:

ss -ua

مشاهده پورت‌های Listening

یکی از مهم‌ترین کاربردهای ss بررسی سرویس‌هایی است که روی سرور منتظر دریافت اتصال هستند.

ss -l

مشاهده پورت‌های TCP در حالت Listen

ss -lt

مشاهده پورت‌های UDP در حالت Listen

ss -lu

جلوگیری از Resolve شدن نام سرویس‌ها

معمولاً بهتر است هنگام عیب‌یابی از گزینه -n استفاده کنیم:

ss -n

این گزینه باعث می‌شود IPها و شماره پورت‌ها به‌صورت عددی نمایش داده شوند.

مثلاً به‌جای:

*:ssh

شماره واقعی پورت نمایش داده می‌شود:

*:22

مشاهده Process و PID مربوط به پورت‌ها

یکی از کاربردی‌ترین گزینه‌های ss گزینه -p است.

sudo ss -p

برای مشاهده TCP همراه Process:

sudo ss -tp

مهم‌ترین دستور ss برای مدیر سرور

یکی از پرکاربردترین ترکیب‌ها:

sudo ss -tulpn

این دستور اطلاعات مربوط به:

  • TCP
  • UDP
  • Listening
  • Process
  • PID
  • Port

را نمایش می‌دهد.

به همین دلیل در عیب‌یابی سرورها بسیار کاربردی است.


معنی پارامترهای ss -tulpn

دستور:

ss -tulpn

از چند گزینه تشکیل شده است:

گزینهکاربرد
-tنمایش TCP
-uنمایش UDP
-lنمایش Listening Socket
-pنمایش Process و PID
-nنمایش عددی IP و Port

نمونه خروجی ss

sudo ss -tulpn

ممکن است خروجی مشابه زیر مشاهده کنید:

Netid State  Local Address:Port   Process

tcp   LISTEN 0.0.0.0:22          users:(("sshd",pid=850,fd=3))
tcp   LISTEN 0.0.0.0:80          users:(("nginx",pid=1200,fd=6))
tcp   LISTEN 0.0.0.0:443         users:(("nginx",pid=1200,fd=7))

در این مثال:

  • SSH روی پورت 22 است.
  • Nginx روی پورت 80 است.
  • Nginx روی پورت 443 نیز Listen می‌کند.

پیدا کردن سرویس استفاده‌کننده از یک پورت

فرض کنید می‌خواهیم بدانیم چه برنامه‌ای پورت 8080 را اشغال کرده است.

sudo ss -tulpn | grep :8080

مثلاً:

tcp LISTEN 0 511 0.0.0.0:8080 0.0.0.0:* users:(("nginx",pid=1452,fd=6))

در این حالت متوجه می‌شویم Nginx با PID برابر 1452 از این پورت استفاده می‌کند.


بررسی پورت SSH

برای بررسی اینکه SSH روی چه پورتی Listen می‌کند:

sudo ss -ltnp | grep sshd

یا اگر SSH روی پورت استاندارد 22 باشد:

sudo ss -ltnp | grep :22

بررسی پورت HTTP

sudo ss -ltnp | grep :80

بررسی پورت HTTPS

sudo ss -ltnp | grep :443

بررسی پورت MySQL

sudo ss -ltnp | grep :3306

بررسی پورت PostgreSQL

sudo ss -ltnp | grep :5432

بررسی پورت Redis

sudo ss -ltnp | grep :6379

مشاهده Connectionهای برقرارشده

برای مشاهده اتصال‌های TCP که در وضعیت ESTABLISHED قرار دارند:

ss -tn state established

این دستور برای بررسی Connectionهای فعال سرور بسیار کاربردی است.


مشاهده IPهای متصل به SSH

اگر SSH روی پورت 22 باشد:

ss -tn state established '( sport = :22 )'

روش ساده‌تر:

ss -tn | grep ':22'

برای مشاهده IPهای Remote به‌صورت خلاصه:

ss -tn state established '( sport = :22 )' | awk '{print $5}'

شمارش Connectionهای فعال

ss -tn state established | wc -l

این دستور تعداد اتصال‌های TCP برقرارشده را نمایش می‌دهد.


مشاهده خلاصه وضعیت Socketها

یکی از دستورات بسیار کاربردی:

ss -s

نمونه خروجی:

Total: 250
TCP:   180
UDP:   20
RAW:   0

این دستور برای بررسی سریع وضعیت شبکه سرور مناسب است.


بررسی وضعیت‌های مختلف TCP

TCP می‌تواند در وضعیت‌های مختلفی قرار داشته باشد.

برای مشاهده Connectionهای Established:

ss -tan state established

برای مشاهده TIME-WAIT:

ss -tan state time-wait

برای مشاهده SYN-RECV:

ss -tan state syn-recv

برای مشاهده CLOSE-WAIT:

ss -tan state close-wait

وضعیت‌های مهم TCP

وضعیتتوضیح
LISTENسرویس منتظر اتصال است
ESTABLISHEDاتصال برقرار شده است
TIME-WAITاتصال بسته شده و موقتاً نگهداری می‌شود
CLOSE-WAITسمت مقابل اتصال را بسته است
SYN-SENTدرخواست اتصال ارسال شده است
SYN-RECVدرخواست اتصال دریافت شده است

شمارش اتصال‌های یک پورت

مثلاً تعداد Connectionهای مربوط به پورت 80:

ss -tn | grep ':80' | wc -l

برای HTTPS:

ss -tn | grep ':443' | wc -l

پیدا کردن IPهایی با بیشترین Connection

یکی از کاربردهای مهم ss هنگام بررسی افزایش Load یا ترافیک مشکوک، مشاهده IPهایی است که بیشترین اتصال را دارند.

ss -tn state established | awk 'NR>1 {print $5}' | sed 's/:[^:]*$//' | sort | uniq -c | sort -nr | head

این دستور می‌تواند در بررسی اولیه تعداد زیاد Connectionها مفید باشد.

تعداد زیاد Connection از یک IP به‌تنهایی اثبات‌کننده حمله نیست و باید همراه با Web Server Log، Firewall Log و میزان ترافیک بررسی شود.


مشاهده فقط IPv4

ss -4

مثلاً:

ss -4ltn

مشاهده فقط IPv6

ss -6

مثلاً:

ss -6ltn

مشاهده Unix Socketها

ss -x

برای مشاهده تمام Unix Socketها:

ss -xa

مشاهده اطلاعات بیشتر TCP

ss -ti

گزینه -i اطلاعات داخلی TCP را نمایش می‌دهد.

این اطلاعات می‌تواند شامل مواردی مانند:

  • RTT
  • Congestion Control
  • MSS
  • Window
  • Retransmission

باشد.


نمایش Timerهای TCP

ss -o

یا:

ss -to

این گزینه اطلاعات Timerهای مربوط به Socketها را نمایش می‌دهد.


فیلتر کردن بر اساس Destination Port

مثلاً Connectionهای مقصد پورت 443:

ss -tn 'dport = :443'

فیلتر کردن بر اساس Source Port

ss -tn 'sport = :22'

این قابلیت یکی از مزایای مهم ss نسبت به استفاده صرف از grep است.


بررسی اینکه سرویس روی localhost یا تمام Interfaceها اجرا شده است

این موضوع در عیب‌یابی سرویس‌ها بسیار مهم است.

مثلاً:

sudo ss -ltnp | grep :3306

اگر خروجی:

127.0.0.1:3306

باشد، MySQL فقط روی localhost در دسترس است.

اما اگر:

0.0.0.0:3306

باشد، سرویس روی تمام Interfaceهای IPv4 Listen می‌کند.

نمایش:

[::]:3306

نیز معمولاً به Listener مربوط به IPv6 اشاره دارد و رفتار دقیق dual-stack به تنظیمات سیستم بستگی دارد.


سناریوی عملی: سایت باز نمی‌شود

فرض کنید Nginx نصب است اما سایت باز نمی‌شود.

ابتدا بررسی کنید پورت 80 Listen می‌کند یا خیر:

sudo ss -ltnp | grep :80

اگر هیچ خروجی دریافت نشد، احتمالاً Web Server روی پورت 80 Listen نمی‌کند.

سپس وضعیت سرویس را بررسی کنید:

systemctl status nginx

اگر پورت Listen است اما از بیرون قابل دسترسی نیست، باید Firewall، Security Group، NAT و مسیر شبکه بررسی شوند.


سناریوی عملی: SSH وصل نمی‌شود

ابتدا:

sudo ss -ltnp | grep sshd

یا:

sudo ss -ltnp | grep :22

اگر SSH روی پورت دیگری باشد، همان شماره پورت را بررسی کنید.

اگر Listener وجود داشته باشد ولی اتصال از بیرون برقرار نشود، احتمال وجود مشکل در Firewall یا مسیر شبکه بیشتر است.


سناریوی عملی: پورت اشغال شده است

فرض کنید هنگام اجرای برنامه با خطای زیر مواجه شده‌اید:

Address already in use

مثلاً برنامه قرار است روی پورت 8080 اجرا شود.

بررسی کنید:

sudo ss -ltnp | grep :8080

PID و نام Process اشغال‌کننده پورت نمایش داده می‌شود.


تفاوت ss و netstat

netstat ابزار قدیمی مجموعه net-tools است، در حالی که ss بخشی از iproute2 محسوب می‌شود.

ویژگیssnetstat
ابزار مدرن لینوکس✅❌
سرعت در تعداد Connection بالابهترضعیف‌تر
TCP/UDP✅✅
نمایش Process✅✅
Filtering پیشرفته✅محدود
نصب پیش‌فرض در سیستم‌های جدیدمعمولاًهمیشه خیر
پیشنهاد برای سیستم‌های جدید✅❌

در سیستم‌های جدید بهتر است از ss استفاده شود.


مهم‌ترین پارامترهای دستور ss

پارامترتوضیح
-aنمایش تمام Socketها
-lنمایش Listening Socket
-tنمایش TCP
-uنمایش UDP
-nعدم Resolve نام‌ها
-pنمایش Process
-sنمایش خلاصه وضعیت
-4فقط IPv4
-6فقط IPv6
-xUnix Socket
-iاطلاعات داخلی TCP
-oنمایش Timer

دستورات کاربردی ss در یک نگاه

نمایش تمام پورت‌های Listening همراه Process:

sudo ss -tulpn

نمایش TCP Listening:

sudo ss -ltnp

نمایش UDP Listening:

sudo ss -lunp

مشاهده Connectionهای فعال:

ss -tn state established

خلاصه وضعیت شبکه:

ss -s

بررسی پورت 80:

sudo ss -ltnp | grep :80

بررسی پورت 443:

sudo ss -ltnp | grep :443

بررسی SSH:

sudo ss -ltnp | grep sshd

خطاهای رایج

ss: command not found

بسته iproute2 یا iproute نصب نیست.

در Ubuntu:

sudo apt install iproute2

در AlmaLinux:

sudo dnf install iproute

Process نمایش داده نمی‌شود

برای مشاهده اطلاعات Process معمولاً دستور را با sudo اجرا کنید:

sudo ss -tulpn

پورت در ss نمایش داده می‌شود اما از بیرون باز نیست

وجود LISTEN در خروجی ss فقط نشان می‌دهد یک Socket محلی روی سیستم Listen می‌کند.

برای دسترسی از اینترنت باید موارد دیگری نیز بررسی شوند:

  • Firewall
  • UFW
  • firewalld
  • CSF
  • Security Group
  • NAT
  • Router
  • Provider Firewall

بهترین روش‌ها

برای بررسی سریع سرور معمولاً این دستور نقطه شروع مناسبی است:

sudo ss -tulpn

همچنین:

  • از -n برای جلوگیری از DNS Resolution استفاده کنید.
  • برای مشاهده Process از sudo استفاده کنید.
  • وضعیت ESTABLISHED را هنگام بررسی Connectionهای فعال کنترل کنید.
  • ss را همراه با lsof، tcpdump، nmap و nc استفاده کنید.
  • باز بودن پورت در ss را با قابل دسترس بودن آن از اینترنت یکسان در نظر نگیرید.

اشتباهات رایج

  • تصور اینکه LISTEN بودن پورت یعنی حتماً از اینترنت قابل دسترسی است.
  • بررسی نکردن Process مربوط به پورت.
  • استفاده از grep :80 در تحلیل‌های حساس بدون توجه به احتمال تطبیق‌های ناخواسته.
  • نادیده گرفتن IPv6.
  • نتیجه‌گیری درباره حمله فقط بر اساس تعداد Connectionها.
  • استفاده از netstat روی سیستم‌های جدید در حالی که ss در دسترس است.

چک‌لیست عیب‌یابی شبکه با ss

هنگام بررسی یک سرویس می‌توانید این ترتیب را دنبال کنید:

  1. بررسی Listening بودن پورت:
sudo ss -ltnp
  1. پیدا کردن Process:
sudo ss -tulpn
  1. بررسی Connectionهای فعال:
ss -tn state established
  1. مشاهده خلاصه وضعیت:
ss -s
  1. سپس در صورت نیاز Firewall، Logها و ارتباط خارجی را بررسی کنید.

مطالعات بیشتر

برای مطالعه دقیق‌تر درباره ss و ابزارهای شبکه لینوکس:

  • Linux ss Manual Page
  • iproute2 Project Repository
  • Linux ip Manual Page

جمع‌بندی

دستور ss یکی از اصلی‌ترین ابزارهای عیب‌یابی شبکه در لینوکس است و امکان مشاهده پورت‌های Listening، Connectionهای TCP و UDP، Processهای مرتبط با پورت‌ها و وضعیت Socketهای سیستم را فراهم می‌کند.

در مدیریت روزمره سرور، دستور:

sudo ss -tulpn

یکی از کاربردی‌ترین دستورات برای بررسی سریع وضعیت پورت‌ها و سرویس‌های شبکه محسوب می‌شود. برای تحلیل دقیق‌تر نیز می‌توان ss را در کنار ابزارهایی مانند tcpdump، Nmap، Netcat و lsof استفاده کرد.

کیان پور

هنوز نیاز به کمک دارید؟

آیا سوالی دارید؟

آیا این مقاله برای شما مفید بود؟ بله خیر

مطالب اخیراً بازدیدشده

  • آشنایی با PowerShell در Windows Server؛ معرفی دستورات و کاربردها
  • آموزش کامل wget
  • مشاهده بیشتر

نظرات خود را بنویسید... لغو پاسخ

اشتراک گذاری این مقاله

آموزش کامل ss در لینوکس

کپی کردن لینک

Clipboard Icon

جدیدترین مقالات

آموزش نصب و راه‌اندازی RustDesk Server با Docker
آموزش نصب و راه‌اندازی RustDesk Server با Docker
2 minutes جولای 2, 2026
آموزش نصب و راه‌اندازی Matrix Synapse + Element Web + Coturn با Docker روی ...
4 minutes جولای 2, 2026
CXS چیست و چگونه کار می‌کند
1 minute می 3, 2026
ساخت سرور چت المنت بروی لینوکس
5 minutes آوریل 25, 2026
Geo Routing و Geo DNS
2 minutes آوریل 22, 2026

تقویم

آگوست 2026
شیدسچپج
1234567
891011121314
15161718192021
22232425262728
293031 
« جولای    

عضویت

جدیدترین پست‌ها

آموزش نصب و راه‌اندازی RustDesk Server با Docker
آموزش نصب و راه‌اندازی RustDesk Server با Docker
2 minutes جولای 2, 2026
آموزش نصب و راه‌اندازی Matrix Synapse + Element Web + Coturn با Docker روی Ubuntu 24.04
4 minutes جولای 2, 2026
CXS چیست و چگونه کار می‌کند
1 minute می 3, 2026
ساخت سرور چت المنت بروی لینوکس
5 minutes آوریل 25, 2026
Geo Routing و Geo DNS
2 minutes آوریل 22, 2026

سلام