ابزار Port Checker چیست و چگونه پورت را بررسی کنیم؟
Port Checker مشخص می‌کند یک پورت شبکه از اینترنت عمومی قابل دسترسی است یا نه. با ابزار Port Checker آسیاتکین می‌توانید یک پورت مشخص یا مجموعه‌ای از پورت‌های رایج را از مبدأ دیتاسنتر آزمایش کنید و ببینید سرویسی مانند وب‌سرور، SSH یا Remote Desktop از بیرون شبکه پاسخ می‌دهد یا اتصال ورودی پیش از رسیدن به آن مسدود می‌شود.یک نکته را از همان ابتدا بدانید تا تفسیر نتیجه اشتباه نشود: خروجی این ابزار فقط وضعیت مسیر تا پورت مقصد را نشان می‌دهد. باز بودن پورت ثابت نمی‌کند که سرویس لایه کاربرد سالم است. پورت ۴۴۳ می‌تواند کاملاً باز باشد و سایت همچنان به‌دلیل ایراد گواهی SSL، تنظیم نادرست وب‌سرور یا مشکل DNS بالا نیاید.

پورت شبکه چه نقشی در برقراری اتصال دارد؟

هر دستگاه با یک آدرس IP شناخته می‌شود، اما ممکن است چند سرویس هم‌زمان روی همان دستگاه اجرا شوند. شماره پورت تعیین می‌کند بسته دریافتی به کدام سرویس تحویل داده شود؛ وب‌سرور HTTPS معمولاً روی ۴۴۳، سرویس SSH روی ۲۲ و Remote Desktop ویندوز روی ۳۳۸۹ منتظر اتصال می‌ماند.

شماره پورت مقداری ۱۶ بیتی در محدوده ۰ تا ۶۵۵۳۵ است. در فهرست رسمی پورت‌ها و سرویس‌های IANA، شماره‌های ۰ تا ۱۰۲۳ در محدوده System Ports، ۱۰۲۴ تا ۴۹۱۵۱ در محدوده User Ports و ۴۹۱۵۲ تا ۶۵۵۳۵ در محدوده Dynamic یا Private قرار می‌گیرند. ثبت یک سرویس برای شماره‌ای خاص به این معنا نیست که هر برنامه‌ای مجبور است از همان پورت استفاده کند؛ مدیر سرور می‌تواند بسیاری از سرویس‌ها را روی پورت دیگری بالا بیاورد.

اتصال TCP با یک فرایند مشخص برقراری ارتباط میان مبدأ و مقصد شروع می‌شود که در استاندارد RFC 9293 تعریف شده است. Port Checker همین اتصال را از بیرون شبکه تلاش می‌کند و پاسخ مقصد را می‌سنجد.

ابزار آسیاتکین چگونه آزمایش را انجام می‌دهد؟

درخواست TCP از سروری در دیتاسنتر به Hostname یا IP واردشده فرستاده می‌شود. اگر نام دامنه وارد کرده باشید، اول نام به آدرس IP ترجمه و بعد تلاش برای اتصال انجام می‌شود. این روش دقیقاً شرایط کاربری را شبیه‌سازی می‌کند که از اینترنت عمومی قصد اتصال به سرور شما را دارد.

دو حالت آزمایش وجود دارد. حالت یک پورت برای بررسی شماره‌ای مانند ۲۲، ۴۴۳ یا ۳۳۸۹ مناسب است و حالت پورت‌های رایج، هجده پورت پرکاربرد را در یک نوبت می‌سنجد و نمایی سریع از سرویس‌های قابل مشاهده روی مقصد می‌دهد.

ابزار فقط اتصال TCP را بررسی می‌کند و IPهای خصوصی مانند 192.168.1.10 یا 10.0.0.5 را نمی‌پذیرد، چون این نشانی‌ها فقط در شبکه داخلی مسیریابی می‌شوند. خروجی شامل شماره پورت، وضعیت، نام احتمالی سرویس و Latency برحسب میلی‌ثانیه است و می‌توانید گزارش را برای ارسال به مدیر شبکه کپی کنید.

آموزش کار با ابزار Port Checker

