
به اشتراک بگذارید
در دنیای میزبانی وب و مدیریت زیرساخت، پورتها مانند درهای ورود و خروج یک ساختمان بزرگ هستند؛ اگر شما ندانید کدام درها باز هستند، عملاً کنترلی بر امنیت و ترافیک ساختمان خود ندارید. مدیریت پورت های لینوکس یکی از حیاتیترین مهارتها برای هر مدیر سیستم یا توسعهدهندهای است که با سرورهای لینوکسی سروکار دارد. شناسایی پورت های باز در لینوکس به شما کمک میکند تا علاوه بر افزایش امنیت، دلیل اختلال در سرویسهای خود را پیدا کنید.
📌 چرا مانیتورینگ پورتها برای شما حیاتی است؟
- کشف بدافزارها: شناسایی فرآیندهای مشکوکی که بدون اجازه شما پورت باز کردهاند.
- حل تداخل نرمافزاری: یافتن پاسخ این سوال که “چرا سرویس Nginx من استارت نمیشود؟”.
- مدیریت هوشمند ترافیک: بستن پورتهای Listening غیرضروری برای کاهش فشار روی منابع سرور.
✅ امنیت شبکه: شناسایی پورت های listening اولین قدم در ایمنسازی سرور است.
تجربه ما نشان میدهد که اکثر اختلالات شبکه، از تداخل دیتابیس گرفته تا نفوذهای امنیتی، با یک بررسی دقیق در سطح CLI قابل شناسایی و حل هستند. در این مقاله از بلاگ وب داده، به دور از مباحث تئوریک، مستقیماً به سراغ ابزارهای عملیاتی میرویم تا یاد بگیرید چگونه وضعیت لحظهای پورتهای سرور خود را مانیتور کرده و کنترل کامل ترافیک ورودی را به دست بگیرید.
آنچه در این مقاله میخوانید:
پورت در لینوکس چیست؟
در لینوکس، پورت یک نقطه انتهایی ارتباطی است. اگر سرور را یک مجتمع مسکونی در نظر بگیرید، آدرس IP ساختمان کل مجتمع است و شماره پورت، شماره هر واحد است؛ هر سرویس (مثل وبسرور یا دیتابیس) در یک واحد خاص مستقر میشود.
ساختار معماری ارتباطات:
اینترنت (کاربر)
⬇️
Gateway / Firewall
⬇️
[سرور لینوکس]
├─ پورت 22 (SSH)
├─ پورت 80 (HTTP)
└─ پورت 3306 (MySQL)
0 تا 1023: پورتهای رزرو شده (Well-known) برای سرویسهای سیستمی
1024تا 49151: پورتهای ثبتشده (Registered)
49152 تا 65535: پورتهای داینامیک/خصوصی (Dynamic/Private)
چرا به مدیریت پورت های باز در لینوکس نیاز داریم؟
مدیریت پورت های لینوکس فقط یک وظیفه ادمینی نیست؛ بلکه یک ضرورت برای تداوم کسبوکار شماست:
- رفع تداخل سرویسها: گاهی دو برنامه میخواهند از یک پورت استفاده کنند که باعث از دسترس خارج شدن سایت میشود.
- امنیت سایبری: بسیاری از بدافزارها پورتهای مخفی برای خروج داده ایجاد میکنند؛ شناسایی این پورتها حیاتی است.
- مانیتورینگ منابع: هر پورت باز یعنی یک سرویس در حال مصرف رم و سیپییو است؛ شناسایی آنها به بهینهسازی کمک میکند.
پیشنیازهای نمایش پورت های باز در لینوکس
برای اجرای بدون نقص دستورات مانیتورینگ شبکه، سیستم شما باید استانداردهای زیر را دارا باشد:
- سطح دسترسی (Privilege Level): دسترسی
sudoیا کاربرrootالزامی است. بدون این سطح دسترسی، سیستمعامل اجازه دسترسی به فایلسیستم/proc(جایی که اطلاعات سوکتها ذخیره میشود) را نمیدهد و شما نمیتوانید نام پردازشها (Process Names) یا PIDها را مشاهده کنید. - پکیجهای پایه شبکه:
- iproute2: ابزار مدرن ss بخشی از این پکیج است. با دستور ss –version وجود آن را چک کنید.
- net-tools: برای استفاده از netstat (در صورتی که توزیع شما قدیمی است).
- lsof: این ابزار معمولاً پیشفرض نیست. با
sudo apt install lsofیاsudo yum install lsofآن را نصب کنید.
- سازگاری هسته (Kernel Compatibility): ابزارهای مدرن مانند ss از رابط Netlink هسته لینوکس استفاده میکنند که در کرانلهای نسخه 2.6 به بالا در دسترس است. برای چک کردن نسخه کرنل از دستور
uname -rاستفاده کنید.
برای اجرای دستورات این مقاله به یک سرور لینوکسی با دسترسی root نیاز دارید. سرورهای مجازی وبداده با دسترسی کامل root ارائه میشوند.
شناسایی Listening Ports در لینوکس
در این بخش همراه ما باشید تا به صورت عملی و با سناریوهای واقعی، قدرت ترمینال لینوکس را در مانیتورینگ شبکه ببینیم. ما در این آموزش از 3 منبع (وبسرور، دیتابیس و دسترسی راه دور) برای تست استفاده میکنیم و یاد می گیرید چگونه از طریق CLI بررسی کنید که پورتی در لینوکس استفاده می شود یا خیر .
نمودار سناریو:
WebDade-Server-IP
1🖥️ Nginx (Port 80)
[سرویس دهی وب]
2🗄️ MySQL (Port 3306)
[ذخیره سازی داده]
3💾 SSH (Port 22)
[دسترسی مدیریت]
1- دستور ss برای دیدن پورت های باز در لینوکس
دستور ss مخفف Socket Statistics است؛ این ابزار جایگزین مدرن و بسیار سریعتر برای netstat محسوب میشود. برتری فنی ss در این است که به جای پردازش فایلهای متنی سنگین در /proc/net (که در سرورهای با ترافیک بالا باعث کندی میشود)، مستقیماً از رابط Netlink هسته برای استخراج اطلاعات سوکتها استفاده میکند. این یعنی سرعت بیشتر و فشار کمتر به CPU.
دستور بررسی پورت در لینوکس:
sudo ss -tulpn | grep LISTEN 
t(TCP)-: نمایش پورتهایی که از پروتکل ا TCP استفاده میکنند.u(UDP)-: نمایش پورتهای پروتکل UDP (مناسب برای سرویسهایی مثل DNS یا VoIP).l(Listening)-: مهمترین سوئیچ برای ما؛ چون فقط پورتهایی را نشان میدهد که آماده دریافت اتصال هستند.p(Processes)-: شناسایی دقیق نام اپلیکیشن و PID فرآیندی که پورت را اشغال کرده است.n(Numeric)-: جلوگیری از ترجمه شماره پورت به نام سرویس (مثلاً نمایش 80 به جای http) که سرعت خروجی را افزایش میدهد.
ss انتخاب اول حرفهایها است. این ابزار حتی وضعیت سوکتهای داخلی سیستم (Unix Domain Sockets) را هم به خوبی مانیتور میکند.2- ابزار lsof برای پورت های در حال استفاده لینوکس
دستور lsof مخفف List Open Files است. در معماری لینوکس/یونیکس، ارتباطات شبکه (Sockets) به عنوان فایل در نظر گرفته میشوند. این ابزار به شما اجازه میدهد “کالبدشکافی” کنید که دقیقاً کدام فایل یا پردازش در لایه شبکه فعال است.به عبارت ساده تر به شما میگوید دقیقاً “چه کسی” پشت پورت است.
مشاهده لیست پورت های باز در لینوکس با lsof:
sudo lsof -i -P -n | grep LISTEN i(Internet)-: فیلتر کردن خروجی برای نمایش فقط فایلهای مربوط به شبکه (Internet Files).P(Port Names)-: جلوگیری از تبدیل شماره پورتها به نام سرویس (مثلاً نمایش 80 به جای HTTP)؛ این کار سرعت اجرای دستور را بالا میبرد.n(Network Addresses)-: جلوگیری از تبدیل آدرسهای IP به Hostname (DNS Resolution)؛ این سوئیچ برای جلوگیری از تأخیر در شبکههای کند حیاتی است.

