شبکه · ۲۰ آبان ۱۴۰۵ · 6 دقیقه مطالعه

معرفی xping؛ ابزار متن‌باز عیب‌یابی شبکه در ترمینال

معرفی xping؛ ابزار متن‌باز عیب‌یابی شبکه در ترمینال

Your network, rendered — not just measured.
شبکه‌تان را ببینید، نه فقط اندازه بگیرید.

هر مدیر شبکه‌ای روزانه بارها از ابزارهایی مانند ping، traceroute، nslookup و openssl استفاده می‌کند. این ابزارها قدرتمندند، اما هر کدام خروجی، گزینه‌ها و منطق متفاوتی دارند و تفسیر خروجی خام آن‌ها، به‌ویژه در شرایط اضطراری، زمان‌بر است. xping با هدف رفع همین پراکندگی ساخته شده است.

در این مقاله، xping را معرفی می‌کنیم، قابلیت‌های اصلی آن را بررسی می‌کنیم و توضیح می‌دهیم چرا می‌تواند جایگزین مناسبی برای مجموعه‌ای از ابزارهای پراکنده در جعبه‌ابزار روزانه شما باشد.


xping چیست؟

xping یک ابزار متن‌باز خط فرمان برای عیب‌یابی شبکه است که با زبان Python نوشته شده و تحت مجوز MIT منتشر می‌شود. این ابزار عملیات Ping، Traceroute، MTR، بررسی DNS، TLS، HTTP و Wi-Fi را در کنار یک «پزشک اتصال» (doctor) و یک داشبورد پایش زنده در اختیار شما قرار می‌دهد.

خروجی xping رنگی و خواناست، مشکلات را به زبان ساده توضیح می‌دهد و نتایج را می‌توان با فرمت‌های JSON، CSV یا Markdown خروجی گرفت. همچنین برای اجرا به دسترسی root نیاز ندارد و تنها به یک وابستگی کوچک متکی است.

نمونه خروجی دستورات xping در ترمینال
نمایی از چند دستور xping و خروجی رنگی آن‌ها (تصویر نمایشی)

قابلیت‌های اصلی

۱. عیب‌یابی سریع اتصال

  • xping doctor: اتصال را مرحله‌به‌مرحله بررسی می‌کند؛ از اینترفیس شبکه و Default Gateway گرفته تا دسترسی به اینترنت، حل نام DNS، کیفیت اتصال، Captive Portal و در نهایت HTTPS/TLS همراه با بررسی ساعت سیستم. در پایان، یک جمع‌بندی به زبان ساده ارائه می‌دهد؛ مثلاً اینکه تأخیر بالا عمدتاً ناشی از تونل VPN است، نه شبکه محلی.
  • xping health: بر اساس Packet Loss، تأخیر و Jitter، یک امتیاز سلامت شبکه از ۰ تا ۱۰۰ ارائه می‌کند.
  • xping net: اینترفیس‌ها، Gateway، سرورهای DNS، آی‌پی عمومی و اینکه آیا ترافیک از VPN عبور می‌کند یا خیر را نمایش می‌دهد.
  • xping wifi: قدرت سیگنال، نویز، SNR و شلوغی کانال را گزارش می‌کند و راهکار پیشنهاد می‌دهد.

۲. پایش و گزارش‌گیری

  • xping monitor: داشبوردی زنده از همه چک‌های تعریف‌شده، شامل وضعیت، تأخیر، نمودار روند و درصد Uptime. این قابلیت می‌تواند به‌صورت سرویس پس‌زمینه نیز اجرا شود.
  • هشدارهای هوشمند: با گزینه‌های --watch و --until-up یک بررسی تکرار می‌شود و هشدار دسکتاپ یا Webhook ارسال می‌کند. گزینه --fail-after نیز تا چند خطای متوالی رخ ندهد، قطعی گزارش نمی‌کند؛ بنابراین یک اختلال لحظه‌ای منجر به هشدار کاذب نمی‌شود.
  • xping report: یک صفحه HTML مستقل از وضعیت Uptime تولید می‌کند که هیچ اسکریپت یا بارگذاری خارجی ندارد و برای ارائه گزارش هفتگی به مدیران بسیار مناسب است.

۳. بررسی سرویس‌ها

  • xping http: کد وضعیت، ریدایرکت‌ها و نمودار زمانی (Waterfall) مراحل DNS، اتصال TCP، Handshake TLS و پاسخ سرور را نمایش می‌دهد و هدرهای امنیتی مانند HSTS، CSP و X-Frame-Options را بررسی می‌کند.
  • xping tls و xping smtp: بررسی گواهی‌ها و تاریخ انقضا، و بررسی سرورهای ایمیل به‌همراه STARTTLS.
  • xping dnscheck: رکوردهای SPF، DMARC، DKIM، DNSSEC، MX و NS را بررسی کرده و امتیاز سلامت DNS ارائه می‌کند؛ برای مثال، سیاست p=none در DMARC را با هشدار مشخص می‌کند.
  • دستورات lookup، propagation، blocklist و whois نیز برای بررسی‌های تکمیلی DNS در دسترس هستند.

