Як налаштувати проксі-сервер для дому з контролем пропускної здатності та обмеженням завантаження?


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. Чи можу я мати власну прошивку на своєму бездротовому маршрутизаторі, щоб це зробити (або) Чи потрібен мені проксі-сервер?

Будь ласка, вкажіть мене на будь-які відповідні навчальні посібники (наприклад, з кальмарами).

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

Відповіді:


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-диском і забезпечує безліч спільних рішень. У мене було встановлено надбудову для кальмарів, наприклад, щоб забезпечити прозорий проксі-сервер для всіх внутрішніх серверів і навіть для встановленого пакета, щоб отримати детальну інформацію про використання мережі.

Я також пропоную функції типу Інтернет-кафе, наприклад сторінку входу для відвідувачів у користування системою. Налаштувати його в VM досить просто, і є багато документації про те, як його встановити з різними конфігураціями.

Я використовував це вдома разом з 8 іншими машинами. Ви можете встановити, що при правильному налаштуванні вам не потрібно буде вводити обмеження так сильно, як у вас є.


pfSense чудово підходить для швидкої та простої настройки з веб-інтерфейсом. Якщо ви хочете дізнатися більше, просто встановіть OpenBSD і налаштуйте pf самостійно, це дуже цікаво.
SleighBoy

0

Ваш Netgear WNR1000v2 здається напівглухим пристроєм. Все, що я знайшов, це те, що ви можете ввімкнути QoS на базі портів або MAC. Ви можете встановити рівень QoS на "низький" для недобросовісного кореневого партнера.

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


Я ніде не бачу параметрів QoS на панелі керування WNR1000v2, я також посилався на повне керівництво користувача. Чи можете ви пояснити, де саме це знайти та налаштувати, будь ласка?
Раджаванія Субраманіян

Існує PDF - опису QoS на WNR1000v2 Сторінка
Nils

0

Мабуть, ви можете на власний ризик встановити на свій маршрутизатор прошивку DD-WRT http://www.dd-wrt.com/site/support/router-database, яка має широкі функції QoS - http: // www. dd-wrt.com/wiki/index.php/Quality_of_Service


Я вже це досліджував, на жаль, мій WNR1000v2, прошивка доступна для v1 та v3 :(
Раджаванія Субраманія
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.