说实话,我真心相信这是 Postfix 的一个错误。
长话短说,我有一台运行多个 Docker 容器的服务器,每个容器都提供各种服务。
我想要的是使用直接在主机操作系统上运行的单个 SMTP 服务器,容器可以连接到该服务器并将其电子邮件转发到目的地。
因此,我决定为此目的配置 Postfix。
为了使 docker 容器能够访问我的 Postfix 服务器,我进入 main.cf 并配置了以下设置:
inet_interfaces = 127.0.0.1 172.16.0.255
我认为 172.16.0.255 是在 docker 网络中运行的 IP,因此所有容器都应该可以访问它。
问题是,启动 postfix 服务器时出现以下错误:致命:参数 inet_interfaces:未找到 172.16.0.255 的本地接口
为什么?
我这样设置环境,使得执行“cat /proc/sys/net/ipv4/ip_nonlocal_bind”的结果为“1”,所以我相信它应该可以工作。
此外,当我使用较低的 IP(如“172.17.0.1”)时,出于某种原因,它可以正常工作。我想避免这样做,因为每次重新启动后,postfix 总是会尝试绑定到 docker 容器已经随机绑定到的 IP,因此较低的地址的绑定会失败。这就是为什么我想要一个数字非常大的 IP(如“172.16.0.255”),这样 docker 就不会干扰其生成的容器。但 postfix 拒绝绑定到这个地址。
我能做些什么?