更改主机的 IP 是否会影响电子邮件投递?

您好!我们有一个 Discourse 实例运行在 Ubuntu 22.04.4 LTS 服务器上。已完全更新。可以通过 https://forum.igfae.usc.es/ 访问。由于基础设施的一些变动,我们需要更改服务器的 IP 地址。在此更改之前,电子邮件发送工作正常:我们使用 SMTP 服务器作为中继,授权 Discourse 服务器的 IP。但在更改之后,SMTP 服务器记录的发送尝试 IP 为 10.x.y.z(为避免任何潜在的安全泄露,已省略实际地址)。

10.x.y.z 可以 ping 通。我猜它是一些通信基础设施。另外,请注意 IP 地址的更改意味着 C 类网络的更改。

在同一台服务器上,我们还有其他非容器化应用程序成功地通过同一个 SMTP 服务器进行中继。这就是为什么我得出结论,该行为可能与 Discourse、Docker 或两者之间的任何交互有关。

容器的 NetworkSettings 显示如下:

        "NetworkSettings": {
            "Bridge": "",
            "SandboxID": "f80dc06362bb6982d93de5aa0301624b3932744dd4d23a8dea140c33064dec23",
            "SandboxKey": "/var/run/docker/netns/f80dc06362bb",
            "Ports": {
                "443/tcp": [
                    {
                        "HostIp": "0.0.0.0",
                        "HostPort": "443"
                    },
                    {
                        "HostIp": "::",
                        "HostPort": "443"
                    }
                ],
                "80/tcp": [
                    {
                        "HostIp": "0.0.0.0",
                        "HostPort": "80"
                    },
                    {
                        "HostIp": "::",
                        "HostPort": "80"
                    }
                ]
            },
            "HairpinMode": false,
            "LinkLocalIPv6Address": "",
            "LinkLocalIPv6PrefixLen": 0,
            "SecondaryIPAddresses": null,
            "SecondaryIPv6Addresses": null,
            "EndpointID": "5d6105ab3bb9d331667c9c1be73eeea8be64a5b85daffa99cb0c711df9cc0dc9",
            "Gateway": "172.17.0.1",
            "GlobalIPv6Address": "",
            "GlobalIPv6PrefixLen": 0,
            "IPAddress": "172.17.0.2",
            "IPPrefixLen": 16,
            "IPv6Gateway": "",
            "MacAddress": "02:21:a3:2c:a4:cf",
            "Networks": {
                "bridge": {
                    "IPAMConfig": null,
                    "Links": null,
                    "Aliases": null,
                    "MacAddress": "02:21:a3:2c:a4:cf",
                    "DriverOpts": null,
                    "NetworkID": "bbfd3d524dc976e2534f3f6a9df98f49f1ee4e018d9e32a144f05b037d6df1fc",
                    "EndpointID": "5d6105ab3bb9d331667c9c1be73eeea8be64a5b85daffa99cb0c711df9cc0dc9",
                    "Gateway": "172.17.0.1",
                    "IPAddress": "172.17.0.2",
                    "IPPrefixLen": 16,
                    "IPv6Gateway": "",
                    "GlobalIPv6Address": "",
                    "GlobalIPv6PrefixLen": 0,
                    "DNSNames": null
                }
            }
        }

您觉得这有道理吗?您知道为什么 IP 地址更改会导致这种行为吗?请问如何解决?

非常感谢!

我没有亲自遇到过这个问题。您能分享一下您的 SMTP 提供商吗?

猜测一下,您可能需要登录到您的 SMTP 帐户并更改您的 Discourse 服务器 IP 地址?

抱歉这么晚才回复。我们一直在努力理解这个问题。这里有一些有趣的交互让我们非常头疼。我想分享您的 SMTP 服务器的主机名应该不会有什么问题,因为它是一个公共主机名:igfae.usc.es.

无需登录。运行 Discourse 的主机的 IP 地址已获得授权。因为之前的 IP 地址已获得授权并且一直正常工作。

是主机 IP 地址的更改,包括位置和子网的更改,导致了某些交互,使得源自 Discourse 容器的数据包被 SMTP 服务器视为来自中间通信基础设施元素的 IP 地址(我们通过查看与 IP 地址关联的 MAC 地址来检查这一点)。

我必须坚持:我们还有另一个 Web 应用程序在该服务器上运行,并且可以毫无问题地使用该中继。

运行 Discourse 容器的主机 IP 地址的更改似乎是这些问题的根源。或者您的意思是我们在 NetworkSettings 中更改 IP 地址?

我需要学习很多关于网络、容器化、安全……的知识 :frowning: 感谢任何见解!