◀️ بررسی یک پورت خاص (مثلاً پورت 22):
اگر میخواهید بدانید چه پردازشی پورت SSH را اشغال کرده و چه فایلهایی توسط آن باز شده است یا شک دارید که چه کسی به SSH شما وصل است از دستور زیر استفاده کنید:
sudo lsof -i:22 برخلاف سایر ابزارها، lsof علاوه بر شماره پورت، نام کاربری (USER) مالک پردازش را هم نشان میدهد که برای شناسایی نفوذ یا دسترسیهای غیرمجاز فوقالعاده کاربردی است.
3- استفاده از netstat برای نمایش پورت های باز در لینوکس
دستور netstat (Network Statistics) قدیمیترین و شناختهشدهترین ابزار برای مانیتورینگ شبکه است. اگرچه در توزیعهای مدرن لینوکس به نفع ss کنار گذاشته شده است، اما به دلیل حضور طولانی در سیستمهای یونیکس، همچنان در میان مدیران سیستم باسابقه محبوبیت دارد. این دستور بخشی از بسته net-tools است.
sudo netstat -tulpn | grep LISTEN - t (TCP)-: نمایش تمامی کانکشنهای مبتنی بر پروتکل TCP.
- u (UDP)-: نمایش سوکتهای مبتنی بر پروتکل UDP.
- l (Listening)-: فیلتر کردن خروجی برای نمایش پورتهایی که در وضعیت Listening هستند.
- p (Program)-: نمایش نام برنامهای که پورت را باز کرده است (نیاز به دسترسی Root).
- n (Numeric)-: نمایش شماره پورتها و آدرسهای IP به صورت عددی (بدون جستجوی DNS).

در توزیعهای جدید مانند Ubuntu 24.04 به بعد و Debian 12، پکیج
net-tools (شامل دستور netstat) به صورت پیش فرض نصب نیست. در صورت نیاز آن را با دستور sudo apt install net-tools نصب کنید.با این حال، پیشنهاد میشود از دستور
ss استفاده کنید؛ این ابزار جایگزین مدرن netstat است، اطلاعات را مستقیماً از Kernel دریافت میکند و در سرورهای پرترافیک عملکرد بهتری دارد.4- اسکن پورت در لینوکس با nmap
گاهی لازم است بدانید از “بیرون” سرور، چه پورتهایی باز دیده میشوند. این کار برای شناسایی پورت های در حال استفاده لینوکس از نظر امنیتی عالی است.ابزار nmap به شما کمک میکند تا امنیت سرور خود را از دید یک ناظر خارجی یا یک نفوذگر بسنجید. برای اجرای آن کافای است یکی از دستورهای زیر را وارد کنید.
# اسکن پورتهای TCP
sudo nmap -sT -O [Server-IP]
# اسکن پورتهای UDP
sudo nmap -sU -O [Server-IP]
# اسکن هر دو (TCP و UDP)
sudo nmap -sT -sU -O [Server-IP] 
⚠️ عیبیابی نصب: اگر پس از اجرای دستور با خطای command not found مواجه شدید، به این معناست که این ابزار روی سرور شما نصب نشده است. برای رفع این مشکل و نصب ابزار و آپدیت آن، از دستورات زیر استفاده کنید:
نصب nmap:
sudo apt install nmap
sudo apt update پس از نصب، با دستور زیر آن را تست کنید و سپس دستور اصلی را اجرا کنید:
nmap --version جدول مقایسه کامندهای مدیریت پورت در لینوکس
در جدول زیر به مقایسه مختصر ابزارهای Listening Ports در لینوکس می پردازیم
| ویژگی | ss | lsof | netstat | nmap | netcat (nc) |
|---|---|---|---|---|---|
| سرعت | بسیار بالا | متوسط | متوسط | پایین | بالا |
| نمایش پردازش | بله | بله (دقیق) | بله | خیر | خیر |
| اسکن راه دور | خیر | خیر | خیر | بله | بله |
| نصب پیشفرض | بله | معمولاً بله | نیاز به net-tools | نیاز به نصب | معمولاً بله |
توجه داشته باشید که ابزارهایی مثل netstat ممکن است در سیستمهای مدرن نصب نباشند و نیاز به نصب پکیج
net-tools داشته باشند. همچنین، اسکن با nmap روی سرورهای دیگران بدون اجازه، میتواند منجر به مسدود شدن IP شما توسط فایروالهای هوشمند شود.نتیجهگیری؛ چک کردن پورت های باز در لینوکس
در این مقاله آموختیم که پورتها نباید به حال خود رها شوند. مدیریت پورت های لینوکس به شما این قدرت را میدهد که هم امنیت را تضمین کنید و هم در زمان بروز اختلال، سریعترین واکنش را داشته باشید. همیشه به یاد داشته باشید که لیست پورت های باز لینوکس را داشته باشید؛ زیرا این اولین قدم در دیباگ کردن هر سروری است. با استفاده از ابزارهای معرفی شده مثل ss و lsof دیگر هیچ فعالیتی در سرور شما مخفی نخواهد ماند.
توصیههای امنیتی:
- پورتهایی که استفاده نمیکنید را با فایروال (UFW یا Firewalld) ببندید.
- به صورت دورهای پورتهای Listening را بررسی کنید.
- هر پورت ناشناس را فوراً بررسی و در صورت نیاز مسدود کنید.
- دسترسی به پورتهای حساس (مانند SSH) را به IPهای مشخص محدود کنید.
امیدوارم این مقاله از بلاگ وب داده برای شما مفید بوده باشد؛ در صورت داشتن هرگونه سوال فنی، در بخش نظرات با ما در ارتباط باشید.
سوالات متداول درباره بررسی پورت های باز در لینوکس
سریعترین دستور برای مشاهده پورت های در باز لینوکس چیست؟
بهترین و سریعترین گزینه برای مشاهده و مدیریت پورت های باز لینوکس، استفاده از دستور sudo ss -tulpn است.



