postfixconfiguration和Received from

在这里遇到麻烦 我的服务器有3个IP地址,这是我的/ etc / hosts:

127.0.0.1 localhost 46.38.235.226 brian.smares.de brian 46.38.238.199 stewie.smares.de stewie 46.38.238.137 mail.smares.de mail 

postfix是设置的

 inet_interfaces = localhost, $myhostname mynetworks = 127.0.0.0/8 mydestination = localhost myhostname = mail.smares.de mydomain = smares.de myorigin = $mydomain 

如果我发送电子邮件,则来源读取

 Received: from mail.smares.de (pelikansal.at. [46.38.235.226]) 

pelikansal.at是46.38.235.226的rDNS目标。

我不明白的是为什么使用IP而不是46.38.238.137。 我的服务器的FQDN是brian.smares.de,它将映射到226地址,但这是什么原因?

有任何想法吗?

可能的scheme

发送电子邮件时,用于控制传出IP地址的参数是smtp_bind_address 。 所以你应该明确地设置参数smtp_bind_address到一个IP地址。


说明

您的configuration上面,您已经修改了inet_interfaces参数。 它只设置postfix将收到邮件的IP地址。

但是,如果这三个条件足够,参数inet_interfaces也会影响smtp_bind_address

  1. smtp_bind_address是空的(默认)
  2. inet_interfaces只有一个 IPv4 IP地址
  3. inet_interfaces列表不是loopback。

当它发生时, smtp_bind_address = $inet_interfaces

由于您在inet_interfaces设置了两个IP地址,因此smtp_bind_address仍为空。 在这种情况下, smtp客户端使用0.0.0.0作为其IP地址,0.0.0.0(INADDR_ANY)表示内核将根据数据包的去向selectIP地址 。 他说,从这个由Remy Lebeau撰写的 主题

如果客户端不绑定到特定的IP,或绑定到INADDR_ANY,则套接字将使用它发现的第一个IP,该IP具有到所连接的服务器IP的可用路由。

所以,你的情况是可以理解的,内核select46.38.238.137进行传出连接。