首页 > 解决方案 > Docker 的 Ubuntu 拆分隧道

问题描述

我正在尝试globalprotect在 Ubuntu 20.04 上与 vpn 一起运行我的 dockerized 应用程序(撰写)。问题是 GP 阻止了所有流量。

如果没有 GP,我的服务器nginx容器会连接到localhoston80443转发给外界。这很好用。

打开 GP 会创建netns带有一些 IP 的实例 - 很明显。现在在我的 compose .yaml 设置ports中,0.0.0.0:80:80or 192.168.5.123:80(这是服务器 DHCP 分配的 ip 和转发的端口)毫无价值。我尝试更改传入流量的iptables策略tcp,但没有成功。甚至用 openconnect 找到了一些用于 globalprotect 的 docker 镜像,但配置确实以授权错误结束。

我在这个话题上研究了两天,但是由于已经没有直接的解决方案,而且我对 ubuntu 网络的了解仍然是学徒,所以我不得不问这个问题。

我有什么选择?

  1. 用于为本地网络显式macvlan连接nginx容器为192.168.5.123

  2. 在(192.168.5.123) 实例和 docker 网络veth之间创建一个网桥?eth

我想不出split tunnel在我的情况下实现这一点的方法。大多数情况都涵盖OpenVPN了对我没有用的情况。

我在此过程中发现的类似主题:

https://superuser.com/questions/271915/route-the-traffic-over-specific-interface-for-a-process-in-linux/676527#676527

http://www.evolware.org/?p=293

标签: dockerubuntunetworkingdocker-compose

解决方案


推荐阅读