پیش از هر چیز، سرویس مقصد باید روشن باشد. اگر وب‌سرور، دوربین، VPN Server یا SSH خاموش باشد، هیچ تنظیم درستی در فایروال و مودم باعث نمی‌شود پورت Open دیده شود.

  1. در کادر Hostname / IP، دامنه یا IP عمومی مقصد را بنویسید؛ بدون http://، بدون مسیر صفحه و بدون شماره پورت. مثلاً example.com.

  2. برای آزمایش یک سرویس، گزینه یک پورت را انتخاب و شماره را در کادر Port وارد کنید. مقدار باید میان ۱ تا ۶۵۵۳۵ باشد.

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

  4. دکمه بررسی را بزنید و تا پایان اتصال‌های آزمایشی صبر کنید.

  5. وضعیت هر پورت را در ستون STATE بخوانید و مقدار LATENCY را فقط زمان برقراری اتصال TCP از دیتاسنتر تفسیر کنید، نه سرعت سایت یا پینگ کاربر.

  6. گزارش را همراه زمان آزمایش، IP مقصد و تنظیماتی که انجام داده‌اید برای تیم فنی بفرستید.

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

معنی Open، Closed، Filtered و Timeout چیست؟

نتیجه Open یعنی مقصد اتصال TCP را پذیرفته و سرویسی روی آن پورت پاسخ داده است. مقدار Latency در این حالت زمان تقریبی برقراری اتصال از مبدأ اسکن تا مقصد است و مسیر دیتاسنتر، فشار لحظه‌ای سرور و نحوه پاسخ‌گویی فایروال می‌تواند آن را جابه‌جا کند.

نتیجه Closed معمولاً یعنی دستگاه مقصد در دسترس است اما هیچ برنامه‌ای روی آن شماره منتظر اتصال نیست، یا سیستم مقصد درخواست را صریحاً رد کرده است. در این حالت اول وضعیت سرویس را روی خود سرور کنترل کنید؛ در ویندوز با netstat -ano و در لینوکس با ss -lntp می‌بینید کدام پورت‌های TCP در حالت Listening هستند.

Filtered یعنی ابزار پاسخ قطعی دریافت نکرده که بگوید پورت باز است یا بسته. فایروال سیستم‌عامل، فایروال دیتاسنتر، ACL روتر، Security Group یا محدودیت اپراتور می‌تواند بسته آزمایشی را بدون هیچ پاسخی حذف کند. توضیح Nmap درباره وضعیت پورت‌ها اینجا کلیدی است: این سه وضعیت ویژگی دائمی خود پورت نیستند، بلکه نحوه دیده‌شدن آن از یک مبدأ مشخص را بیان می‌کنند. همان پورت از مبدأ دیگری ممکن است وضعیت دیگری نشان دهد.

نتیجه Timeout هم وقتی ثبت می‌شود که پاسخی در مهلت تعیین‌شده نرسد. خاموش‌بودن سرور، اشتباه‌بودن IP، اختلال مسیر، Packet Loss، Rate Limiting و حذف بسته توسط فایروال همه محتمل‌اند. یک بار تکرار آزمایش برای حذف خطای لحظه‌ای منطقی است، اما تکرار مداوم بدون بازبینی تنظیمات هیچ اطلاعات تازه‌ای تولید نمی‌کند.

چرا نتیجه بیرونی با تست داخلی فرق می‌کند؟

یک اتصال ورودی از چند لایه عبور می‌کند: فایروال اپراتور یا دیتاسنتر، روتر مرزی، مودم، Port Forwarding، فایروال سیستم‌عامل، و در نهایت برنامه‌ای که باید روی پورت گوش دهد. مجاز بودن اتصال در یک لایه، عبور از لایه بعدی را تضمین نمی‌کند و Port Checker دقیقاً برای دیدن این لایه‌ها از بیرون ساخته شده است.

مدیران سیستم مرتب به ما می‌گویند پورت باز است، چون در خروجی netstat وضعیت Listening را دیده‌اند. اما Listening فقط وضعیت داخل سیستم‌عامل را نشان می‌دهد و درباره فایروال روتر یا Security Group سرور ابری چیزی نمی‌گوید. به همین ترتیب، پاسخ‌دادن telnet localhost 443 فقط عملکرد سرویس در شبکه محلی را تأیید می‌کند.

گاهی هم صورت‌مسئله اصلاً پورت نیست و دامنه به IP قدیمی اشاره می‌کند. در این حالت اول IP جدید را مستقیم آزمایش کنید و بعد سراغ رکورد DNS بروید. اگر دامنه‌ای چند IP داشته باشد، نتیجه فقط به یکی از سرورها مربوط است و برای عیب‌یابی دقیق باید هر IP جداگانه بررسی شود.

Port Forwarding، IP عمومی و مسئله CGNAT

در شبکه خانگی، دستگاه‌هایی مانند NVR، NAS یا کامپیوتر IP خصوصی دارند. Port Forwarding در مودم، اتصال واردشده به یک پورت روی IP عمومی را به IP و پورت دستگاه داخلی هدایت می‌کند. برای کارکرد درستش، IP داخلی دستگاه باید ثابت باشد، سرویس روی همان پورت گوش دهد و فایروال دستگاه اجازه اتصال بدهد؛ جزئیات اجرایی تنظیم Port Forwarding را جداگانه توضیح داده‌ایم.

