使用 Cisco *** AnyConnect 时无法让 docker-machine 与 virtualbox 一起使用

Posted

技术标签:

【中文标题】使用 Cisco *** AnyConnect 时无法让 docker-machine 与 virtualbox 一起使用【英文标题】:Cannot get docker-machine to work with virtualbox when using Cisco *** AnyConnect 【发布时间】:2016-03-03 17:48:46 【问题描述】:

当我使用 Cisco *** Anyconnect 加入我的公司网络时,我无法让 docker-machine 连接到我的 virtualbox 虚拟机。这与 Cisco Anyconnect 接管所有 192.168.. 路由有关。我还尝试使用完全不同的 cidr 范围(25.0.1.100/24),但仍然无法让 docker-machine 与 VM 对话。当我检查路由表时,路由被添加到 utun0 而不是 vboxnet0。我假设 utun0 是 *** 的主机网络接口。这里是 docker-machine 输出:

docker-machine create -d virtualbox dev   
Running pre-create checks...
Creating machine...
Waiting for machine to be running, this may take a few minutes...
Machine is running, waiting for SSH to be available...
Detecting operating system of created instance...
Provisioning created instance...
Copying certs to the local machine directory...
Copying certs to the remote machine...
Setting Docker configuration on the remote daemon...
WARNING >>> 
This machine has been allocated an IP address, but Docker Machine could not
reach it successfully.

SSH for the machine should still work, but connecting to exposed ports, such as
the Docker daemon port (usually <ip>:2376), may not work properly.

You may need to add the route manually, or use another related workaround.

This could be due to a ***, proxy, or host file configuration issue.

You also might want to clear any VirtualBox host only interfaces you are not using.
To see how to connect Docker to this machine, run: docker-machine env dev

【问题讨论】:

当我从 *** 断开连接时,它可以工作并且路由被添加到 vboxnet0(没有 utun0 网络接口) 【参考方案1】:

我在 192.168.x.x 上遇到了类似的 IP 冲突问题,我通过更改 VirtualBox 仅主机网络的子网解决了它。

1) 运行docker-machine rm dev

2) 进入 VirtualBox 首选项并删除仅主机网络

3) 运行docker-machine create --driver virtualbox --virtualbox-hostonly-cidr "25.0.1.100/24" dev

这里也有关于 Github 的讨论:https://github.com/docker/kitematic/issues/1029#issuecomment-156219462

【讨论】:

这成功了!我还必须运行 docker-machine env 来设置正确的环境变量。 我使用的是 VirtualBox 6.1.22,但在多次重新启动、移除主机适配器等之后,在全新安装 docker-machine 时仍然出现与原始海报相同的错误,@987654325 @我已经开始赏金,希望能得到所需的任何更新。谢谢! @BradParks 你的操作系统、路由表(有和没有 ***)和 docker 机器的 IP (docker-machine env) 是什么?问题通常存在,因为 *** 管理员不允许 *** 拆分隧道。但是,如果您是二手机器的管理员,那么您可以创建自己的“拆分隧道” - 它需要针对特定​​用例(操作系统、路由、网络 CIDR 等)定制的低级网络配置。 感谢您的反馈 - 我在 Mac Big Sur 上,我无法真正使用 AnyConnect 的配置/设置,因为我在 *** 上工作,不能将其更改为拆分隧道,或任何会破坏 *** 配置的东西。如果您对可以解决这些限制的答案有任何建议,请发布,我会试一试!【参考方案2】:

我有同样的问题,this post on docker at github.com 解决了它。

sudo ifconfig vboxnet0 down && sudo ifconfig vboxnet0 up

您可能还想将端口 2377 用作discussed here

【讨论】:

【参考方案3】:

如果您可以选择在拆分隧道(而不是全隧道)模式下运行 Cisco ***,这似乎工作得很好,同时仍然允许您访问您的公司网络。

【讨论】:

以上是关于使用 Cisco *** AnyConnect 时无法让 docker-machine 与 virtualbox 一起使用的主要内容,如果未能解决你的问题,请参考以下文章

如何使用任务计划程序运行 Cisco AnyConnect

MacOS上使用Openconnect代替Cisco Anyconnect

Cisco AnyConnect 通过FreeRADIUS集成域账号+Google MFA认证

CISCO anyconnect ***配置

通过 bash 连接 CISCO Anyconnect ***

linux 下连接 Cisco AnyConnect