在这里遇到麻烦 我的服务器有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地址,但这是什么原因?
有任何想法吗?
发送电子邮件时,用于控制传出IP地址的参数是smtp_bind_address 。 所以你应该明确地设置参数smtp_bind_address到一个IP地址。
您的configuration上面,您已经修改了inet_interfaces参数。 它只设置postfix将收到邮件的IP地址。
但是,如果这三个条件足够,参数inet_interfaces也会影响smtp_bind_address :
smtp_bind_address是空的(默认) inet_interfaces只有一个 IPv4 IP地址 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进行传出连接。