۴. ردیابی مسیر و اسکن

  • xping trace و xping mtr: ردیابی مسیر با نمایش تأخیر هر Hop. گزینه --asn نام مالک AS را اضافه می‌کند و گزینه --tcp زمانی که فایروال‌ها بسته‌های ICMP را مسدود می‌کنند، ردیابی را از طریق TCP انجام می‌دهد.
  • ابزارهای tcp، udp، mtu، ntp و speedtest برای بررسی پورت‌ها، کشف Path MTU، بررسی زمان و تست سرعت.
  • portscan، sweep و ipscan برای اسکن پورت و کشف میزبان‌ها در یک بازه آدرس.
  • xping check: اجرای مجموعه‌ای از چک‌ها از روی یک فایل (TOML یا JSON) و بازگرداندن یک Exit Code واحد؛ ایده‌آل برای اسکریپت‌ها و CI.

چرا xping؟ مزایای کلیدی

  • یک ابزار به‌جای ده ابزار: همه دستورات سبک خروجی و Exit Code یکسانی دارند و رنگ‌ها در همه آن‌ها معنای یکسانی دارند؛ سبز برای تأخیر زیر ۳۰ میلی‌ثانیه و قرمز برای ۳۰۰ میلی‌ثانیه و بیشتر.
  • توضیح به زبان ساده: به‌جای خروجی خام، xping می‌گوید مشکل کجاست و چه باید کرد.
  • بدون نیاز به root: Ping، Trace و MTR در لینوکس و macOS از سوکت‌های ICMP بدون دسترسی ویژه استفاده می‌کنند و در صورت نبود آن‌ها، به ابزارهای سیستم بازمی‌گردند.
  • سبک و قابل‌حمل: فقط به Python 3.10 به بالا و کتابخانه certifi نیاز دارد و هیچ افزونه کامپایل‌شده‌ای ندارد. روی لینوکس، macOS و ویندوز اجرا می‌شود.
  • مناسب اتوماسیون: خروجی JSON/CSV/Markdown و Exit Codeهای استاندارد (۰ موفق، ۱ ناموفق، ۲ استفاده نادرست) امکان استفاده در اسکریپت‌ها و پایپ‌لاین‌ها را فراهم می‌کند.
  • شفافیت در حریم خصوصی: قابلیت‌هایی که داده‌ای به سرویس‌های خارجی ارسال می‌کنند، مانند --asn، به‌صورت اختیاری فعال می‌شوند و در مستندات به‌روشنی معرفی شده‌اند.

نصب

xping از طریق مدیرهای بسته رایج در دسترس است:

macOS (Homebrew):

brew install mehaskari/tap/xping

Ubuntu 24.04 (PPA):

sudo add-apt-repository ppa:mehdiaskari/xping
sudo apt update
sudo apt install xping

Fedora / EPEL 10 (COPR):

sudo dnf copr enable mehaskari/xping
sudo dnf install xping

ویندوز و سایر سیستم‌ها (PyPI):

pipx install xping
xping completion --install

بسته Snap نیز با دستور sudo snap install xping قابل نصب است.

اولین قدم‌ها

# بررسی کامل وضعیت اتصال اینترنت
xping doctor

# پینگ یک میزبان و دریافت پیشنهاد برای قدم بعدی
xping 1.1.1.1

# ردیابی مسیر با نمایش نام AS
xping trace 1.1.1.1 --asn

# ساخت فایل چک اختصاصی
xping check --init

# گزارش هفتگی HTML
xping report --since 7d --compare -o weekly.html

جمع‌بندی

xping تلاش می‌کند عیب‌یابی شبکه را از یک فرایند پراکنده و مبتنی بر خروجی‌های خام، به تجربه‌ای منسجم، خوانا و قابل‌اتکا تبدیل کند. چه مدیر شبکه باشید و چه توسعه‌دهنده‌ای که می‌خواهد بداند «مشکل از شبکه است یا از سرور؟»، xping می‌تواند پاسخ را سریع‌تر در اختیارتان بگذارد.

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

بیشتر بخوانید

مهدی عسکری
کارشناس شبکه و زیرساخت.

2 دیدگاه

  1. معرفی Termalith؛ نرم‌افزار متن‌باز SSH، SFTP و RDP - مهدی عسکری | شبکه و زیرساخت
    ۲۰ آبان ۱۴۰۵

    […] معرفی xping؛ ابزار متن‌باز عیب‌یابی شبکه در ترمینال […]

    پاسخ
  2. آموزش Firewall و NAT در میکروتیک با Packet Flow - مهدی عسکری | شبکه و زیرساخت
    ۲۰ آبان ۱۴۰۵

    […] معرفی xping؛ ابزار متن‌باز عیب‌یابی شبکه در ترمینال […]

    پاسخ

دیدگاه بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *