无法连接到Anyconnect VPN上的docker

我在Docker上使用Docker工具箱进行Docker相关的开发。 当我在家庭或办公室networking,这工作正常,但是当我使用任何连接VPN连接到办公networking不工作。 请让我知道是否有一个networking设置可以改变,使其工作。

我非常喜欢OpenConnect(它支持比network-manager-openconnect更多的configuration选项)。 即使是需要csd包装的可怕安装通常也能正常工作。

AnyConnect以奇怪的方式打破了Dockernetworking,即使您退出VPN(即使您之后停止vpnagentd),它们仍会保持中断状态。

解决方法是停止docker,清除其所有networking和网桥,然后才能启动AnyConnect VPN。 你可以在VPN会话结束后启动Docker,它将重新创build所有必要的东西。

我创build了一个脚本来解决这个不幸的行为,就是这样做的:

#!/bin/sh # usage: # vpn.sh [start] # vpn.sh stop if [ "$1" = "stop" ]; then /opt/cisco/anyconnect/vpn/vpn disconnect sudo systemctl stop vpnagentd echo "Cisco VPN stopped" echo "Starting docker" sudo systemctl start docker else echo "Stopping docker" sudo systemctl stop docker bridges=$(sudo brctl show | cut -f1 | tail -n +2) for b in $bridges; do sudo nmcli connection delete $b sudo ip link set dev $b down sudo brctl delbr $b done echo "Starting Cisco VPN" sudo systemctl start vpnagentd /opt/cisco/anyconnect/vpn/vpn connect 'VPN-NAME' fi 

注意:VPNpipe理员可能会阻止您使用OpenConnect并强制您仅使用Cisco AnyConnect,但是如果您的VPNconfiguration文件中启用了LocalLanAccess您可能会获得更好的体验。

以下为我工作。

尝试使用OpenConnect而不是Anyconnect:

 sudo apt install openconnect sudo apt install network-manager-openconnect 

然后注释掉这行dns=dnsmasq ,所以就变成这样了:

 $ cat /etc/NetworkManager/NetworkManager.conf [main] plugins=ifupdown,keyfile,ofono #dns=dnsmasq 

然后使用NetworkManager添加连接到您的VPN提供商并连接。 (NetworkManager – >编辑连接 – >添加。然后select连接types为VPN – > Cisco Annyconnect)

重新启动并重新连接,现在docker集装箱应该可以访问互联网。