无法连接到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集装箱应该可以访问互联网。