شما برای مطالعه این مقاله فقط 11 دقیقه وقت نیاز دارید

limit-bandwidth

محدود کردن سرعت هر IP در لینوکس

4.7/5 - (3 امتیاز)

آیا می دانید فرق برابری و عدالت چیست؟ اگر بخواهیم با توجه به شبکه و پهنای باند به این سوال پاسخ دهیم، باید اینگونه بگوییم که برابری یعنی به تمام کاربران/سرویس ها (بدون توجه به اولویت آنها) پهنای باند یکسانی اختصاص دهیم ولی عدالت یعنی با محدود کردن سرعت دانلود و آپلود هر IP یا برنامه، از هر گونه سوءاستفاده جلوگیری کنیم.

دسترسی سریع و مطمئن به اینترنت، اولویت تمام کاربران نیست پس چه ایده ای بهتر از اینکه با استفاده از ابزارهای کنترل سرعت دانلود و آپلود، کاری کنیم که هر کاربر یا سرویس متناسب با نیاز خود از پهنای باند استفاده کند. 

ابزارهای زیادی برای کنترل پهنای باند و سرعت آپلود/دانلود وجود دارد که اگر به عنوان یک ادمین سیستم لینوکس، دوست دارید کار خود را به نحو احسن انجام دهید، ادامه مطلب را از دست ندهید:

چرا باید به فکر محدود کردن سرعت شبکه باشیم؟

با اینکه خرید سرور مجازی لینوکس با پهنای باند مناسب می تواند کار شما را راحت تر کند ولی باز هم دلایل زیادی برای محدود کردن سرعت آپلود/دانلود سرور برای هر کاربر وجود دارد.

مثلاً کاربران زیادی وجود دارد که از قیمت بالای بسته های اینترنتی ناراضی هستند و  شما با محدود کردن پهنای باند مربوط به آنها می توانید کمی هم که شده این هزینه ها را پایین بیاورید. یا وقتی یک شبکه چند کاربر دارد، با محدود کردن پهنای باند جلوی هر گونه سوء استفاده را هم می گیرید.

همچنین، برنامه ها و سرویس های زیادی وجود دارند که بر سر ترافیک با هم رقابت می کنند و اگر بتوانید اولویت بندی کنید و محدودیت هایی ترافیکی را بر اساس این اولویت ها اعمال کنید، مطمئناً بعدها از این عدالتی که برقرار کرده اید، لذت خواهید برد.

تا اینجا، فقط کاربران را در نظر گرفتیم ولی محدود کردن سرعت به حفظ عملکرد سرور لینوکس شما هم کمک می کند. به عنوان مثال، اگر دوست ندارید سرور شما در زمان اوج مصرف به خاطر فعالیت زیاد از کار بیافتد، محدود کردن ترافیک خروجی، هوشمندانه ترین کاری است که می توانید انجام دهید.

پس با این اوصاف، اگر استفاده درستی از ابزارهای که در ادامه معرفی می کنیم داشته باشید، هم در حق کاربران خود لطف می کنید هم اینکه با تعیین سرعت مشخص برای دانلود و آپلود، آپتایم سرور لینوکس خود را بالا می برید.

ابزار اول: Wondershaper

این ابزار مبتنی بر خط فرمان است که با استفاده از آن به راحتی می توانید مصرف پهنای باند و سرعت آپلود/دانلود هر رابط شبکه را محدود کرده و هر طوری که می خواهید به ترافیک شبکه شکل دهید.

برای استفاده از Wondershaper، اول باید آن را را نصب کنید. این ابزار متن باز است و در مدیر بسته تمام توزیع های لینوکس وجود دارد که بسته به توزیع خود می توانید از یکی از دستورات زیر استفاده کنید:

دبیان، اوبونتو و لینوکس مینت

sudo apt install wondershaper

فدورا

sudo dnf install wondershaper

RHEL، CentOS، آلما لینوکس و راکی لینوکس

sudo dnf install epel-release

sudo dnf install wondershaper

یا اگر می خواهید آخرین نسخه این ابزار را مستقیماً از گیت هاب دانلود و نصب کنید، دستور زیر را اجرا کنید:

git clone https://github.com/magnific0/wondershaper.git

cd wondershaper

sudo make install

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

