取消共享并将端口转发到命名空间

取消共享并将端口转发到命名空间

我正在尝试unshare更好地理解容器。作为普通用户,是否可以创建一个命名空间,让程序可以监听端口,123并在“主”命名空间上将端口1234重定向到该命名空间?

我猜应该是,因为 Podman 是无根容器引擎,可以做到这一点。查看了man veth也没用。

答案1

Podman 的工作原理是slirp4netns管理水龙头设备在非特权容器内。摘自 slirp4netns 的 README:

从 Linux 3.8 开始,非特权用户可以创建network_namespaces(7)user_namespaces(7)但是,非特权网络命名空间并不是很有用,因为veth(4)在主机和网络命名空间之间创建对仍然需要 root 权限。(即没有互联网连接)

slirp4netns 允许以完全非特权的方式将网络命名空间连接到 Internet,方法是将网络命名空间中的 TAP 设备连接到用户模式 ​​TCP/IP 堆栈(“slirp”)。

为了实现您的目标,您需要做一些类似的事情。

相关内容