hub compose docker vpn

compose - docker openvpn client



Llamar al cliente OpenConnect VPN en el contenedor de la ventana acoplable muestra TUNSETIFF fallido: operaciĆ³n no permitida (3)

Estoy llamando a openconnect dentro de un contenedor docker basado en ubuntu. Se conecta con éxito al servidor y solicita mi contraseña, pero luego

Got CONNECT response: HTTP/1.1 200 OK CSTP connected. DPD 30, Keepalive 20 TUNSETIFF failed: Operation not permitted

Busco la palabra TUNSETIFF y cada respuesta es sobre el comando que no se ejecuta en sudo, pero ya soy root dentro del contenedor. ¿Qué más puede salir mal?


Comenzando el contenedor con --privileged. (Gracias Adrian Mouat por la respuesta).


De forma predeterminada, los contenedores Docker se inician con un conjunto reducido de capacidades de linux (ver man capabilities ). El conjunto reducido no incluye algunas funciones relacionadas con la red (presumiblemente para que los contenedores no puedan detectar el tráfico del host u otros contenedores).

Para iniciar un contenedor con capacidades de red completas, agregue explícitamente la capacidad --cap-add argumento --cap-add por ejemplo:

docker run -d --cap-add SYS_NET_ADMIN myimage

O bien, --privileged al contenedor el conjunto completo de privilegios con --privileged por ejemplo:

docker run -d --privileged myimage


O bien ejecute el contenedor privilegiado a través de

docker run -d --privileged myimage

como Adrian lo señaló o lo ejecuta con la capacidad NET_ADMIN agregada y pasa el dispositivo del túnel, por ejemplo:

docker run -d --cap-add NET_ADMIN --device /dev/net/tun myimage