حالا که wondershaper را با موفقیت نصب کرده اید، نوبت به آشنایی با سینتکس این ابزار می رسد. البته این بستگی به نسخه wondershaper دارد که سینتکس آن به چه صورت باشد. برای بررسی این موضوع می تواند از دستور زیر استفاده کنید:

man wondershaper

خروجی دستور بالا به صورت زیر خواهد بود:

سیتکس wondershaper

سینتکس اصلی این ابزار به صورت زیر است:

wondershaper [ interface ] [ downlink ] [ uplink ]

البته، در ورژن های جدید wondershaper، آپشن های خاصی هم لحاظ شده است تا تشخیص پارامترها راحت تر باشد:

wondershaper -a [interface] -d [downlink] -u [uplink]

a: اسم رابط شبکه

d: نرخ دانلود

u: نرخ آپلود

مثلاً اگر می خواهید سرعت دانلود را به 2048 کیلوبایت بر ثانیه و سرعت آپلود را هم به 512 کیلوبایت بر ثانیه محدود کنید، باید دستور بالا را بسته به نوع سینتکس به یکی از 2 حالت زیر اجرا کنید:

wondershaper enp01 2048 512

wondershaper -a enp01 –d 2048 –u 512

البته، اگر ابزار wondershaper را با استفاده از گیت هاب نصب کرده اید، یک راه دیگر هم برای محدود کردن سرعت دانلود و آپلود رابط های شبکه وجود دارد.

به این صورت که کافی است فایل کانفیگ این ابزار را باز کنید:

sudo nano /etc/conf.d/wondershaper.conf

بعد مقادیر متغیرها را متناسب با نیاز خود تغییر دهید:

پیکربندی wondershaper

نحوه پیدا کردن اسم رابط شبکه

همانطور که در مثال بالا هم می بینید، بعد از آشنایی با سینتکس باید اسم رابط های شبکه را هم بدانید تا بتوانید با محدود کردن سرعت دانلود و آپلود مربوط به هر کدام از آنها، به هدف خود برسید.

برای مشاهده لیست رابط های شبکه می توانید از دستور زیر استفاده کنید:

ip addr show

البته بعضی از سیستم های لینوکس قدیمی، لیست رابط های شبکه را با دستور ifconfig نشان می دهند که در صورت نیاز می توانید آن را نصب و اجرا کنید:

sudo apt install net-tools

ifconfig

بعد از اینکه رابط شبکه موردنظر را پیدا کردید و در مورد نحوه محدود کردن سرعت دانلود و آپلود تصمیم گرفتید، می توانید دستور wondershaper را اجرا کنید.

اجرای سرویس wondershaper

محدودیت های اعمال شده توسط wondershaper فقط تا زمانی اجرا می شوند که سیستم خود را خاموش یا ری استارت نکرده اید. اگر می خواهید این قوانین برای همیشه اجرا شوند، باید مراحل زیر را دنبال کنید:

فایل پیکربندی را باز کنید:

sudo nano /etc/systemd/wondershaper.conf

محتوای زیر را کپی کرده و بعد در این فایل پیست کنید. البته، شما باید مقادیر هر 3 پارامتر را متناسب با رابط شبکه و محدودیت های موردنظر خود برای سرعت دانلود و آپلود تغییر دهید.

[wondershaper]

# Adapter

IFACE="enp01 "

# Download rate in Kbps

DSPEED="6144"

# Upload rate in Kbps

USPEED="1024"

بعد، یک فایل سرویس ایجاد کنید:

sudo nano /etc/systemd/system/wondershaper.service

و محتوای زیر را در داخل آن کپی پیست کنید:

[Unit]

Description=Bandwidth shaper/Network rate limiter

After=network-online.target

Wants=network.target

[Service]

Type=oneshot

RemainAfterExit=yes

EnvironmentFile=/etc/systemd/wondershaper.conf

ExecStart=/usr/sbin/wondershaper $IFACE $DSPEED $USPEED

ExecStop=/usr/sbin/wondershaper clear $IFACE

[Install]

WantedBy=multi-user.target

البته جا دارد به این نکته هم اشاره کنیم که اگر سینتکس Wondershaper شامل آپشن های (a ،d و u) می شود، باید خطوط ExecStart و ExecStop محتوای بالا را به صورت زیر تغییر دهید:

ExecStart=/usr/sbin/wondershaper -a $IFACE -d $DSPEED -u $USPEED

ExecStop=/usr/sbin/wondershaper -c -a $IFACE

