Поскольку у меня больше Интернета, чем я могу использовать сам, и у меня есть бесплатный маршрутизатор, я не пользуюсь, я думал о создании бесплатной точки доступа для соседей. К сожалению, мой трафик ограничен, поэтому я хотел бы иметь некоторые ограничения для его дневного использования. Для этого я установлю на маршрутизаторе dd-wrt или openwrt, но в прошлый раз, когда я пытался рассчитать использование трафика под Linux, мне пришлось написать собственный фильтр ulog для netfilter, и я бы хотел сейчас этого не делать. Так есть ли продукт, который я могу использовать для достижения своих целей, то есть разорвать все соединения на день, когда достигнут предел (или уменьшить их до 32 Кбит / с)?
4 ответа
Похоже, с современными iptables ограничение трафика является довольно простой задачей.
Соблюдайте квоту модуля:
iptables -A OUTPUT -p tcp --dport 80 -m quota --quota 1024 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 80 -j DROP
Это примет 1 КБ данных, а затем отбросит все соединения :) - --quota
непрерывно уменьшает счетчик, а при достижении 0 правило больше не совпадает, поэтому следующий включается и блокирует все.
Вы даже можете увидеть, сколько осталось трафика
# iptables -L OUTPUT -v
Chain OUTPUT (policy ACCEPT 3640 packets, 1753K bytes)
pkts bytes target prot opt in out source destination
1 40 ACCEPT tcp -- any any anywhere anywhere tcp dpt:http quota: 984 bytes
0 0 DROP tcp -- any any anywhere anywhere tcp dpt:http
и через некоторое время
# iptables -L OUTPUT -v
Chain OUTPUT (policy ACCEPT 3814 packets, 1773K bytes)
pkts bytes target prot opt in out source destination
8 996 ACCEPT tcp -- any any anywhere anywhere tcp dpt:http quota: 0 bytes
9 504 DROP tcp -- any any anywhere anywhere tcp dpt:http
Похоже, если я смогу установить этот модуль на OpenWRT, ограничение трафика будет легкой задачей.
Gargoyle - это прошивка типа WRT, которая может рассчитывать квоту и ограничивать ее по IP. Вот ссылка.
Я бы хотел, чтобы у Tomato и DD-WRT появилась такая же особенность.
Чтобы ограничить трафик, iptables будет работать на одной из двух рассматриваемых вами установок WRT
.
Вот ссылка на тему форума openwrt для идей - Traffic QPS howto ;
Два больше ссылок.
Если у вас есть компьютер, который обычно всегда включен, вы можете использовать его в качестве шлюза и измерять там статистику.
Редактировать:
так как опция шлюза не возможна, вы когда-нибудь пробовали томатную прошивку? Он имеет много функций, вероятно, гораздо больше, чем вам нужно. Есть способы отключить беспроводную связь в определенное время и ограничить скорость, насколько я знаю. Есть также пара вариантов QoS. Моя любимая функция в tomato - это то, что вы можете создавать задания cron, это позволяет вам легко сократить время доступа для пользователей. Вы также можете использовать cron для периодической проверки используемой полосы пропускания и замедления соединения или полной его остановки в зависимости от того, сколько было использовано.