Future ForgeFuture ForgeFuture ForgeFuture Forge
ServicesWorkPackagesFree toolsNotesAboutContact
Start
  1. Home
  2. /Notes
Future ForgeFuture Forge

Product engineering studio — design, build, and deploy software.

Discuss your project

Contact

hello@futureforge.ir09128464105
Future ForgeFuture Forge

Product engineering studio — design, build, and deploy software.

Services

Product engineeringFull-stack engineeringEngineering auditArchitecture consultingInfrastructure and deploymentAI in the product

Explore

WorkNotesFAQPackages

Free tools

Engineering auditArchitecture advisorProject estimatorPrompt tool

Company

AboutContactPrivacyTerms of use

Discuss your project

Describe the problem and the constraints. If there is a fit, we will schedule a conversation.

Discuss your project

Contact

hello@futureforge.ir09128464105
GitHubLinkedIn

© 2026 FutureForge. All rights reserved.

HomeServicesFree toolsStart
Operations

پورت در لینوکس چیست و چگونه ببینیم چه چیزی گوش می‌دهد؟

مفهوم پورت TCP/UDP، تفاوت listening و established، و فرمان‌های ss برای دیدن چه فرایندی روی کدام پورت است.

SE
Soheil Ebrahimpour

Founder & product engineer

·Sep 20, 2026·4 min read
پورت لینوکسTCP portss -tulpnlistening socketsUDPfirewallbind
استیکی‌نوت پورت‌های 22 و 80 و 443

وقتی می‌گویید «پورت ۸۰ باز است» در واقع از یک نقطهٔ انتهایی منطقی روی پشتهٔ شبکه حرف می‌زنید: ترکیب آدرس IP، پروتکل انتقال (معمولاً TCP یا UDP) و شمارهٔ ۱۶بیتی پورت. بدون این مدل، خطاهای «address already in use»، اشتباه فایروال، و سردرگمی بین localhost و اینترفیس عمومی اجتناب‌ناپذیر است.

این مقاله مفهوم پورت را به فرمان‌های واقعی `ss` وصل می‌کند — ابزار مدرن جایگزینی netstat در بسیاری توزیع‌ها — تا ببینید چه فرایندی گوش می‌دهد و کدام اتصال برقرار است.

جدول SSH HTTP HTTPS با پورت‌ها

پاسخ کوتاه

پورت شماره‌ای است که به سیستم‌عامل می‌گوید ترافیک ورودی به کدام سوکت برنامه تحویل شود. سرویس‌ها روی پورت listen می‌کنند؛ کلاینت‌ها معمولاً از پورت موقت (ephemeral) به پورت شناخته‌شده وصل می‌شوند. برای دیدن شنوندگان: `ss -tulpn`. برای دیدن اینکه چه کسی به پورت وصل است: `ss -tp`. باز بودن پورت در فایروال جدا از این است که اصلاً سرویسی گوش بدهد.

پورت بدون فرایند شنونده فقط یک عدد در مستند است؛ فرایند بدون پورت قابل‌دسترس از بیرون، سرویس داخلی است.

TCP در برابر UDP — به اندازهٔ لازم

TCP اتصال‌گراست: handshake، جریان بایت، وضعیت‌هایی مثل LISTEN و ESTABLISHED. UDP دیتاگرام بی‌اتصال است؛ «شنیدن» یعنی سوکت به پورت bind شده و آمادۀ دریافت است. بسیاری سرویس‌های وب/دیتابیس TCPاند؛ DNS و برخی discoveryها UDP زیاد استفاده می‌کنند. شمارهٔ پورت در هر دو فضا جداست: UDP/53 با TCP/53 یکی نیستند.

بازهٔ شماره‌ها

  • ۰–۱۰۲۳: پورت‌های شناخته‌شده؛ bind اغلب نیاز به مجوز ویژه دارد.
  • ۱۰۲۴–۴۹۱۵۱: ثبت‌شده/کاربردی برای سرویس‌های زیاد.
  • ۴۹۱۵۲–۶۵۵۳۵: معمولاً پورت‌های موقت کلاینت.

مثال‌های رایج: ۲۲ SSH، ۸۰ HTTP، ۴۴۳ HTTPS، ۵۴۳۲ PostgreSQL، ۶۳۷۹ Redis. روی سرور production، سرویس‌های مدیریتی را ترجیحاً روی اینترفیس خصوصی نگه دارید نه ۰.۰.۰.۰ عمومی بدون فایروال.

دیدن چه چیزی گوش می‌دهد

bash

ss -tulpn ss -tlnp ss -ulnp

توضیح پرچم‌ها: -t TCP، -u UDP، -l فقط listening، -n عددی بدون resolve نام، -p نشان دادن فرایند (اغلب root لازم است برای همه). خروجی Local Address:Port می‌گوید روی کدام آدرس bind شده‌اید:

  • 127.0.0.1:5432 — فقط محلی
  • 0.0.0.0:80 یا *:80 — همهٔ IPv4
  • [::]:80 — IPv6

bash

