如何在 Debian 上配置 Podman 以使用 IPv6

如何在 Debian 上配置 Podman 以使用 IPv6

我正在运行 rootless podman(podman 版本 4.3.1)。我无法让 IPv6 正常工作。

设置

/etc/containers/containers.conf已经设置了:

network_cmd_options = [
    "port_handler=slirp4netns",
    "enable_ipv6=true"
]

network_backend = "netavark"

接下来我用 重置了 podman podman system reset。然后我用 定义了一个网络podman netowrk create --ipv6 mytestnetwork

我现在用 创建一个 pod 。最后,我在podpodman pod create --name mytestpod --publish 8080:80 --network mytestnetwork中用 创建一个 nginx 容器。我在容器中设置了以下 nginx.conf:mytestpodpodman run --name test-web --pod mytestpod -d docker.io/library/nginx

server {
    listen  [::]:80;

    location / {
        proxy_pass http://[some:ipv6:address]:1234;
    }
}

问题

我无法连接到 Nginx 容器,因为它正在监听 IPv6。如果我添加行listen 80(用于 IPv4),那么我可以连接,但显然不会proxy_pass起作用,因为那是 IPv6。我已确保 nftables 没有阻止连接的规则。ss -tlp报告rootlessport正在监听 Nginx 端口。

我意识到我可以将我的所有 Pod 放在主机网络上,但我有很多容器和 Pod,我真的想使用端口映射并进行一些网络隔离。我已经在这个问题上呆了一个多星期,我反复阅读了 podman 文档和 Redhat 博客,但都无济于事。任何帮助或建议都非常感谢!

相关内容