اسکریپتی برای پیدا کردن بهترین مقدار 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 # تعداد پکتهای ارسالی در هر تستاگر 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میتوانی متغیرهای محیطی را مستقیماً در خط فرمان مشخص کنی:
sudo bash -c 'INTERFACE="eth0" TARGET_IP="1.1.1.1" PING_COUNT=10 ./mtu_test.sh'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` ذخیره شدند.sudo mv mtu_test.sh /root/mtu_test.sh
sudo chmod +x /root/mtu_test.shبرای اجرای خودکار با متغیرهای محیطی مشخص (مثلاً 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.
- اضافه شدن روش اجرای مستقیم با متغیرهای محیطی: دستور
sudo bash -c 'INTERFACE="eth0" TARGET_IP="1.1.1.1" PING_COUNT=5 ./mtu_test.sh'به بخش روشهای دانلود و نصب اضافه شد. - بهروزرسانی کرونجاب: مثال کرونجاب با متغیرهای محیطی (
INTERFACE="eth0" TARGET_IP="1.1.1.1" PING_COUNT=5) جایگزین مثال قبلی شد تا تنظیمات دلخواه بهصورت واضح نمایش داده شود. - نمونه خروجی بهروز شد: برای هماهنگی با تغییرات،
TARGET_IPبه1.1.1.1وPING_COUNTبه5تغییر کرد. - حفظ ساختار قبلی: سایر بخشها مانند پیشنیازها، ویژگیها و اشکالیابی بدون تغییر باقی ماندند تا توضیحات جامع و کامل بمانند.
این نسخه جدید را میتوانید در مخزن GitHub خود جایگزین کنید. اگر نیاز به تغییرات دیگری دارید، اطلاع دهید!