![我可以使用 systemd 资源管理来仅拒绝容器外部的端口吗](https://linux22.com/image/227223/%E6%88%91%E5%8F%AF%E4%BB%A5%E4%BD%BF%E7%94%A8%20systemd%20%E8%B5%84%E6%BA%90%E7%AE%A1%E7%90%86%E6%9D%A5%E4%BB%85%E6%8B%92%E7%BB%9D%E5%AE%B9%E5%99%A8%E5%A4%96%E9%83%A8%E7%9A%84%E7%AB%AF%E5%8F%A3%E5%90%97.png)
在最新的 fedora 39 上,我为无根容器设置了 podman,并通过创建 /etc/systemd/system/user-1000.slice.d/user-resources.conf 来限制用户可以绑定的端口和
[Slice]
SocketBindAllow = 12345
SocketBindDeny = any
现在,正如预期的那样,用户无法绑定到端口 20202,例如:
$ nc -4 -lp 20202
Ncat: bind to 0.0.0.0:20202: Operation not permitted. QUITTING.
然而令我困扰的是,它甚至不可能绑定到被拒绝的端口之内不暴露端口的容器:
$ podman run docker.io/library/alpine nc -lp 20202
nc: bind: Operation not permitted
这是一个错误吗?我能做些什么吗?