مقالات

پورت شبکه چیست؟ (Network Port)

در دنیای شبکه‌های کامپیوتری، ارتباط بین سیستم‌ها به صورت دقیق، ساختاریافته و لایه‌بندی شده انجام می‌شود. یکی از مهم‌ترین مفاهیمی که امکان ارتباط برنامه‌های مختلف بر روی یک سیستم با برنامه‌های مشابه یا متفاوت بر روی یک سیستم دیگر را فراهم می‌کند، پورت شبکه (Network Port) است.

پورت‌ها در کنار آدرس IP، نقش کلیدی در مسیریابی داده‌ها در بستر اینترنت یا شبکه‌های داخلی دارند. اگر آدرس IP به‌نوعی نشانی یک خانه باشد، پورت شماره اتاقی خاص در آن خانه است که مشخص می‌کند پیام به کدام سرویس یا برنامه باید برسد.


تعریف پورت شبکه

پورت در شبکه عددی ۱۶ بیتی (از 0 تا 65535) است که برای مشخص کردن یک سرویس یا فرآیند خاص در یک دستگاه متصل به شبکه استفاده می‌شود. این عدد به سیستم عامل کمک می‌کند تا داده‌های ورودی یا خروجی را به برنامه یا سرویس مناسب هدایت کند.

تعریف ساده:

پورت شبکه، شماره‌ای است که همراه با IP استفاده می‌شود تا تعیین شود که داده باید به کدام برنامه یا سرویس بر روی یک دستگاه خاص ارسال شود.


ساختار پورت در مدل TCP/IP

در مدل TCP/IP، به‌ویژه در لایه‌ی «Transport» (لایه انتقال)، دو پروتکل اصلی استفاده می‌شوند:

  1. TCP (Transmission Control Protocol)

  2. UDP (User Datagram Protocol)

هر دوی این پروتکل‌ها از شماره پورت استفاده می‌کنند. هنگامی که داده‌ای از یک سیستم به سیستم دیگر ارسال می‌شود، علاوه بر IP مبدا و مقصد، اطلاعات زیر نیز ضمیمه می‌شود:

  • پورت مبدا (Source Port)

  • پورت مقصد (Destination Port)

این اطلاعات به سیستم مقصد کمک می‌کنند تا داده را به برنامه درست هدایت کند.


محدوده پورت‌ها

پورت‌ها به سه دسته اصلی تقسیم می‌شوند:

محدوده شماره پورت‌ها توضیح
پورت‌های شناخته‌شده (Well-known Ports) 0 تا 1023 برای سرویس‌های معروف و جهانی رزرو شده‌اند. مانند HTTP، FTP، SSH
پورت‌های ثبت‌شده (Registered Ports) 1024 تا 49151 برای نرم‌افزارها و سرویس‌های اختصاصی
پورت‌های داینامیک یا خصوصی (Dynamic/Private Ports) 49152 تا 65535 برای استفاده موقت و نشست‌های کلاینت‌ها (ephemeral ports)

نمونه‌هایی از پورت‌های معروف

سرویس شماره پورت پروتکل
HTTP 80 TCP
HTTPS 443 TCP
FTP 21 TCP
SSH 22 TCP
Telnet 23 TCP
SMTP (ارسال ایمیل) 25 TCP
DNS 53 UDP/TCP
DHCP 67/68 UDP
MySQL 3306 TCP
RDP 3389 TCP

نحوه استفاده پورت‌ها در ارتباطات شبکه

فرض کنید مرورگر وب شما می‌خواهد به یک وب‌سایت متصل شود. مراحل زیر اتفاق می‌افتد:

  1. مرورگر به سیستم‌عامل می‌گوید که می‌خواهد به IP مربوط به سایت و پورت 80 (HTTP) متصل شود.

  2. سیستم‌عامل یک پورت مبدا موقت (مثلاً 54000) انتخاب می‌کند.

  3. بسته‌ی داده با مشخصات زیر ساخته می‌شود:

    • IP مقصد: 93.184.216.34 (مثلاً)

    • پورت مقصد: 80

    • پورت مبدا: 54000

  4. سرور درخواست را دریافت کرده و جواب را به IP و پورت مبدا (54000) برمی‌گرداند.

  5. سیستم شما این بسته را به مرورگر ارسال می‌کند.


ارتباط پورت با آدرس IP

آدرس IP یک دستگاه را در شبکه مشخص می‌کند، اما خود آن نمی‌گوید داده باید به کدام برنامه یا سرویس برسد. پورت دقیقاً این کار را انجام می‌دهد. ترکیب IP و پورت، اصطلاحاً Socket نامیده می‌شود.

مثال:

makefile
192.168.1.10:80

در اینجا:

  • IP = دستگاه موردنظر

  • پورت 80 = سرویس HTTP در آن دستگاه


تفاوت بین پورت TCP و UDP

ویژگی TCP UDP
اتصال‌گرا بله خیر
قابلیت اطمینان زیاد (دارای تاییدیه دریافت و کنترل خطا) کم
سرعت کمتر از UDP بیشتر
استفاده معمول وب، ایمیل، FTP ویدیو استریمینگ، بازی‌های آنلاین، DNS

