В локальной сети имеется сервер, через который происходит доступ в Интернет. Используется NAT. В целях экономии трафика необходимо пропускать обращение к http-серверам через прокси-сервер squid. Выполняться это должно как для обращающихся по локальной сети, так и для локальных пользователей, причём без каких-либо настроек на стороне пользователя.
Конфигураций возможно три:
Исходные данные
(переменные, задаются в начале скрипта)
LAN_IFACE=интерфейс локальной сети
INET_IFACE=интерфейс в Интернет
LAN_IP=адрес машины в локальной сети
INET_IP=наш реальный адрес
PROXY_IP=IP-адрес прокси-сервера
squid – пользователь, под которым работает прокси-сервер squid
Для доступа к Интернету из локальной сети (трансляция адресов):
1. Для перенаправления запросов к порту 80 из локальной сети на squid всё просто:
2. Для перенаправления обращений к порту 80 от локальных программ на squid:
3. Для перенаправления запросов из локальный сети на выделенный прокси (на шлюзе не располагается):
На эту тему есть раздел в документации по Мастер 2.4.
или может
Внимание! Если кто-то протестировал строчки из п.3 и они верны, пожалуйста, сообщите мне или оставьте комментарий внизу страницы
Обратите внимание, что протокол (tcp) обязательно должен быть указан.
Для предотвращения зацикливания используется фильтрация по пользователю (squid), но так же можно фильтровать по TOS, который умеет выставлять squid для своих пакетов.
Обратите внимание на настройки squid – он должен разрешать (http_access allow) обращения с адреса вашего вненего интерфейса ($INET_IP)
Настройка при прокси на отдельной машине: