есть ли способ ограничить пропускную способность сетевого адаптера в linux? Я хотел бы иметь возможность имитировать произвольно Медленное соединение.
Как регулировать пропускную способность сетевого интерфейса Linux?
7 ответов
netem модуль ядра, управляемый iproute.
вам нужно скомпилировать Netem с ядром:
Networking -->
Networking Options -->
QoS and/or fair queuing -->
Network emulator
после того, как модуль netem загружен, tc iproute позволяет вам такие вещи, как:
tc qdisc add dev tap0 root netem delay 50ms loss 50%
(50 % потеря пакетов, задержки 50 мс)
на стороне клиента, верно?
ручеек должны делать то, что вы хотите. Если вы используете Ubuntu (или Debian, я думаю), вы можете установить его с помощью sudo apt-get install trickle
, а затем запустить его. trickle -s -d 10 -u 10 firefox
(или около того, я не использовал его в то время) будет работать firefox, ограничивая его загрузку и скорость загрузки до 10 килобайт в секунду.
Я нашел способ, чтобы избежать моего окна от еды всю пропускную способность, доступную в сети с помощью инструмента под названием "wondershaper" в ubuntu. Я надеюсь, что он существует и в других Linux destros тоже. Я могу ограничить пропускную способность, что мой домашний компьютер linux может потреблять с помощью следующей команды.
sudo wondershaper eth0 1000 200
это ограничивает предел загрузки до 1000 килобит и uplaod до 200 килобит. Обратитесь к Man-страницам из wondershaper дополнительные сведения/настройки.
NIST сделать сетевой симулятор под названием NistNet.
http://snad.ncsl.nist.gov/nistnet/ (ссылка, кажется, мертв)
http://cs.ecs.baylor.edu/~donahoo/инструменты/nistnet/
NistNet позволяет сделать маршрутизатор, который эмулирует связь по вашему выбору.
для простой работы вы его на коробку с двумя " ник " между двумя сетями.
например, у меня было приложение, которое должно было работать через спутник соединение.
данные смогли пойти над соединением 2мбпс с большой латентностью. Управление должно было идти по каналу 128kbps с той же задержкой.
NistNet помогло все работает на 128 Кбит.
с помощью NistNet я смог смоделировать не только пропускную способность, но и задержку, и он также будет отбрасывать пакеты для вас, имитируя занятую или ненадежную ссылку.
Если вы хотите сымитировать abitrary соединение, то как раз не ограничьте ширину полосы частот, ветер до задержки слишком.
Не забывайте также фрагментировать пакеты. Вы можете установить хорошие маленькие MTU на фальшивой ссылке.
IIRC добавление джиттера пакетов позволит вам узнать, можете ли вы справиться с неупорядоченными пакетами.
Я лично использовал wondershaper в прошлом для этого, хотя он был написан для противоположного варианта использования-максимально использовать ваше соединение ADSL.
Я должен попробовать другие упомянутые здесь, хотя.
вы можете использовать локально установленный squid прокси для ограничения пропускной способности, например, для тестирования веб-страницы по медленной ссылке:
установить squid прокси из вашего дистрибутива-на моей Fedora это было так же просто, как
yum install squid
.добавить
/etc/squid/squid.conf
:delay_pools 1
delay_class 1 1
delay_access 1 allow all
delay_parameters 1 16000/16000
это ограничит полосу пропускания около 128 Кбит / с (16000 бит / с).
Start кальмаров:
/etc/init.d/squid start
настроить браузер на использование прокси-сервера
localhost
порт3128
.
никто еще не упомянул ip_relay, С именем "iprelay" в репозиториях Debian. Он работает как TCP прокси, а не перехватывает звонки способом ручеек делает и будет работать с любым приложением, которое может использовать прокси-сервер (например, веб-браузер) или принять пользовательский порт назначения (telnet, ssh, ftp, curl, и так далее).
Это немного сложнее настроить, но часто работает в ситуациях, когда струйки не будет.
Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]