Здравствуте.
Для проксирования в сети выделена машина с Debian 9. Прокси-сервер - 3proxy.
Интерфейсы:
enp3s0 - локалка, вход прокси
enp0s29f7u1, enp0s29f7u3 - 4G-модемы, выходы прокси (пока в тесте 2, потом будет больше). DHCP на модемах отключен.
virbr0 - default network от QEMU/KVM - болтается на машине, никому не мешает (вроде).
Интерфейсы кроме virbr0 подняты через /etc/network/interfaces:
auto lo
iface lo inet loopback
allow-hotplug enp3s0 # это локалка
auto enp3s0
iface enp3s0 inet static
address 192.168.200.100
netmask 255.255.255.0
gateway 192.168.200.1
dns-nameservers 192.168.200.1 8.8.8.8
allow-hotplug enp0s29f7u1 # это модем 1
auto enp0s29f7u1
iface enp0s29f7u1 inet static
address 192.168.110.100
netmask 255.255.255.0
gateway 192.168.110.1
dns-nameservers 192.168.110.1 8.8.8.8
allow-hotplug enp0s29f7u3 # это модем 2
auto enp0s29f7u3
iface enp0s29f7u3 inet static
address 192.168.111.100
netmask 255.255.255.0
gateway 192.168.111.1
dns-nameservers 192.168.111.1 8.8.8.8
Конфиг 3proxy (/etc/3proxy/3proxy.cfg):
daemon
auth strong
nserver 8.8.8.8
nserver 8.8.4.4
nscache 65536
timeouts 1 5 30 60 180 1800 15 60
internal 192.168.200.100
users qwerty:CL:123456
log /var/log/3proxy/3proxy.log
logformat "- +_L%t.%. %N.%p %E %U %C:%c %R:%r %O %I %h %T"
archiver gz /usr/bin/gzip %F
rotate 1
# что делает этот блок не очень понимаю, взял из дефолтного конфига 3proxy уже когда искал причину описанной ниже ошибки. Поэтому думаю он не влияет
authcache user 60
auth strong cache
deny * * 127.0.0.1,192.168.200.100
allow * * * 80-88,8080-8088 HTTP
allow * * * 443,8443 HTTPS
auth strong cache
flush
proxy -n -a -p8810 -e192.168.110.100
proxy -n -a -p8811 -e192.168.111.100
auth iponly strong
flush
socks -n -a -p8310 -e192.168.110.100
socks -n -a -p8311 -e192.168.111.100
auth strong cache
flush
admin -p2525
Метрики интерфейсам по умолчанию не назначены:
# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.110.1 0.0.0.0 UG 0 0 0 enp0s29f7u1
192.168.110.0 0.0.0.0 255.255.255.0 U 0 0 0 enp0s29f7u1
192.168.111.0 0.0.0.0 255.255.255.0 U 0 0 0 enp0s29f7u3
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
192.168.200.0 0.0.0.0 255.255.255.0 U 0 0 0 enp3s0
Проблема заключается в том, что проксируемый трафик ходит только через интерфейс, на котором поднимается дефолтный gateway (в выводе nroute выше - 192.168.110.0).
Т.е. http прокси qwerty:12345@192.168.200.100:8810 и socks 192.168.200.100:8310 работают, а 192.168.200.100:8811 и 192.168.200.100:8311 - нет.
Если назначить метрики и сделать приоритет 192.168.111.100 выше (соответственно дефолтным становится gateway 192.168.111.1), то наоборот: 192.168.200:8811 и 192.168.200:8311 работают, а 192.168.200:8811 и 192.168.200:8311 - нет.
Работу прокси проверяю в Firefox на другой машине в сети.
Включение/отключение IP Forwarding в /etc/sysctl.conf:
net.ipv4.ip_forward=1
Пробовал оставить только http-прокси или только socks - все равно.
В iptables ничего не назначено:
# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT udp -- anywhere anywhere udp dpt:domain
ACCEPT tcp -- anywhere anywhere tcp dpt:domain
ACCEPT udp -- anywhere anywhere udp dpt:bootps
ACCEPT tcp -- anywhere anywhere tcp dpt:bootps
Chain FORWARD (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere 192.168.122.0/24 ctstate RELATED,ESTABLISHED
ACCEPT all -- 192.168.122.0/24 anywhere
ACCEPT all -- anywhere anywhere
REJECT all -- anywhere anywhere reject-with icmp-port-unreachable
REJECT all -- anywhere anywhere reject-with icmp-port-unreachable
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
ACCEPT udp -- anywhere anywhere udp dpt:bootpc
В чем может быть дело, сам уже теряюсь в догадках?