У меня есть docker-compose, определяющий 2 службы: клиент vpn и прокси. Прокси проходит через vpn и открывает порт для его использования.
services:
vpn:
image: my_vpn_image
devices:
- /dev/net/tun
cap_add:
- net_admin
ports:
- "8118:8118"
privoxy_vpn:
image: splazit/privoxy-alpine
network_mode: "service:vpn"
Работает, когда я использую локальный адаптер
http_proxy=localhost:8118 curl www.ok.com
Но это не сработает, если я попытаюсь использовать ip в других адаптерах. Допустим, мой IP 192.168.1.99
http_proxy=192.168.1.99:8118 curl -vvv www.ok.com
- Истекает через 0 мс в течение 6 (передача 0x555e81b285c0)
- Использует прокси-переменную env http_proxy == '192.168.1.99:8118'
- Попытка 192.168.1.99 ...
- TCP_NODELAY set
- Истекает через 200 мс в течение 4 (передача 0x555e81b285c0)
curl: (7) Не удалось подключиться к порту 1911.168.1.99. 8118: Тайм-аут соединения
Если я изменю контейнер vpn на другой, скажем, nginx:
services:
vpn:
image: nginx
devices:
- /dev/net/tun
cap_add:
- net_admin
ports:
- "8118:8118"
privoxy_vpn:
image: splazit/privoxy-alpine
network_mode: "service:vpn"
Работает.
Мне не хватает чего-то, связанного с контейнером vpn или network_mode.