Как настроить прокси-сервер для дома с контролем пропускной способности, опциями ограничения загрузки?

17

3 соседа по комнате совместно используют одно соединение со скоростью 2 Мбит / с. Иметь ограничение загрузки 40 ГБ в месяц, сверх которого скорость падает до 256 Кбит / с, что раздражает.

Один из соседей по комнате злоупотребляет подключением, загружая за пределы квоты. У меня есть беспроводной маршрутизатор Netgear WNR1000v2 + модем ADSL для подключения к Интернету. Все мы подключаемся к Интернету через беспроводной маршрутизатор, который подключается к модему ADSL.

Мне нужно бесплатное решение прокси, которое может помочь мне установить

  1. Ограничение 40 ГБ / 3 (13 ГБ) для каждого человека (у каждого человека есть 2 устройства - ПК и телефон с Wi-Fi)
  2. Унифицированный контроль пропускной способности - когда 2 человека просматривают Интернет, они должны получать 1 Мбит / с каждый, а когда 3 человека получают доступ, они должны получать 2 Мбит / с, деленные на 3.
  3. После того, как каждый человек превысит свой месячный лимит загрузки, он должен иметь доступ к Интернету только со скоростью 256 Кбит / с или ниже.
  4. Могу ли я сделать специальную прошивку на моем беспроводном маршрутизаторе (или) Мне нужен прокси-сервер?

Пожалуйста, укажите мне на любые соответствующие учебные пособия (например, со Squid).

Обновление: я не ищу решения только для маршрутизатора / прошивки, я открыт для запуска прокси-сервера на одном из ПК в сети или для решения любого другого аналогичного типа.

Раджаванья Субраманиан
источник

Ответы:

14

Не делайте этого со Squid: вам нужен контроль для всего, а не только для HTTP на порту 80.

Для ответа требуются iptables с параметром --quota, который реализует сетевые квоты путем уменьшения счетчика байтов для каждого пакета. Аргумент «--quota» является значением в байтах.

Для каждого пользователя должна быть одна цепочка. Первое правило цепочки отсчитывает 13 ГБ квоты для пакетов с 192.168.0.2 и принимает пакет, если он ниже квоты:

iptables -A INPUT -p tcp -s 192.168.0.2 -m quota --quota 13958643712 -j ACCEPT

Второе правило цепочки классифицирует пакеты избыточной квоты в выбранном вами классе tc:

iptables -A INPUT -p tcp -j CLASSIFY --set-class 1:12

Тогда это все классическое формирование трафика: http://tldp.org/HOWTO/Traffic-Control-HOWTO/

Конечно, вам нужно использовать статическое распределение IP-адресов или убедиться, что DHCP выделяет адреса, фиксированные по MAC-адресу устройства, - и вам нужно заблокировать все адреса, кроме идентифицированных устройств, принадлежащих одному из трех пользователей.

Кстати, вы упоминаете, что «когда 2 человека просматривают Интернет, они должны получать 1 Мбит / с каждый, а когда 3 человека получают доступ, они должны получать 2 Мбит / с, разделенные на 3», но вы можете добиться большего успеха, чем при настройке иерархии классов трафика Ваше требование должно заключаться в том, что «когда два человека просматривают Интернет, они не должны получать менее 1 Мбит / с каждый, а когда три человека получают доступ, они должны получать не менее 2 Мбит / с, деленные на 3», чтобы каждый мог получить больше, если другие люди используют меньше, чем их гарантированная пропускная способность ... И tc позволяет вам это делать!

Поскольку ваш маршрутизатор поддерживается openwrt и dd-wrt, у вас есть все необходимые инструменты!

оборота Жан-Марк Лиотье
источник
Потрясающий лучший ответ! большое спасибо .. но мой роутер не поддерживается openwrt или dd-wrt, только v1 и v3 из той же серии, мой v2. Поэтому я посмотрю на использование старой машины в том же месте.
Раджаванья Субраманиян
4

Я не могу вспомнить, поддерживает ли он все функции, о которых вы упомянули, но я настоятельно рекомендую pfSense в качестве маршрутизатора. Он достаточно мал для работы с USB-диском и предоставляет множество решений для совместного использования. У меня была установлена ​​надстройка squid, например, для обеспечения прозрачного прокси для всех внутренних серверов, и даже в установленном пакете для получения подробных отчетов об использовании сети.

Я также предлагаю функции типа интернет-кафе, например, страницу входа для гостей, чтобы использовать систему. Его легко настроить на ВМ, и имеется много документации о том, как установить ее в различных конфигурациях.

Я использовал это дома с 8 другими машинами. При правильной настройке вы можете обнаружить, что вам не нужно вводить лимиты так сильно, как вы.

BinaryMisfit
источник
pfSense отлично подходит для быстрой и простой настройки с помощью веб-интерфейса. Если вы хотите узнать больше, просто установите OpenBSD и настройте pf, учиться очень весело.
SleighBoy
0

Ваш Netgear WNR1000v2 выглядит полутупым устройством. Я обнаружил, что вы можете включить QoS на основе портов или MAC. Вы можете установить QoS на «низкое» для своего плохого партнера по работе.

Все остальное требует больше «мозгов» - то есть правильного (интеллектуального) прокси.

Nils
источник
Я не вижу параметров QoS на панели управления WNR1000v2, я также обратился к полному руководству пользователя. Не могли бы вы объяснить, где именно это можно найти и настроить, пожалуйста?
Раджаванья Субраманиян
На странице WNR1000v2 есть PDF-файл, описывающий QoS
Нильс
0

По-видимому, вы можете установить на свой роутер на свой страх и риск прошивку DD-WRT http://www.dd-wrt.com/site/support/router-database, которая имеет широкие возможности QoS - http: // www. dd-wrt.com/wiki/index.php/Quality_of_Service

ccpizza
источник
Я уже исследовал это, к сожалению, мой WNR1000v2, прошивка доступна для v1 и v3 :(
Раджаваня Субраманян