不允许执行TUNSETIFF 操作

不允许执行TUNSETIFF 操作

我正在尝试打开一个 TUN 设备并使用操作代码为 TUNSETIFF 的 ioctl,但出现了操作不允许的错误。

环境

PRETTY_NAME="Ubuntu 22.04.1 LTS"

$ docker --version
Docker version 20.10.17, build 100c701

Python 3.10.6

使用以下命令运行容器

docker run --rm -it --network host --cap-add=NET_ADMIN --device=/dev/net/tun ubuntutest bash -c "tuntaptest.py"

我尝试过以下选项但 docker run --rm -it --network host --privileged docker run --rm -it --network host --cap-add=SYS_ADMIN到目前为止都不起作用

代码快照

TUNSETIFF: int = 0x400454ca
IFF_TUN: int = 0x0001
IFF_NO_PI: int = 0x1000

tun = open('/dev/net/tun', 'r+b', buffering=0)
ifr: bytes = struct.pack('!16sH', bytes('tun0', 'utf-8'), IFF_TUN | IFF_NO_PI)
fcntl.ioctl(self.tun, TUNSETIFF, ifr)

相关内容