如何使Postfix使用另一个IP地址?

我使用的是Postfix邮件服务器,我有6个可用的IP地址。 我想为Postfix邮件服务器使用另一个IP来发送邮件,而不是Web服务器使用的。

我该怎么做? 我的后缀版本是2.3.3。

例如:主IP:66.66.66.66其他IP:66.66.66.67

你想smtp_bind_address=66.66.66.67inet_interfaces=allinet_interfaces=eth(whatever)

做这个改变,然后停止/启动postfix。 如果要更改inet_interfaces则不能重新加载

如果您使用“smtp_bind_address”解决scheme,那么您的邮件服务器也只会监听指定的IP地址以接收邮件。 同样的事情适用于“inet_interfaces”解决scheme。 如果您想在多个IP地址/接口上侦听传入的邮件,这可能不是您想要的解决办法。

我的解决scheme更好,因为我build议不要更改默认的“smtp_bind_address”和“inet_interfaces”设置,所以您的邮件服务器仍然会监听所有IP地址上的传入邮件。

只需要在/etc/postfix/master.cf文件中做一些小的改动。

改变这个部分:

 smtp unix  -   -   -   -   -  smtp
 #将邮件转发为备份MX时,禁用fallback_relay以避免MX循环
中继unix  -   -   -   -   -  smtp
         -o smtp_fallback_relay =

对此:

 smtp unix  -   -   -   -   -  smtp
         -o smtp_bind_address = 192.168.0.1
 #将邮件转发为备份MX时,禁用fallback_relay以避免MX循环
中继unix  -   -   -   -   -  smtp
         -o smtp_bind_address = 192.168.0.1
         -o smtp_fallback_relay =

当然,而不是192.168.0.1,你必须使用你的IP地址之一,你想发送你的邮件。

佐尔坦

master.cf

创build不同的接口。 每个域名一个:

 rotate1 unix - - n - - smtp -o syslog_name=postfix-rotate1 -o smtp_helo_name=domainone.com.br -o smtp_bind_address=173.111.111.1 rotate2 unix - - n - - smtp -o syslog_name=postfix-rotate2 -o smtp_helo_name=domaintwo.com.br -o smtp_bind_address=173.111.111.2 

main.cf

  1. 禁用所有其他运输地图,即:#transport_maps = xxxxx

  2. 启用相关传输地图(需要postfix 2.7.x或更高版本)

sender_dependent_default_transport_maps = mysql:/etc/postfix/config/transport_random_dependent.cf

transport_random_dependent.cf

例:

 user = postfix password = mypassword dbname = postfixdb hosts = localhost query = SELECT transport FROM transport_random WHERE domain = '%d' AND status='1' ORDER BY RAND() LIMIT 1 

表transport_random

 Column "transport" = rotate1, rotate2, rotate3, rotate4 (etc) Column "domain" = sender domains (replaced by %d) Column "status" = boolean (0 or 1) if is enabled the transport. 

只有当你想在同一个域中使用随机传输时,指令“RAND()LIMIT 1”才是必须的。

例如,你想从3个不同的IP从mydomain.com发送。

然后,用3个不同的IP创build3个传输(rotate1,rotate2和rotate3),然后在mysql行设置:

 transport = rotate1 | domain = mydomain.com transport = rotate2 | domain = mydomain.com transport = rotate3 | domain = mydomain.com 

然后,当postfix将随机化三个不同的传输(旋转一到三)发送这封电子邮件。

编辑/etc/postfix/main.cf并确保以下行存在

 inet_interfaces = 66.66.66.67, localhost 

然后运行“postfix reload”