ابزار خط فرمان برای شبیهسازی آپلود و افزایش نمودار ترافیک آپلود سرور.
- ✅ آپلود فیک با دادههای تصادفی
- ✅ آپلود موازی با چندین thread (سرعت بالا)
- ✅ بدون نیاز به سرور - استفاده از سرویسهای عمومی
- ✅ قابل تنظیم: مقدار، سرعت، مدت زمان
- ✅ نمایش پیشرفت به صورت Real-time
- ✅ پشتیبانی از حالت مداوم
- ✅ تست اتصال خودکار
- ✅ آمار کامل (موفق/ناموفق/سرعت)
- ✅ کنترل سرعت خودکار
بدون نیاز به سرور - فقط یک دستور:
python fake_upload.py -g 400 --null-serviceاین دستور 400 گیگ در 24 ساعت آپلود میکند به یک سرویس عمومی که دادهها را دور میاندازد.
# کلون کردن یا دانلود فایلها
cd fake-upload
# قابل اجرا کردن اسکریپت (اختیاری)
chmod +x fake_upload.pypython fake_upload.py -g 400 --null-servicepython fake_upload.py -g 400 -t 8 --null-servicepython fake_upload.py -g 100 --httpbinpython fake_upload.py -g 50 -c --null-service# ترمینال 1
python dummy_server.py -p 8080
# ترمینال 2
python fake_upload.py -g 400 -p 8080| پارامتر | کوتاه | توضیحات | پیشفرض |
|---|---|---|---|
--gigabytes |
-g |
مقدار گیگابایت برای آپلود | الزامی |
--host |
-H |
آدرس سرور مقصد | localhost |
--port |
-p |
پورت سرور | 9 |
--chunk-size |
-s |
سایز هر تکه (MB) | 10 |
--duration |
-d |
مدت زمان (ساعت) | 24 |
--continuous |
-c |
آپلود مداوم | false |
در سیستمهای Unix/Linux، سرویس discard در پورت 9 وجود دارد که تمام دادههای دریافتی را دور میاندازد.
# فعالسازی discard service در macOS
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.discard.plist
# فعالسازی در Linux (با xinetd)
sudo apt-get install xinetd
sudo systemctl enable xinetd
sudo systemctl start xinetd# شنود در پورت 8080 و دور انداختن دادهها
nc -l 8080 > /dev/nullایجاد فایل dummy_server.py:
from http.server import HTTPServer, BaseHTTPRequestHandler
class DummyHandler(BaseHTTPRequestHandler):
def do_POST(self):
content_length = int(self.headers.get('Content-Length', 0))
self.rfile.read(content_length) # خواندن و دور انداختن
self.send_response(200)
self.end_headers()
def log_message(self, format, *args):
pass # غیرفعال کردن لاگ
httpd = HTTPServer(('', 8080), DummyHandler)
print("سرور در حال اجرا در پورت 8080...")
httpd.serve_forever()سپس:
python dummy_server.pyو در ترمینال دیگر:
python fake_upload.py -g 100 -p 8080فایل config.json شامل پروفایلهای از پیش تعریف شده است:
- default: 400GB در 24 ساعت
- light: 50GB در 24 ساعت
- heavy: 1TB در 24 ساعت
- continuous: آپلود مداوم
این ابزار واقعاً داده ارسال میکند، پس:
- از bandwidth شما استفاده میکند
- برای تست، از سرور محلی استفاده کنید
- برای آپلود به اینترنت، محدودیت سرعت اینترنت را در نظر بگیرید
- تولید دادههای تصادفی CPU میبرد
- برای کاهش مصرف،
chunk_sizeرا کمتر کنید
برای مشاهده ترافیک واقعی:
# مشاهده ترافیک شبکه (Linux)
iftop
# مشاهده ترافیک (macOS)
nettop
# مشاهده connections
netstat -an | grep ESTABLISHED# راهاندازی سرور تست
python dummy_server.py &
# ارسال 10GB در 1 ساعت
python fake_upload.py -g 10 -d 1 -p 8080# آپلود مداوم با سرعت 20GB در روز
python fake_upload.py -g 20 -c# چند instance همزمان
python fake_upload.py -g 50 -d 2 &
python fake_upload.py -g 50 -d 2 &
python fake_upload.py -g 50 -d 2 &برای توقف از Ctrl+C استفاده کنید. برنامه آمار نهایی را نمایش میدهد.
# بررسی اینکه سرور در حال شنود است
netstat -an | grep LISTEN | grep <PORT>- سایز
chunk_sizeرا افزایش دهید - مطمئن شوید سرور مقصد پاسخگوست
- محدودیتهای شبکه را بررسی کنید
- از آن برای حمله DDoS استفاده نکنید
- فقط روی سرورهای خودتان تست کنید
- محدودیتهای ISP و هاستینگ را رعایت کنید
MIT License - استفاده آزاد