На данный момент мне нужно определить правила для всех локальных IP-адресов, например:
acl ip1 localip 1.1.1.1/32
tcp_outgoing_address 1.1.1.1 ip1
acl ip2 localip 2.2.2.2/32
tcp_outgoing_address 2.2.2.2 ip2
acl ip3 localip 3.3.3.3/32
tcp_outgoing_address 3.3.3.3 ip3
Поскольку мне нужно настроить несколько серверов, и у них всегда будут разные IP-адреса, я хотел бы настроить squid таким образом, чтобы всегда один и тот же адрес, который используется в качестве входящего адреса, также использовался как исходящий.
Это возможно?
Я также открыт для других решений. Я пробовал tinyproxy, у которого для этого есть опция bindsame, но нет возможности определять внешние скрипты аутентификации. Мне также нужна внешняя аутентификация через программу, которую умеет делать squid.
Короткий ответ: Согласно моим исследованиям, squid не поддерживает ничего похожего на "BindSame" от tinyproxy.
подробности: Я исследую эту самую тему, потому что я нахожусь в той же ситуации, что и вы: я хочу использовать tinyproxy для конфигурации BindSame, но мне нужна аутентификация, которую tinyproxy не поддерживает. К сожалению, я пришел к выводу, что у squid нет эквивалента BindSame от tinyproxy. Я не вижу другой директивы, которую можно было бы использовать для указания исходящего IP-адреса.
Из справочная документация по squid, мы видим, что директива tcp_outgoing_address требует в качестве аргумента конкретного IP-адреса. Он не принимает что-то вроде «то же самое» или переменную из соответствующего ACL.
Хотел бы я получить для вас более благоприятный ответ, потому что если бы я это сделал, я бы тоже его использовал!
Вам нужна функция (если я правильно прочитал ваш вопрос): Tproxy - это эффективно делает IP-адрес squid прозрачным - это будет выглядеть так, как будто клиент выполняет прокси-запросы.
Если честно, это немного сложно настроить (больше, чем пара директив), но это работает.