در آخر، دکمه ترکیبی Ctrl+O را فشار دهید تا فایل ذخیره شود و با Ctrl+X هم فایل را ببندید.

حالا نوبت به فعال سازی این سرویس می رسد که برای این کار باید دستور زیر را اجرا کنید:

sudo systemctl enable --now wondershaper.service

بعد از این، هر بار که سیستم خود را روشن می کنید، محدودیت هایی که با Wondershaper اعمال کرده اید هم به صورت خودکار فعال می شوند.

اگر بعداً خواستید این سرویس را غیرفعال کنید، کافی است دستور زیر را اجرا کنید:

sudo systemctl disable --now wondershaper.service

نحوه حذف محدودیت سرعت

اگر می خواهید محدودیت سرعت رابط شبکه را حذف کنید و آن را به حالت اول برگردانید می توانید از یکی از دستورات زیر استفاده کنید:

sudo wondershaper -c enp01

sudo wondershaper -c -a enp01

یا برای حذف کل محدودیت ها می توانید از دستور زیر هم استفاده کنید:

sudo wondershaper clear enp01

در صورت تمایل می توانید با استفاده از دستورات زیر کمی بیشتر با این ابزار آشنا شوید و آپشن های مختلف آن را امتحان کنید.

wondershaper –h

man wondershaper

ابزار دوم: trickle

Trickle یکی دیگر از ابزارهای شکل دهی به پهنای باند است که با استفاده از آن می توانید محدودیت های داده ای مربوط به هر برنامه را تعیین کنید.

پس، این ابزار با برنامه ها (نه رابط های شبکه) سروکار دارد و  به شما کمک می کند که برای هر برنامه یک اولویت تعیین کنید و برنامه ها متناسب با اولویت خود از پهنای باند بهره مند شوند.

محدودیت های ترافیکی که با استفاده از trickle اعمال می شود، نحوه ارسال و دریافت داده های مربوط به اتصالات tcp از طریق سوکت ها را تعیین می کنند. در کل، trickle فقط به نحوه انتقال داده ها شک می دهد و کاری با رفتار فرآیندها ندارد.

بر خلاف wondershaper، برای استفاده از trickle نیازی به امتیازات روت ندارید و دیگر لازم نیست که sudo را هم به دستورات اضافه کنید.

برای استفاده از این ابزار، اول باید آن را نصب کنید که البته اکثر توزیع های لینوکس دارای پکیج این ابزار هستند:

دبیان، اوبونتو و لینوکس مینت

sudo apt install trickle

فدورا

sudo dnf -y install trickle

RHEL، CentOS، آلما لینوکس و راکی لینوکس

sudo yum -y install trickle

قبل از هر چیزی، بهتر است با سینتکس این ابزار آشنا شوید که با اجرای دستور زیر می توانید سینتکس و آپشن های آن را ببینید:

trickle –h

سینتکس trickle

با اینکه هر کدام از آپشن ها کاربرد مشخصی را دارند ولی شما برای محدود کردن سرعت انتقال داده های برنامه ها بیشتر به 2 آپشن d (نرخ دانلود KB/S)  بر حسب u ( نرخ آپلود KB/S) نیاز خواهید داشت که در آخر هم اسم برنامه را وارد کنید تا این محدودیت ها برای آن اعمال شوند:

trickle -d [ download speed ] -u [ upload speed ] [ application/command ]

مثلاً اگر مرورگر فایرفاکس را مدنظر دارید و می خواهید سرعت دانلود آن را روی 3 مگابایت بر ثانیه و سرعت آپلود آن را هم روی 1 مگابایت بر ثانیه تنظیم کنید، دستور بالا را به صورت زیر اجرا کنید:

trickle -d 3072 -u 1024 firefox

اگر می خواهید فقط برای یکی از آپشن ها (دانلود یا آپلود) محدودیت اعمال کنید، باز هم اختیار با شماست:

trickle -d 3072 firefox

همچنین با استفاده از trickle می توانید برای دستورات لینوکس هم محدودیت اعمال کنید. مثلاً اگر می خواهید سرعت دانلود دستور wget را محدود کنید، باید دستور trickle را به صورت زیر اجرا کنید:

trickle -d 512 wget https://releases.ubuntu.com/20.04.3/ubuntu-20.04.3-desktop-amd64.iso

این دستور فایل نصبی اوبونتو را دانلود می کند منتها با trickle برای سرعت دانلود آن محدودیت 512 کیلوبایت بر ثانیه اعمال کرده ایم.

کلیک کنید  سرور مجازی رایگان از دروغ تا واقعیت!

اگر قصد محدود کردن سرعت پوسته Bash را دارید تا دستورات هم بر اساس با این محدودیت از پهنای باند استفاده کنند. دستور  trickle را به صورت زیر اجرا کنید:

trickle -s -d 1000 -u 50 bash

برای ریست کردن این محدودیت، کافی است bash را با دستور exit یا دکمه ترکیبی Ctrl+Q ببندید.

نحوه شکل دهی به پهنای باند با استفاده از trickled.conf

اگر می خواهید محدود کردن سرعت آپلود/دانلود برنامه ها با دقت بیشتری انجام شود و حالت سفارشی داشته باشد، می توانید از فایل پیکربندی trickled کمک بگیرید.

موقع باز کردن trickled.conf با بلوک هایی شبیه بلوک زیر مواجه خواهید شد:

پیکربندی trickle

این متغیرها را بر اساس توضیحات زیر تکمیل کنید:

service – اسم برنامه ای را وارد کنید که می خواهید پهنای باند آن را تنظیم کنید.

Priority – عددی که در بخش value این متغیر وارد می کید، اولویت سرویس یا برنامه را مشخص می کند. اگر عددی که در این بخش وارد می کنید، کمتر باشد این سرویس اولویت بالاتری برای استفاده از پهنای باند دارد.

Time-Smoothing (برحسب ثانیه) – عددی که در بخش value این متغیر وارد می کنید، فواصل زمانی که سرویس برای ارسال یا دریافت داده ها در اختیار دارد را تعیین می کند.

اگر برنامه ها حالت تعاملی دارند، بهتر است این متغیر را با اعداد کوچک (0.1 تا 1 ثانیه) مقداردهی کنید تا این پروسه حالت پیوسته و یکنواخت داشته باشد.

اگر برنامه ها نیاز به انتقال داده های زیاد دارند این متغیر را با اعداد بزرگتر (1 تا 10 ثانیه) مقداردهی کنید.

اگر این متغیر را مقداردهی نکنید، مقدار پیش فرض یا همان 5 ثانیه اعمال می شود.

Length-Smoothing (برحسب کیلوبایت) – ایده این متغیر هم مشابه متغیر قبلی است و با استفاده از آن می توانید طول عملیات I/O را مشخص کنید. پیش فرض این متغیر، 10 کیلوبایت است.

سناریوی مربوط به هر سرویس یا برنامه را بر اساس نیازهای خود مشخص کنید و مطمئن باشید هیچ فرمولی برای تعیین مقادیر متغیرهای هر سرویس وجود ندارد.

یک مثال از الویت بندی برنامه ها:

اولویت بندی برنامه برای محدود کردن سرعت

البته، trickle امکانات پیشرفته تری هم دارد که برای اعمال محدودیت های لازم برای برنامه می توانید از آنها هم استفاده کنید. برای کسب اطلاعات بیشتر می توانید از دستور زیر استفاده کنید:

man trickle

ابزار سوم: tc

آخرین ابزاری که برای کنترل ترافیک و محدود کردن سرعت معرفی می کنیم، tc است. در کل، ادمین های سرور لینوکس با استفاده از این ابزار می توانند هر گونه تاخیر و از دست دادن پکیج ها را شبیه سازی کنند و پهنای باید را برای هر رابط شبکه محدود کنند.

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

برای استفاده از این دستور، اول باید آن را نصب کنید:

دبیان، اوبونتو و لینوکس مینت

apt-get install iproute2 sudo

فدورا

dnf install iproute-tc  sudo

RHEL، CentOS، آلما لینوکس و راکی لینوکس

sudo yum -y install tc

این دستور سینتکس های مختلفی دارد که هر کدام کاربرد مخصوص به خود را دارند. البته، برای استفاده از این دستورات، اول باید اسم رابط شبکه را بدانید و بعد قانون موردنظر را روی آن اعمال کنید.

برای اطلاع از اسم رابط های شبکه می توانید از دستور زیر استفاده کنید:

ip a

1) ایجاد تاخیر در ترافیک خروجی رابط شبکه

برای اینکه ترافیک خروجی رابط شبکه enp01 را به اندازه 50 میلی ثانیه به تاخیر بیاندازید، باید دستور tc را به صورت زیر اجرا کنید:

