在无根容器中,如何将整个 UDP 端口从主机映射到容器?

在无根容器中,如何将整个 UDP 端口从主机映射到容器?

我想知道是否有一种方法可以通过使用 Podman 运行的无根容器将它们从主机 1:1 映射到容器来公开一系列 UDP 端口。

虽然可用资源包含 TCP 端口的信息,但我无法找到有关 UDP 的信息。此外,podman port在无根运行时似乎使用名称空间“魔法”而不是桥接器。

我想将主机 IPv4 地址的范围(例如 10000..20000 (UDP))映射到容器,作为相同的端口范围。

现在有了经典的虚拟机,人们就可以iptables随意使用,但是有了slirp4netns这不是一个选择。

我怎样才能实现它,或者UDP实际上是不可能的,这是无根容器的硬限制?

答案1

在搜索东西时偶然发现了这一点,也许我可以提供帮助:

Podman 将无根网络工具切换为 rootlesskit(至少版本 >1.8)。

-p 35010-35013:35010-35013/udp

我明白了

DEBU[0000] rootlessport: time="2020-05-08T23:05:17Z" level=info msg="exposing ports [{35010 35010 udp } {35011 35011 udp } {35012 35012 udp } {35013 35013 udp }]"

所以它应该有效。

此外,更多本机网络模式(例如桥接)需要 root 才能工作(为容器创建网络设备)。

相关内容