Почему не работают следующие команды для ограничения трафика на порт 21 с помощью tc?

В своем стремлении найти способ ограничить исходящую пропускную способность для работающего экземпляра bitcoind, я столкнулся с этим руководством, в котором объясняется, как оценивать ограничение трафика для определенного IP-адреса назначения:

tc qdisc add dev $DEV root handle 1: cbq avpkt 1000 bandwidth 10mbit tc class add dev $DEV parent 1: classid 1:1 cbq rate 512kbit allot 1500 prio 5 bounded isolated tc filter add dev $DEV parent 1: protocol ip prio 16 u32 match ip dst 195.96.96.97 flowid 1:1 

Однако я не пытаюсь ограничить трафик определенным IP-адресом назначения, но и из определенного порта, поэтому я нашел это руководство, в котором рассказывается, как сопоставлять трафик с помощью источника и порта назначения:

 tc filter add dev eth0 protocol ip parent 10: prio 1 u32 match ip dport 22 0xffff flowid 10:1 tc filter add dev eth0 protocol ip parent 10: prio 1 u32 match ip sport 80 0xffff flowid 10:1 

Комбинация первого скрипта с сопоставлением портов второго сценария приводит меня к следующему набору команд, которые должны ограничивать исходящий трафик на порт от 21 до 160 кбит / с. Я сначала тестирую установку с использованием FTP, потому что ограничение биткойна, использующего порт 8333, не является оптимальным для тестирования, поскольку я не могу решить, когда будет отправлен трафик.

 tc qdisc add dev eth0 root handle 1: cbq avpkt 1000 bandwidth 800kbit tc class add dev eth0 parent 1: classid 1:1 cbq rate 160kbit allot 1500 prio 5 bounded isolated tc filter add dev eth0 parent 1: protocol ip prio 16 u32 match ip dport 21 0xffff flowid 1:1 

Насколько я могу судить, это должно ограничивать исходящий трафик на порт 21 на интерфейсе eth0 с исходящей полосой пропускания от 800 кбит / с до 160 кбит / с, но он не работает:

 NetHogs version 0.8.0 PID USER PROGRAM DEV SENT RECEIVED 23653 rune filezilla eth0 102.609 2.978 KB/sec 

Соединение FTP состоит из двух соединений с портом 21:

 $ netstat -n|grep "21 " tcp 0 0 192.168.1.33:59967 194.192.207.26:21 ESTABLISHED tcp 0 0 192.168.1.33:59974 194.192.207.26:21 ESTABLISHED 

Что я делаю не так?

Я использую Ubuntu Raring, если это имеет значение.

  • Уменьшение потери пакетов при ограничении скорости tc
  • точка захвата пакетов для передачи данных
  • Почему я не вижу капель с потоками TCP в linux
  • Отложить некоторый трафик localhost
  • Очередь дисциплины для каждого интерфейса, что происходит с интерфейсами с использованием того же устройства?
  • Регулирование полосы пропускания для каждой группы пользователей
  • Как настроить QoS на IP-основу?
  • Как применить параметр к пакету, чтобы TC мог расставить приоритеты \ классифицировать его
  • One Solution collect form web for “Почему не работают следующие команды для ограничения трафика на порт 21 с помощью tc?”

    Вам нужно как минимум два класса: один ограниченный и один «неограниченный». Чтобы вы могли отфильтровать один вид трафика в ограниченном классе и оставить все остальное. Если у вас есть только один класс, весь трафик ограничен.

    Interesting Posts
    Linux и Unix - лучшая ОС в мире.