docker - Docker 的 Ubuntu 拆分隧道
问题描述
我正在尝试globalprotect
在 Ubuntu 20.04 上与 vpn 一起运行我的 dockerized 应用程序(撰写)。问题是 GP 阻止了所有流量。
如果没有 GP,我的服务器nginx
容器会连接到localhost
on80
并443
转发给外界。这很好用。
打开 GP 会创建netns
带有一些 IP 的实例 - 很明显。现在在我的 compose .yaml 设置ports
中,0.0.0.0:80:80
or 192.168.5.123:80
(这是服务器 DHCP 分配的 ip 和转发的端口)毫无价值。我尝试更改传入流量的iptables
策略tcp
,但没有成功。甚至用 openconnect 找到了一些用于 globalprotect 的 docker 镜像,但配置确实以授权错误结束。
我在这个话题上研究了两天,但是由于已经没有直接的解决方案,而且我对 ubuntu 网络的了解仍然是学徒,所以我不得不问这个问题。
我有什么选择?
用于为本地网络显式
macvlan
连接nginx
容器为192.168.5.123
?在(192.168.5.123) 实例和 docker 网络
veth
之间创建一个网桥?eth
我想不出split tunnel
在我的情况下实现这一点的方法。大多数情况都涵盖OpenVPN
了对我没有用的情况。
我在此过程中发现的类似主题:
解决方案
推荐阅读
- python - ValueError: list.remove(x): x not in list 当我尝试从列表中删除元素时
- javascript - 防止在 ::before 伪元素下出现换行符
- python - 熊猫数据框如何制作散点图以将值列表聚类到一组组中
- azure - 在 IIS 上运行 FastAPI 应用程序时出现网关错误
- git - 为什么我的文件从本地推送后没有出现在 Github 中?
- amazon-ecs - 运行 pgadminin ecs 时运行状况检查请求超时
- javascript - ajax json表格分组行
- python - Python - 特定网页上的 WebDriverException 问题
- google-bigquery - 使用 Cloud Functions 将 Pub/Sub 消息发送到 BigQuery 的有效方式
- reactjs - 为什么 Paypal 拒绝接受描述和货币价值参数?