我使用的是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.67
和inet_interfaces=all
或inet_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
禁用所有其他运输地图,即:#transport_maps = xxxxx
启用相关传输地图(需要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”