访问连接到 VPN 的 Docker 容器中的服务

Smx*_*Cde 5 networking vpn openvpn docker

我设置了一个 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>
Run Code Online (Sandbox Code Playgroud)

小智 0

您是否尝试过在泊坞窗内创建路由?

尝试通过命令行添加这些:

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
Run Code Online (Sandbox Code Playgroud)

其中:XXXX是docker的LAN地址

YYY0是docker LAN的网络地址,例如192.168.1.0/24

ETH0 是您的 LAN 接口

ZZZZ 是 LAN 网关,即您的路由器 IP 最有可能

请注意,这些命令在重新启动后不会继续存在。因此,如果您想保留它们,请使用“sleep 30”命令将它们放入 /etc/rc.local 中。