Skip to content

Arash-Ariaye/mtu-optimizer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 

Repository files navigation

🚀 اسکریپت بهینه‌ساز MTU

اسکریپتی برای پیدا کردن بهترین مقدار MTU (Maximum Transmission Unit) در اینترفیس شبکه.
این ابزار به‌طور خودکار مقدارهای مختلف MTU را تست کرده و بهینه‌ترین مقدار را برای کمترین پینگ، کمترین جتر و بدون از دست رفتن پکت‌ها تنظیم می‌کند.


✨ ویژگی‌ها

پیدا کردن بهینه‌ترین MTU برای کاهش پینگ و افزایش پایداری شبکه
تست سریع و موازی برای کاهش زمان اجرای تست‌ها
تنظیم خودکار مقدار MTU روی اینترفیس شبکه
قابلیت اجرای خودکار از طریق crontab
ذخیره تمام نتایج تست در فایل mtu_test_results.txt


📌 پیش‌نیازها

  • سیستم‌عامل Ubuntu یا Debian
  • دسترسی به اینترنت برای تست پینگ
  • دسترسی root (اجرا با sudo)
  • نصب بودن ابزارهای ping و ip (به‌صورت پیش‌فرض در اکثر توزیع‌ها وجود دارند)

⚙️ تنظیمات اولیه

قبل از اجرا، درون اسکریپت می‌توانی این مقادیر را تغییر بدهی یا از متغیرهای محیطی استفاده کنی:

INTERFACE="eth0"   # نام اینترفیس شبکه
TARGET_IP="8.8.8.8" # آدرس IP برای تست پینگ
PING_COUNT=10       # تعداد پکت‌های ارسالی در هر تست

🚀 روش‌های دانلود و نصب

۱. دانلود و اجرای مستقیم با wget

اگر git روی سرورت نصب نیست، می‌توانی اسکریپت را مستقیماً دانلود کنی:

wget https://raw.githubusercontent.com/Arash-Ariaye/mtu-optimizer/main/mtu_test.sh -O mtu_test.sh
chmod +x mtu_test.sh
sudo ./mtu_test.sh

2. اجرای مستقیم با تنظیمات دلخواه

می‌توانی متغیرهای محیطی را مستقیماً در خط فرمان مشخص کنی:

sudo bash -c 'INTERFACE="eth0" TARGET_IP="1.1.1.1" PING_COUNT=10 ./mtu_test.sh'

3. کلون کردن مخزن از GitHub

git clone https://github.com/Arash-Ariaye/mtu-optimizer.git
cd mtu-optimizer
chmod +x mtu_test.sh
sudo ./mtu_test.sh

📊 نمونه خروجی

🔍 شروع تست MTU برای IP 1.1.1.1 با ۵ پکت...
MTU 1475: میانگین پینگ=25.123 ms، از دست رفتن پکت‌ها=0%، جتر=1.234 ms
MTU 1474: میانگین پینگ=24.987 ms، از دست رفتن پکت‌ها=0%، جتر=0.987 ms
[...]

✅ بهترین مقدار MTU: 1474  
   🔹 میانگین پینگ: 24.987 میلی‌ثانیه  
   🔹 از دست رفتن پکت‌ها: 0%  
   🔹 جتر: 0.987 میلی‌ثانیه  

⚙ در حال تنظیم مقدار MTU 1474 روی اینترفیس `eth0`...  
✅ **MTU جدید با موفقیت اعمال شد!**  
📄 نتایج کامل در فایل `mtu_test_results.txt` ذخیره شدند.

⏳ اجرای خودکار با Crontab (هر ۵ دقیقه)

۱. انتقال اسکریپت به /root

sudo mv mtu_test.sh /root/mtu_test.sh
sudo chmod +x /root/mtu_test.sh

۲. افزودن به crontab با تنظیمات دلخواه