ابزارهای بررسی پورت‌ها

برای بررسی پورت‌های باز، بسته یا در حال استفاده، می‌توان از ابزارهای مختلفی استفاده کرد:

در ویندوز:

  • netstat
    دستور: netstat -an

  • PowerShell
    دستور: Get-NetTCPConnection

  • Task Manager > Performance > Resource Monitor

در لینوکس:

  • netstat یا ss

  • lsof

  • دستور: sudo lsof -i -P -n

ابزارهای شبکه:

  • Nmap
    ابزار محبوب برای اسکن پورت در دستگاه‌های راه دور


پورت‌های باز، بسته و فیلتر شده

  1. پورت باز (Open): پورت به درخواست‌ها پاسخ می‌دهد و سرویس مربوطه فعال است.

  2. پورت بسته (Closed): دستگاه فعال است اما سرویس مربوط به آن پورت اجرا نمی‌شود.

  3. پورت فیلتر شده (Filtered): توسط فایروال یا دستگاهی مسدود شده و به درخواست‌ها پاسخ نمی‌دهد.


امنیت پورت‌ها

تهدیدات امنیتی مرتبط با پورت‌ها:

  • پورت‌های باز ناخواسته: ممکن است هکرها از پورت‌های باز برای نفوذ استفاده کنند.

  • پورت اسکنینگ (Port Scanning): تکنیکی برای یافتن پورت‌های باز یک سیستم برای یافتن نقاط ضعف.

  • Backdoor‌ها: بدافزارهایی که به پورت خاص گوش می‌دهند تا کنترل سیستم را به مهاجم بدهند.

راهکارهای امنیتی:

  • استفاده از Firewall برای بستن پورت‌های غیرضروری

  • بررسی پورت‌های باز به صورت منظم

  • جلوگیری از اجرای سرویس‌های ناامن بر روی پورت‌های شناخته‌شده

  • تغییر شماره پورت پیش‌فرض برای برخی سرویس‌ها (مثلاً SSH از 22 به 2222)


نقش پورت در سرورها

سرورها معمولاً به درخواست‌هایی که به پورت‌های مشخص ارسال می‌شوند گوش می‌دهند (Listening). به عنوان مثال:

  • یک سرور وب روی پورت 80 یا 443 گوش می‌دهد.

  • یک سرور SSH روی پورت 22 منتظر درخواست‌هاست.

  • اگر کلاینتی درخواستی به آن IP و پورت بفرستد، سرور پاسخ می‌دهد.


پورت در فایروال‌ها و NAT

فایروال

  • با بررسی شماره پورت می‌تواند تصمیم بگیرد که بسته را بپذیرد یا رد کند.

  • امکان پیکربندی برای اجازه یا مسدود کردن ترافیک به پورت خاص وجود دارد.

NAT (Network Address Translation)

  • هنگام ترجمه IP‌ها در مودم یا روتر، ممکن است از پورت‌های مختلف برای نگاشت دستگاه‌های داخلی به اینترنت استفاده شود.

  • مفهوم Port Forwarding یکی از مفاهیم مرتبط با NAT است.


Port Forwarding

در شبکه‌هایی با IP خصوصی، اگر بخواهیم از خارج از شبکه به سرویسی در داخل شبکه دسترسی داشته باشیم (مثلاً دوربین یا سرور)، باید پورت خاصی را از روی مودم/روتر به دستگاه خاصی در شبکه داخلی هدایت کنیم.

مثال:

  • درخواست به IP مودم روی پورت 8080 دریافت می‌شود.

  • مودم این درخواست را به IP داخلی 192.168.1.20 و پورت 80 ارسال می‌کند.


پورت‌های مجازی و نرم‌افزاری

در برخی سیستم‌ها (مثل Docker یا سرویس‌های ابری)، پورت‌ها ممکن است به صورت مجازی نگاشت شوند:

  • مثلاً پورت 8080 روی هاست به پورت 80 در کانتینر نگاشت شود.

  • این کار باعث می‌شود چند برنامه همزمان بتوانند روی پورت‌های متفاوت اجرا شوند.


نمونه‌هایی از مشکلات مرتبط با پورت

  • پورت در حال استفاده: نمی‌توان یک سرویس را روی پورتی اجرا کرد که قبلاً توسط سرویس دیگر اشغال شده است.

  • عدم اتصال به سرویس: اگر پورت فیلتر یا بسته باشد، ارتباط برقرار نمی‌شود.

  • سرویس در حال اجرا ولی دسترسی از بیرون قطع: ممکن است فایروال یا NAT مانع دسترسی شود.


جمع‌بندی

  • پورت شبکه شناسه‌ای عددی برای شناسایی سرویس‌ها و برنامه‌ها روی یک دستگاه متصل به شبکه است.

  • نقش اصلی آن در لایه انتقال (Transport Layer) برای شناسایی دقیق مقصد و مبدا سرویس است.

  • پورت‌ها به سه دسته تقسیم می‌شوند: شناخته‌شده، ثبت‌شده و داینامیک.

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

  • ابزارهایی مانند netstat، nmap، firewall و تنظیمات NAT به ما کمک می‌کنند تا از پورت‌ها به درستی استفاده کنیم.