我有一个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)
- 使用代理环境变量http_proxy =='192.168.1.99:8118'
- 尝试192.168.1.99 ...
- 设置了TCP_NODELAY
- 在200毫秒内到期4(传输0x555e81b285c0) curl:(7)无法连接到192.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相关的内容。