🩺

عیب‌یاب جامع شبکه / SSL

مخصوص خطای Connection Error ربات تلگرام با api.pirayar.ir

Python 3.7+ بدون نیاز اجباری به نصب کتابخانه لاگ کامل + فایل خروجی مقایسه با api.telegram.org

ابزار تشخیص کامل قطع اتصال ربات تلگرام به api.pirayar.ir

این صفحه یک اسکریپت پایتونِ تک‌فایلی و کامل در اختیارتان می‌گذارد که مستقیماً در ترمینال هاست خودتان اجرا می‌کنید. اسکریپت به‌صورت لایه‌به‌لایه (سیستم → DNS → شبکه → TCP → SSL/TLS → HTTP) اتصال به دامنه پیرایار را تست می‌کند، نتیجه هر تست را با وضعیت PASS / FAIL / WARN چاپ می‌کند، با یک سرور سالم مرجع (api.telegram.org) مقایسه می‌کند و در پایان یک جمع‌بندی دقیق همراه با «علت احتمالی + راهکار رفع مشکل» بر اساس نتایج به شما می‌دهد. همچنین یک فایل لاگ کامل ذخیره می‌کند.

این اسکریپت دقیقاً چه چیزهایی را بررسی می‌کند؟

🖥️

اطلاعات سیستم و ساعت

نسخه پایتون، سیستم‌عامل و بررسی Clock Skew (ساعت اشتباه سرور، دلیل رایج خطای SSL Certificate Verify).

🌐

Proxy، resolv.conf و hosts

متغیرهای پروکسی محیطی، DNS سرورهای سیستم و رکوردهای دستی مشکوک در فایل hosts.

🔎

تحلیل کامل DNS

Resolve با DNS سیستم و مقایسه با DNS عمومی (8.8.8.8 و 1.1.1.1) و اعتبارسنجی IPهای بازگشتی.

🚪

اتصال TCP روی هر IP

تست جداگانه پورت ۴۴۳ روی تک‌تک IP های بازگشتی (مهم برای سرورهای پشت CDN/Cloudflare).

🔐

هندشیک SSL/TLS عمیق

اعتبار گواهی، تاریخ انقضا، نسخه TLS 1.2/1.3، تست با/بدون Verify، و اعتبارسنجی مستقل با openssl.

📡

درخواست واقعی HTTP

تست با urllib استاندارد و در صورت وجود با requests؛ دقیقاً همان نوع خطایی که ربات شما می‌گیرد را شبیه‌سازی می‌کند.

🛰️

Ping و Traceroute

بررسی افت پکت و مسیر شبکه بین هاست شما و سرور پیرایار.

🧱

فایروال محلی

در صورت اجرا با root، قوانین iptables/ip6tables برای ترافیک خروجی بررسی می‌شود.

⚖️

مقایسه با سرور سالم

تمام تست‌ها روی api.telegram.org هم تکرار می‌شود تا مشخص شود مشکل کلی شبکه است یا فقط پیرایار.

✈️

تست اختصاصی چندین سرور تلگرام

علاوه بر api.telegram.org، اتصال به core.telegram.org و web.telegram.org، اتصال مستقیم TCP (مستقل از DNS) به چند IP شناخته‌شده دیتاسنترهای تلگرام، و یک درخواست واقعی به متد getMe در Bot API نیز بررسی می‌شود تا مشخص شود مشکل فقط از پیرایار است یا کلاً دسترسی به تلگرام هم مختل است.

🧾

جمع‌بندی هوشمند

بر اساس اولین لایه‌ای که Fail شده (DNS/TCP/SSL/HTTP) راهکار دقیق و قابل‌اجرا پیشنهاد می‌دهد.

🌍

IP خروجی سرور شما

IP عمومی سرور را نمایش می‌دهد تا در صورت نیاز به Whitelist شدن، به پشتیبانی پیرایار بدهید.

📁

فایل لاگ کامل

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

نحوه استفاده روی هاست

۱

دانلود یا کپی اسکریپت

با دکمه «دانلود فایل» در پایین صفحه، فایل pirayar_diagnostic.py را دریافت و در هاست خود آپلود کنید، یا محتوا را کپی کرده و با nano/vi بسازید.

۲

(اختیاری ولی پیشنهادی) نصب کتابخانه‌ها

pip3 install requests certifi

۳

اجرای اسکریپت

python3 pirayar_diagnostic.py

پارامترهای اختیاری: --host، --port، --timeout، --skip-ping، --skip-traceroute، --no-reference، --skip-telegram

برای تست واقعی ربات خودتان با توکن، قبل از اجرا این متغیر را ست کنید:
export BOT_TOKEN=123456:AA...your_real_token

۴

بررسی نتیجه

خروجی ترمینال و بخش «جمع‌بندی نهایی» را بخوانید؛ فایل لاگ ساخته‌شده (pirayar_diagnostic_*.log) را برای تیم پشتیبانی پیرایار یا بررسی بیشتر نگه دارید.

فایل کامل: pirayar_diagnostic.py

pirayar_diagnostic.py

علل رایج Connection Error و ارتباط آن با نتایج تست

۱. شکست در مرحله DNS

اگر بخش DNS اسکریپت روی api.pirayar.ir شکست بخورد ولی روی api.telegram.org موفق باشد، مشکل از DNS سرور تنظیم‌شده در هاست شماست، نه شبکه پیرایار. راهکار: در فایل /etc/resolv.conf از DNS عمومی 8.8.8.8 و 1.1.1.1 استفاده کنید.

۲. DNS موفق ولی TCP ناموفق

یعنی آدرس IP سرور پیرایار پیدا شده اما پورت ۴۴۳ باز نمی‌شود. معمولاً به دلیل مسدود بودن IP خروجی هاست شما توسط فایروال پیرایار/CDN آن، یا مسدود بودن پورت خروجی توسط دیتاسنتر هاست شماست. IP خروجی سرور (که اسکریپت نمایش می‌دهد) را برای Whitelist به پشتیبانی پیرایار ارسال کنید.

۳. TCP موفق ولی SSL/TLS ناموفق

رایج‌ترین دلایل: ساعت سیستم اشتباه، گواهی SSL منقضی‌شده سمت پیرایار، CA bundle قدیمی روی هاست شما (اجرای update-ca-certificates)، یا فیلترینگ/DPI که هندشیک TLS را قطع می‌کند.

۴. همه‌چیز سالم ولی باز هم خطا می‌گیرید

احتمال Rate Limit سمت پیرایار، مشکل موقتی شبکه، یا تنظیمات ناقص Timeout/Retry در کد ربات است. Timeout و Retry با backoff را در کد افزایش دهید و در صورت وجود IPv6 خراب روی هاست، اتصال را به IPv4 محدود کنید.