sudo tc qdisc add dev enp01 root tbf rate 1024kbit latency 50ms burst 1540

در این دستور از آپشن های زیر استفاده کرده ایم:

gdisc به tc می گوید که زمان بند را دستکاری کند.

دستور add به tc می گوید که یک قانون جدید ایجاد کند.

dev enp01 به tc می گوید که این قانون جدید را روی رابط enp01 اعمال کند.

root به tc می گوید که زمانبند ترافیک خروجی را دستکاری کند.

tbf rate 1024kbit به tc می گوید که سرعت ترافیک را به 1024 کیلوبیت بر ثانیه کاهش دهد.

latency 50ms به tc می گوید که ترافیک را به اندازه 50 میلی ثانیه به تاخیر بیاندازد.

burst 1540 به tc می گوید که سایز بافر را روی 1540 بایت تنظیم کند.

2) شبیه سازی از دست دادن بسته یا Packet Loss

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

برای تست از دست دادن به صورت تصادفی، می توانید از دستور زیر استفاده کنید:

sudo tc qdisc add dev enp01 root netem loss 0.1%

این دستور با استفاده از شبیه ساز ( netem ) داده ها را به صورت تصادفی و با احتمال 0.1 درصد حذف می کند.

اگر با استفاده از ssh به سرور لینوکس خود وصل شده اید و این شبیه سازی را انجام می دهید، ممکن است به دلیل از دست دادن داده، اتصال شما به سرور به مشکل بربخورد.

البته برای تست تاثیر اختلالات شبکه در عملکرد اپلیکیشن شبکه می توانید از طرح Gilbert-Elliot هم استفاده کنید. برای اجرای این طرح، کافیست دستور زیر را اجرا کنید:

sudo tc qdisc add dev enp01 root netem loss gemodel 1% 10% 70% 0.1%

بعد از اجرای این دستور، بهتر است عملکرد شبکه را با دستور ping بررسی کنید. در کل، شبیه سازی از دست دادن داده با این روش کمی واقع بینانه تر است.

اگر می خواهید خرابی داده ها را هم شبیه سازی کنید و تاثیرات آن را بررسی کنید، می توانید از دستور زیر استفاده کنید:

tc qdisc add dev enp01 root netem corrupt 5%

این دستور با وارد کردن خطای تک بیتی، به صورت تصادفی 5 درصد از داده ها را خراب می کند.

3) حذف یا تغییر قوانین tc

اگر می خواهید قوانین مربوط به یک رابط شبکه را مشاهده کنید، می توانید از دستور زیر استفاده کنید:

sudo tc qdisc show dev enp01

در صورت تمایل می توانید قانون که اخیراً ایجادکرده اید را تغییر دهید. فقط کافیست به جای add، آپشن change را قرار دهید و بعد قانون را به شکل دلخواه تغییر دهید.

tc qdisc change…

برای حذف کل قوانین مربوط به رابط شبکه هم می توانید از دستور زیر استفاده کنید:

sudo tc qdisc del dev enp01 root

حالا دیگر با اصلی ترین ابزارهای محدود کردن سرعت شبکه آشنا شدید و وقت آن است که متناسب با نیاز خود، دستورات مناسبی را اجرا کنید تا به عملکرد ایده آل خود برسید.

کلام آخر

محدود کردن سرعت دانلود/آپلود یا کلا پهنای باند در لینوکس، ایده بسیار خوبی برای برقراری عدالت بین کاربران و برنامه ها است. با استفاده از 3 ابزار wondershaper، trickle و tc به راحتی می توانید از عهده این کار بر بیایید. فقط باید این نکته را به یاد داشته باشید که تصمیمات شما در عملکرد سیستم و سرور لینوکس تاثیر خواهد گذاشت، پس محدودیت های خود را طوری تعیین کنید که سطح ip ها و برنامه ها باعث ایجاد بروز اختلال در شبکه نشود.

از اینکه تا انتهای مقاله با ما همراه بودید، از شما متشکریم. امیدواریم که مطالعه این مقاله برای شما مفید واقع شده باشد. در صورت داشتن هرگونه سوال، درخواست و نیاز به راهنمایی، می توانید با ثبت نظر خود، با ما وارد ارتباط شوید تا هر چه زودتر به شما پاسخ دهیم.

سوالات متداول:

نه، این ابزار برای محدود کردن سرعت دستورات هم به کار می رود.

