У меня есть сотовый интернет с AT & T. Все подключаются к точке доступа Wi-Fi, к которой мой Raspberry Pi подключен как сервер DNS/DCHP/Gateway.
На моем Pi я использую dnsmasq, чтобы дать каждому устройству статический IP-адрес, если он есть в списке. Затем я использую iptables, чтобы установить правила для каждого устройства (для подсчета пропускной способности и ограничения, если оно закончилось), это пример двух устройств.
Chain FORWARD (policy ACCEPT)
target prot opt source destination
usb-w all -- 0.0.0.0/0 192.168.1.3
usb-w all -- 192.168.1.3 0.0.0.0/0 MAC 00:11:22:33:44:55
tab all -- 0.0.0.0/0 192.168.1.4
tab all -- 192.168.1.4 0.0.0.0/0 MAC 66:77:88:99:AA:BB
Local all -- 0.0.0.0/0 0.0.0.0/0
Chain Local (2 references)
target prot opt source destination
ACCEPT all -- 192.168.1.0/24 192.168.1.0/24
REJECT all -- 192.168.1.0/24 0.0.0.0 reject-with icmp-port-unreachable
Chain usb-w (2 references)
target prot opt source destination
Local all -- 0.0.0.0/0 0.0.0.0/0
Chain tab (2 references)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/
В сценарии PHP я регистрирую количество байтов пользовательских таблиц и обнуляю его. Если устройство превысило установленный предел, то таблица пользователей изменится на Локальную таблицу. Это работало хорошо некоторое время.
Тогда два месяца назад мы начали идти над шапкой AT & T много. Проходя этап устранения неполадок, я обнаружил, что, например, я записал 10 ГБ использования, но AT & T и их интернет-устройство говорят, что я использовал 20 ГБ.
После разговора с ними по телефону (говорят, что это я) я запустил тест загрузки. Я загрузил файл debian-live-8.4.0-i386-cinnamon-desktop.iso с сайта Debian, подключенного напрямую к устройству AT & T и снова подключенного к pi. И я узнал, что мой Пи использует двойные данные.
Так как я могу решить это? Получение платы за перерасход дорого, в этом месяце счет составляет более 600 долларов.