Я использую следующие правила в iptables в своей сети, чтобы использовать прозрачный прокси
* iptables -t nat -A PREROUTING -i eth0 -s ! squid-box -p tcp --dport 80 -j DNAT --to squid-box:3128
* iptables -t nat -A POSTROUTING -o eth0 -s local-network -d squid-box -j SNAT --to iptables-box
* iptables -A FORWARD -s local-network -d squid-box -i eth0 -o eth0 -p tcp --dport 3128 -j ACCEPT
Но мой журнал squid всегда регистрирует IP шлюза (172.16.0.1)
Вы знаете альтернативу, как не потерять клиентский IP? (конечно, избегайте ручной настройки прокси!)
Вы знаете альтернативу, как не потерять клиентский IP?
Вы теряете IP-адрес клиента из-за правила SNAT. Я хочу предложить вам удалить это правило. Если ваш ящик с кальмарами находится внутри вашей сети, как следует из вашего комментария, то я почти уверен, что вам не нужно выполнять SNAT.
К сожалению, вы не предоставили нам подробных сведений о настройке вашей сети. Поэтому, если по какой-то причине требуется SNAT, вам может потребоваться реструктуризация сети.
Еще одна вещь, на которую стоит обратить внимание, - это автоматическая настройка ваших клиентов с помощью групповых политик и / или WPAD. В том, что браузер действительно распознает, что используется прокси-сервер, есть некоторые преимущества.
Вы можете решить эту проблему, отключив прокси-сервер от интерфейса другого маршрутизатора.
Если вы это сделаете, вам не нужно будет выполнять уловки SNAT, из-за которых вы потеряете IP-адрес клиента, поскольку весь трафик к прокси-серверу и от него будет проходить через маршрутизатор.
Устраняю проблему установкой Shorewall на шлюзе.