Squid для пересылки запросов через несколько интернет-интерфейсов - PullRequest
0 голосов
/ 26 октября 2018

Я бы хотел использовать Squid для прокси-запросов из нескольких сетевых интерфейсов, подключенных к Интернету. Я намерен замаскировать исходный IP-адрес, поскольку каждый сетевой адаптер имеет уникальный внешний IP-адрес. В идеале запросы будут передаваться через прокси на основе входящего порта, например

  • порт 3128 на локальном хосте до 192.168.1.100
  • порт 3129 на локальном хосте до 192.168.2.100

К сожалению, запросы ко второму сетевому адаптеру не выполняются, хотя моя конфигурация squid выглядит корректно:

http_port 3128
http_port 3129

acl ip1 myportname 3128
acl ip2 myportname 3129

tcp_outgoing_address 192.168.1.100 ip1
tcp_outgoing_address 192.168.2.100 ip2

http_access allow ip1
http_access allow ip2
http_access allow localhost
http_access deny all

#...

Мои IP-маршруты следующие:

$ ip route
default via 192.168.1.1 dev eth1 src 192.168.1.100 metric 211 
default via 192.168.2.1 dev eth2 src 192.168.2.100 metric 212 
192.168.1.0/24 dev eth1 proto kernel scope link src 192.168.1.100 metric 211 
192.168.2.0/24 dev eth2 proto kernel scope link src 192.168.2.100 metric 212

Я написал скрипт, чтобы проверить, проходят ли мои запросы на порт 3129:

eth1=`sudo curl --interface eth1 ipv4.canhazip.com -s`
eth2=`sudo curl --interface eth2 ipv4.canhazip.com -s`
proxy1=`curl -x localhost:3128 ipv4.canhazip.com -s`
proxy2=`curl -x localhost:3129 ipv4.canhazip.com -s`

echo "port 3128: $proxy1, expected: $eth1"
echo "port 3129: $proxy2, expected: $eth2"

Обратите внимание, что мои запросы curl, направленные на каждый интерфейс, работают должным образом, однако я получаю сообщение об ошибке от Squid для второго интерфейса:

port 3128: 77.136.201.254, expected: 77.136.201.254
port 3129: [error]       , expected: 77.136.19.52

Где [ошибка] - это вывод html-кода squid с заголовком «ОШИБКА: запрошенный URL-адрес не может быть получен», а тело содержит ошибку: «Ошибка подключения к 2606: 4700: 7 :: a29f: 8605 «. и sysmsg: «Система вернула: (101) Сеть недоступна».

Мой сетевой навык немного слаб: мои попытки настроить пользовательские правила / маршруты IP не помогли. Мне интересно, если запросы не маршрутизируются из-за использования интернет-провайдерами NAT операторского уровня?

Моя попытка упростить конфигурацию для указания одного порта и одного tcp_outgoing_address тоже не удалась: (

...