在docker容器中调用OpenConnect VPN客户端显示TUNSETIFF失败:不允许操作

spe*_*goo 19 vpn docker

我在基于ubuntu的docker容器中调用openconnect.它成功连接到服务器并提示输入我的密码,但随后

Got CONNECT response: HTTP/1.1 200 OK
CSTP connected. DPD 30, Keepalive 20
TUNSETIFF failed: Operation not permitted
Run Code Online (Sandbox Code Playgroud)

我搜索TUNSETIFF字,每个答案都是关于sudo中没有运行的命令,但我已经在容器内部了.还有什么可能出错?

Adr*_*uat 25

默认情况下,Docker容器以一组减少的linux功能启动(请参阅参考资料man capabilities).简化集不包括一些与网络相关的功能(可能是因为容器无法嗅探来自主机或其他容器的流量).

要启动具有完整网络功能的容器,请SYS_NET_ADMIN使用--cap-add参数显式添加功能,例如:

docker run -d --cap-add SYS_NET_ADMIN myimage
Run Code Online (Sandbox Code Playgroud)

或者为容器提供完整的权限集,--privileged例如:

docker run -d --privileged myimage
Run Code Online (Sandbox Code Playgroud)

  • 不幸的是`docks 17.xx中没有`SYS_NET_ADMIN`,您可以使用`SYS_ADMIN` _来执行一系列系统管理操作_或`NET_ADMIN`_来执行各种与网络相关的操作_.无论如何** - cap-add NET_ADMIN**将与openconnect进行交易. (2认同)