مطالب مشابهی که شاید علاقمند باشید

من زهرا پیرجانی دانشجوی رشته نرم افزار هستم. علاقه ای که به یادگیری مطالب جدید دارم باعث شد که انگیزم برای فعالیت در حوزه تولیدمحتوا بیشتر شود. تمام تلاشم این است که با درک کامل موضوع، محتوایی ساده و کامل تهیه کنم که برای همه علاقمندان مفید و کاربردی باشد. یادگیری مطالب جدید و آموزش اونها به بقیه، بهترین کاری هست که می توانم برای رشد خودم و همچنین کمک به رشد علاقمندان به مباحث مورنظر انجام بدم.

دیدگاه های شما

11 اردیبهشت 1402
مصطفی

خیلی عالی بود ممنون

    13 اردیبهشت 1402
    زهرا پیرجانی

    ممنون از حسن توجهتون.

30 آبان 1402
جواد

برای اینکه به کاربران حجم مصرفی خاصی رو بدهم از چه دستوری باید استفاده کنم؟ مثلا کاربر الف ۵۰ گیگ کاربر ب ۲۰ گیگ و الی آخر

    4 آذر 1402
    زهرا پیرجانی

    سلام. برای این کار می تونید از دستور tc که برای کنترل ترافیک هست استفاده کنید. اول از همه باید دیسیپلین اصلی رو ایجاد کنید و اونو کلاس بندی کنید. به عنوان مثال sudo tc qdisc add dev eth0 root handle 1: htb default 12 یک دیسیپلین با ۱۲ کلاس رو تعریف می کنه،. و بعد می تونید متناسب با نیازتون به هر کدوم از این کلاس ها، پهنای باند خاصی اختصاص بدهید مثلا به کلاس ۱۲، حجم ۵۱۲ کیلوبایت: sudo tc class add dev eth0 parent 1:1 classid 1:12 htb rate 512Kbps بعد نوبت به برچسب گذاری آی پی کاربر موردنظره که اینم با دستور sudo iptables -A OUTPUT -t mangle -p tcp -s 192.168.1.2 -j MARK --set-mark 1 انجام میشه. این دستور به آی پی 192.168.1.2 برچسب ۱ رو اختصاص میده. در آخر، کاری که باید انجام بدید اینکه که این کاربر رو با استفاده از برچسب به کلاسی که تعیین کردید، متصل کنید تا ترافیک مربوط به برچسب ۱ به این کلاس ارسال بشه و این کار با دستور sudo tc filter add dev eth0 parent 1: protocol ip prio 1 handle 1 fw classid 1:12 انجام میشه. برای درک و یادگیری بهتر این مراحل می توانید از داکیومنتیشن دستور tc کمک بگیرید.

22 آذر 1402
صادق جلودار

سلام وقت بخیر بنده 1 سرور مجازی خریداری کردم. تمام پورت هارو بستم و چند تا پورت باز هستن و از محیط بیرون فقط با این پورت ها میشود به سرور متصل شد. امکانش هست ک محدودیت سرعت بروی پورت ها اعمال کرد ؟ مثلا پورت 1456 حداکثر سرعت دانلود و اپلودش 8مگابیت باشه

    22 آذر 1402
    زهرا پیرجانی

    سلام ممنون. بله با استفاده از دستورات tc و iptables می تونید این کار رو انجام بدید. مثلا اگر بخواین از دستور iptables استفاده کنید و سرعت دانلود پورت ۱۴۵۶ رو به ۱۰۰ بسته در ثانیه برسونید. کافیه از این دو دستور استفاده کنید: sudo iptables -A INPUT -p tcp --sport 1456 -m limit --limit 100/s -j ACCEPT sudo iptables -A INPUT -p tcp --sport 1456 -j DROP برای محدودیت سرعت آپلود هم کافیه input رو به output تغییر بدید. sudo iptables -A OUTPUT -p tcp --sport 1456 -m limit --limit 100/s -j ACCEPT sudo iptables -A OUTPUT -p tcp --sport 1456 -j DROP البته، این یک مثال ساده بود و برای این که این کار رو با کارایی بالاتری انجام بدید، بهتری از داکیومنتیشن tc یا iptables کمک بگیرید.

برای دریافت این مقاله لطفا ایمیلتان را وارد کنید

می توانید مقاله را دانلود کنید یا پرینت بگیرید