اگر IP بخش WAN مودم با IP‌ای که در اینترنت دیده می‌شود فرق دارد، احتمالاً پای CGNAT در میان است. بازه 100.64.0.0/10 طبق RFC 6598 برای فضای اشتراکی اپراتورها رزرو شده است و در این حالت Port Forwarding روی مودم به‌تنهایی هیچ اتصال ورودی از اینترنت نمی‌سازد، چون ترجمه آدرس دیگری در شبکه اپراتور انجام می‌شود.

این وضعیت را در نصب‌های دوربین مداربسته زیاد می‌بینیم: تمام قواعد Virtual Server درست ثبت شده، مشتری چند بار شماره پورت را عوض کرده و باز هم چیزی از بیرون بالا نمی‌آید، در حالی که WAN مودم آدرسی از محدوده اشتراکی دارد. تغییر شماره پورت اینجا هیچ‌وقت جواب نمی‌دهد؛ راه‌حل، IP عمومی یا ثابت یا یک راهکار VPN است. اگر قرار است سرویسی از بیرون در دسترس باشد، نوع IP سرویس را پیش از دست‌زدن به تنظیمات مودم مشخص کنید — تفاوت IP عمومی، ثابت، پویا و اشتراکی را در مطلب مربوط به IP ثابت شرح داده‌ایم.

محدودیت TCP؛ چرا UDP سنجیده نمی‌شود

این ابزار فقط پورت‌های TCP را آزمایش می‌کند. سرویس‌هایی مانند HTTP، HTTPS، SSH و RDP بر TCP متکی‌اند و با آن قابل بررسی‌اند، اما DNS، VoIP، بازی‌های آنلاین و تونل‌های VPN ممکن است از UDP استفاده کنند یا بسته به تنظیمات هر دو پروتکل را به کار بگیرند.

UDP فرایند برقراری اتصال مشابه TCP ندارد، بنابراین ناموفق‌بودن تست TCP روی یک شماره، چیزی درباره وضعیت همان شماره در UDP ثابت نمی‌کند. اگر سامانه VoIP روی UDP پورت ۵۰۶۰ تنظیم شده باشد، نتیجه Closed در آزمایش TCP همان شماره اطلاعات معتبری نمی‌دهد.

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

مدیر وب‌سرور می‌تواند پیش از انتشار سایت پورت‌های ۸۰ و ۴۴۳ را کنترل کند و پس از مهاجرت سرور ببیند قوانین فایروال روی مقصد جدید اعمال شده‌اند یا نه. برای مدیریت سرور، بررسی پورت ۲۲ یا پورت سفارشی SSH مسیر ورودی را روشن می‌کند. پورت ۳۳۸۹ مربوط به RDP نباید بدون محدودیت IP یا لایه VPN در معرض اینترنت باشد، و در سامانه ایمیل هم پورت‌های ۲۵، ۴۶۵ و ۵۸۷ کاربردهای متفاوتی دارند.

در شبکه خانگی این ابزار برای کنترل دسترسی به NVR، NAS، Home Server و VPN Server به کار می‌آید. با این حال بازکردن مستقیم صفحه مدیریت مودم، دوربین یا تجهیزات ذخیره‌سازی روی اینترنت روش امنی نیست؛ دسترسی از طریق VPN، محدودیت IP مبدأ، رمز قوی و به‌روزرسانی Firmware سطح حمله را پایین می‌آورد. پورت‌های پایگاه داده مانند ۳۳۰۶ برای MySQL و ۵۴۳۲ برای PostgreSQL هم معمولاً باید فقط در شبکه خصوصی در دسترس باشند؛ دیدن Open برای این دو موفقیت نیست، بلکه احتمالاً نشانه فایروالی است که بیش از حد باز گذاشته شده.

ترتیب عیب‌یابی را از داخل به بیرون نگه دارید. اول Listening بودن سرویس را روی دستگاه مقصد کنترل کنید، بعد فایروال سیستم‌عامل و Port Forwarding یا Security Group را، و در آخر Port Checker را اجرا کنید. اگر نتیجه Filtered بود سراغ لاگ فایروال و نوع IP اینترنت بروید، و اگر Open بود اما برنامه کار نکرد، بررسی را به DNS، TLS و تنظیمات همان سرویس منتقل کنید. در هر مرحله فقط یک تنظیم را عوض کنید، وگرنه وقتی مشکل حل شد نمی‌دانید کدام تغییر جواب داده است.

منابع