برای اجرای خودکار با متغیرهای محیطی مشخص (مثلاً TARGET_IP=1.1.1.1 و PING_COUNT=5):

(crontab -l 2>/dev/null; echo "*/5 * * * * /bin/bash -c 'INTERFACE=\"eth0\" TARGET_IP=\"1.1.1.1\" PING_COUNT=5 /root/mtu_test.sh' >> /var/log/mtu_optimizer.log 2>&1") | crontab -

۳. بررسی کرون‌جاب

crontab -l

🔹 باید خط زیر را ببینی:

*/5 * * * * /bin/bash -c 'INTERFACE="eth0" TARGET_IP="1.1.1.1" PING_COUNT=5 /root/mtu_test.sh' >> /var/log/mtu_optimizer.log 2>&1

۴. مشاهده لاگ‌ها

sudo cat /var/log/mtu_optimizer.log

⏳ تغییر زمان‌بندی اجرای خودکار

می‌توانی اجرای خودکار را به هر ۱۰ دقیقه یا هر ساعت تغییر بدهی:

  • هر ۱۰ دقیقه:
(crontab -l 2>/dev/null; echo "*/10 * * * * /bin/bash -c 'INTERFACE=\"eth0\" TARGET_IP=\"1.1.1.1\" PING_COUNT=5 /root/mtu_test.sh' >> /var/log/mtu_optimizer.log 2>&1") | crontab -
  • هر ساعت:
(crontab -l 2>/dev/null; echo "0 * * * * /bin/bash -c 'INTERFACE=\"eth0\" TARGET_IP=\"1.1.1.1\" PING_COUNT=5 /root/mtu_test.sh' >> /var/log/mtu_optimizer.log 2>&1") | crontab -

❌ حذف اجرای خودکار

crontab -e

🔹 سپس خط مربوط به اجرای اسکریپت را پاک کن.


📂 فایل‌های موجود در پروژه

نام فایل توضیحات
mtu_test.sh اسکریپت اصلی برای تست و تنظیم MTU
mtu_test_results.txt ذخیره نتایج تست‌های قبلی

🔧 اشکال‌یابی

🔹 خطای "اینترفیس وجود ندارد" → نام اینترفیس را در اسکریپت یا متغیر محیطی چک کن.
🔹 تنظیم MTU انجام نشد → مطمئن شو که اسکریپت را با sudo اجرا می‌کنی.
🔹 خطا در تست پینگ → اینترنت و IP موردنظر برای تست را بررسی کن.

📄 مشاهده نتایج ذخیره‌شده:

cat mtu_test_results.txt

📜 مجوز

این پروژه تحت MIT License منتشر شده است. جزئیات بیشتر در فایل LICENSE.


توضیحات تغییرات اعمال‌شده:

  1. اضافه شدن روش اجرای مستقیم با متغیرهای محیطی: دستور sudo bash -c 'INTERFACE="eth0" TARGET_IP="1.1.1.1" PING_COUNT=5 ./mtu_test.sh' به بخش روش‌های دانلود و نصب اضافه شد.
  2. به‌روزرسانی کرون‌جاب: مثال کرون‌جاب با متغیرهای محیطی (INTERFACE="eth0" TARGET_IP="1.1.1.1" PING_COUNT=5) جایگزین مثال قبلی شد تا تنظیمات دلخواه به‌صورت واضح نمایش داده شود.
  3. نمونه خروجی به‌روز شد: برای هماهنگی با تغییرات، TARGET_IP به 1.1.1.1 و PING_COUNT به 5 تغییر کرد.
  4. حفظ ساختار قبلی: سایر بخش‌ها مانند پیش‌نیازها، ویژگی‌ها و اشکال‌یابی بدون تغییر باقی ماندند تا توضیحات جامع و کامل بمانند.

این نسخه جدید را می‌توانید در مخزن GitHub خود جایگزین کنید. اگر نیاز به تغییرات دیگری دارید، اطلاع دهید!

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages