我设置了一个 Linux 服务器(目前是 VirtualBox VM)
在该服务器中我运行了Docker container
包含两件事的东西:
- 某个端口上有 Web 界面的应用程序
- 打开VPN客户端
我可以访问该应用程序(从我的主机,因为 Linux 是 VM 客户机),并且一切正常,直到我连接 VPN。
VPN 可以运行 - 流量可以通过它,但我无法再连接到我的应用程序 (ERR_CONNECTION_TIMED_OUT)。
我的目标是:
- 在 Docker 容器中有一个服务器,所有流量都通过 VPN
- 能够在我的本地网络中访问该服务器/容器(就像我现在在未连接 VPN 时所做的那样)
我怎样才能实现它?
我的 .ovpn 文件如下所示
client
auth-user-pass
ping 5
dev tun
resolv-retry infinite
nobind
persist-key
persist-tun
ns-cert-type server
verb 3
route-metric 1
proto udp
ping-exit 30
cipher AES-256-CBC
// cetrificate here
remote <remote-host-ip>
答案1
您是否尝试过在docker内部创建路由?
尝试通过命令行添加这些:
ip rule add from X.X.X.X table 128
ip route add table 128 to y.y.y.0/24 dev eth0
ip route add table 128 default via Z.Z.Z.Z
其中:XXXX是docker的LAN地址
YYY0 是 docker 局域网的网络地址,例如 192.168.1.0/24
ETH0 是你的 LAN 接口
ZZZZ 是 Lan 网关,即您的路由器 IP 很可能
请注意,这些命令在重启后将失效。因此,如果您想保留它们,请使用“sleep 30”命令将它们放入 /etc/rc.local。