ss -tlnp | grep ':22' ss -tlnp 'sport = :443'

اتصال‌های برقرار و عیب‌یابی

bash

ss -tp ss -s ss -tp state established '( dport = :443 or sport = :443 )'

اگر اپ به دیتابیس وصل نمی‌شود، ببینید آیا اصلاً LISTEN هست، روی کدام آدرس، و آیا فایروال اجازه می‌دهد. خطای connection refused معمولاً یعنی کسی گوش نمی‌دهد؛ timeout اغلب یعنی فیلتر/مسیر.

کدام فرایند پورت را گرفته؟

bash

sudo ss -tlnp | grep ':8080' sudo lsof -iTCP:8080 -sTCP:LISTEN

پس از یافتن PID، به ps و در صورت نیاز systemctl برگردید تا بفهمید واحد مالک کیست.

bash

ps -p PID -o pid,user,cmd systemctl status PID

Address already in use

یعنی پورت برای bind جدید آزاد نیست — سرویس قبلی زنده است، یا در TIME_WAIT گیر کرده‌اید، یا فرایند یتیم. با ss شنونده را پیدا و درست متوقف کنید؛ کشتن کورکورانه آخرین گزینه است.

bash

sudo ss -tlnp | grep ':3000'

فایروال و «باز بودن»

سه لایه را قاطی نکنید: (۱) bind برنامه، (۲) فیلتر هسته/فایروال میزبان، (۳) security group ابر. `ss` لایهٔ اول را نشان می‌دهد. باز کردن پورت در ufw بدون سرویس شنونده بی‌فایده است؛ سرویس روی 0.0.0.0 بدون فایروال خطرناک است.

جدول تصمیم سریع

سؤالفرمان شروع
چه سرویس‌هایی گوش می‌دهند؟ss -tulpn
آیا ۸۰ آزاد است؟ss -tlnp | grep ':80'
چه کسی به من وصل است؟ss -tp
فقط محلی است یا عمومی؟ستون Local Address در ss

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

  • فرض اینکه publish داکر همان bind روی میزبان را شفاف کرده بدون بررسی ss روی host.
  • باز کردن پورت دیتابیس به ۰.۰.۰.۰ برای «راحتی».
  • اتکا به netstat روی سیستمی که فقط ss دارد.
  • یکی دانستن UDP و TCP برای همان شماره.

خلاصه

پورت آدرس منطقی تحویل ترافیک به سوکت برنامه است. با ss ببینید چه می‌شنود و کجا bind شده، بعد فایروال و مالک فرایند را درست کنید. این مهارت پایهٔ عیب‌یابی استقرار، امنیت محیطی و مقالات شبکهٔ بعدی است.

سوالات متداول

چرا از بیرون نمی‌توانم وصل شوم ولی روی خود سرور می‌توانم؟

احتمالاً bind روی 127.0.0.1 است یا فایروال/security group ورودی را بسته. ss و قوانین فیلتر را جدا چک کنید.

آیا netstat هنوز لازم است؟

روی بسیاری سیستم‌های جدید ss جایگزین است؛ مفهوم یکی است، نحو فرق دارد.

منابع و مراجع

  • ss(8) — iproute2: https://man7.org/linux/man-pages/man8/ss.8.html
  • IANA Service Name and Transport Protocol Port Number Registry: https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml
  • ip(8) overview context: https://man7.org/linux/man-pages/man8/ip.8.html

Author

SE

Soheil Ebrahimpour is the founder of FutureForge. He works on product design, architecture, and getting custom software into production.

Related notes

Related notes

Categories

Related services

From note to project

If this topic is close to your product or system, we can talk about the real scope.

If you are unsure about architecture or the build path, we can talk about the project.

Describe the problem and the constraints. If there is a fit, we will schedule a conversation.

Soheil Ebrahimpour
Notes
مبانی شبکه در لینوکس: رابط، IP، مسیر و پورت
Logging چیست؟ ثبت رویداد برای تشخیص و پاسخ به حادثه
تعیین اندازهٔ سرور: RAM، CPU و Storage بر اساس Workload
Docker در برابر Kubernetes؛ مقایسهٔ دقیق نه شعار
چرا همیشه به Kubernetes نیاز ندارید؟

Operations

مبانی شبکه در لینوکس: رابط، IP، مسیر و پورت

Sep 20, 2026

Operations

Logging چیست؟ ثبت رویداد برای تشخیص و پاسخ به حادثه

Sep 20, 2026

Operations

تعیین اندازهٔ سرور: RAM، CPU و Storage بر اساس Workload

Sep 20, 2026

Operations

Docker در برابر Kubernetes؛ مقایسهٔ دقیق نه شعار

Sep 20, 2026

Operations

چرا همیشه به Kubernetes نیاز ندارید؟

Sep 20, 2026
All notes219
Software architecture13
Glossary37
Operations87
Product engineering74
Web guide8
Product engineering
Full-stack engineering
Engineering audit
Architecture consulting
Infrastructure and deployment
Discuss your project
Free tools
Discuss your project