فرآیند چندمرحلهای اسکن (Scan Pipeline)#
ابزار bgscan از اسکن چندمرحلهای پشتیبانی میکند؛ به طوری که خروجی یک مرحله از اسکن، به عنوان ورودی برای شروع مرحله بعدی استفاده میشود. این ویژگی از طریق تنظیمات عمومی (General Settings) زیر بخش “Pipeline Execution Mode” پیکربندی میشود.
حالتهای فرآیند پردازش (Pipeline Modes)#
برنامه bgscan سه حالت مختلف برای اجرای فرآیند پردازش ارائه میدهد تا بتوانید تعادلی میان عملکرد، میزان مصرف حافظه (RAM) و انعطافپذیری سیستم ایجاد کنید:
۱. حالت جریانی (Streaming - پیشفرض)#
Stage 1 (IPs) → [ICMP Scan] → [TCP Scan] → [HTTP Scan] → Results
│ │ │
▼ ▼ ▼
(passed IPs) (passed IPs) (passed IPs)- نحوه کار: تمام مراحل به صورت همزمان اجرا میشوند و آیپیها از طریق کانالهای داخل حافظه (In-memory) بین مراحل مختلف جریان پیدا میکنند.
- مصرف حافظه: بالاترین حد (چون چندین نسخه از لیست آیپیها را همزمان در حافظه نگه میدارد).
- سرعت: سریعترین حالت (نیازی به منتظر ماندن برای اتمام کامل یک مرحله نیست).
- بهترین کاربرد: اسکن با کارایی و سرعت حداکثری، در سیستمهایی که حافظه رم کافی دارند.
- زمان استفاده: وقتی رم کافی دارید و میخواهید بالاترین نرخ پردازش (Throughput) را بگیرید.
۲. حالت ترتیبی (Sequential)#
Stage 1 → [ICMP Scan] → (wait) → [TCP Scan] → (wait) → [HTTP Scan] → Results- نحوه کار: هر مرحله قبل از شروع، منتظر میماند تا مرحله قبلی به طور کامل پایان یابد.
- مصرف حافظه: کمترین حد (در هر لحظه فقط دادههای مربوط به یک مرحله در حافظه بارگذاری میشود).
- سرعت: کندترین حالت (زمان کل برابر است با مجموع زمان تکتک مراحل).
- بهترین کاربرد: محیطهایی که با محدودیت شدید حافظه رم مواجه هستند.
- زمان استفاده: هنگام اجرا روی سیستمهایی که رم محدودی دارند.
۳. حالت دستهای (Batch)#
[Batch 1 of IPs] → [ICMP Scan] → [TCP Scan] → [HTTP Scan] → Results
[Batch 2 of IPs] → [ICMP Scan] → [TCP Scan] → [HTTP Scan] → Results
...- نحوه کار: آیپیها به دستههای کوچکتر (Batches) تقسیم میشوند؛ هر دسته قبل از شروع دسته بعدی، تمام مراحل اسکن را به طور کامل طی میکند.
- مصرف حافظه: متوسط (دادههای مربوط به یک دسته را به ازای هر مرحله در حافظه نگه میدارد).
- سرعت: متوسط (بهتر از حالت ترتیبی و ضعیفتر از حالت جریانی).
- بهترین کاربرد: ایجاد تعادل میان مصرف حافظه و کارایی سیستم.
- زمان استفاده: وقتی میخواهید از پر شدن ناگهانی حافظه (Memory Spikes) جلوگیری کنید و در عین حال سرعت پردازش مناسبی داشته باشید.
پیکربندی فرآیند اسکن#
وضعیت اجرای فرآیند در فایل تنظیمات عمومی general_settings.toml تعیین میشود:
# Pipeline execution mode: "streaming", "sequential", or "batch"
pipeline_mode = "streaming"تنظیمات مراحل (Stage Configuration)#
هر مرحله در این فرآیند از فایل پیکربندی اختصاصی خود استفاده میکند:
- مرحله ICMP: فایل
icmp_settings.toml - مرحله TCP: فایل
tcp_settings.toml - مرحله HTTP: فایل
http_settings.toml - مرحله DNS: فایل
dns_settings.toml - مرحله Xray: فایل
xray_settings.toml
جریان داده بین مراحل#
تنها آیپیهایی به مرحله بعدی راه پیدا میکنند که معیارهای موفقیت مرحله فعلی را برآورده کنند:
- مرحله ICMP: فقط آیپیهایی که در مهلت زمانی و تعداد تلاش مشخص به پینگ پاسخ دهند، صعود میکنند.
- مرحله TCP: فقط آیپیهایی که پورت مشخصشده در آنها باز باشد، صعود میکنند.
- مرحله HTTP: فقط آیپیهایی که استاتوس کد مجاز و تایید شده بازگردانند، صعود میکنند.
- مرحله DNS: فقط آیپیهایی که پاسخهای DNS معتبر بازگردانند، صعود میکنند.
- مرحله Xray: فقط آیپیهایی که از تست اتصال اولیه (در صورت فعال بودن pre-scan) با موفقیت عبور کنند، برای تست تست پهنای باند فرستاده میشوند.
مثال عملی: فرآیند چندمرحلهای ICMP → TCP → HTTP#
- ورودی: تعداد ۱۰,۰۰۰ آیپی از لیست آیپیها.
- مرحله ICMP: تعداد ۲,۰۰۰ آیپی به پینگ پاسخ میدهند ← این ۲,۰۰۰ آیپی به مرحله TCP فرستاده میشوند.
- مرحله TCP: تعداد ۵۰۰ آیپی پورت ۸۰ باز دارند ← این ۵۰۰ آیپی به مرحله HTTP فرستاده میشوند.
- مرحله HTTP: تعداد ۳۰۰ آیپی کد وضعیت HTTP 200 برمیگردانند ← ۳۰۰ وبسرور فعال و درست پیدا میشود.
- خروجی:
- پوشه
results/icmp/حاوی نتایج بررسی تمام ۱۰,۰۰۰ آیپی اولیه است. - پوشه
results/tcp/حاوی نتایج مربوط به آن ۲,۰۰۰ آیپی پاسخگو به ICMP است. - پوشه
results/http/حاوی نتایج مربوط به آن ۵۰۰ آیپی پاسخگو به TCP است. - آمار نهایی: ۳۰۰ وبسرور فعال و سالم.
موضوعات مرتبط#
- نمای کلی اسکنر
- انواع اسکن
- تنظیمات عمومی - پیکربندی حالت اجرای فرآیند