Postfix仅作为特定networking的中继

我有一个与postfix的一个奇怪的问题,正在推动我一点点的墙壁,因为它似乎工作50%的时间,但没有任何更改。

我想实现的是:

我在几个不同的外部networking上有许多虚拟服务器,例如1.2.3.4/24 10.20.30.40/24 11.22.33.44/24

我已经build立了4个循环赛dns的postfix服务器,它们都具有相同的main.cfconfiguration文件。

我希望只允许这些外部子网中的服务器通过邮件服务器进行中继,不需要用户名或密码。

我做了一些阅读,似乎mynetworks选项是要走的路,但它似乎只有50%的时间,即使我把其他3台服务器的图片,并留下1邮件服务器运行50%的当我得到继电器拒绝错误。

这里是使用中的configuration:

smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU) biff = no append_dot_mydomain = no readme_directory = /usr/share/doc/postfix smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key smtpd_use_tls=yes smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache myhostname = relay.example.co.uk alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases myorigin = /etc/mailname mydestination = relay.example.co.uk, localhost.example.co.uk, , localhost mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 mynetworks = 1.2.3.4/24 mynetworks = 10.20.30.40/24 mynetworks = 11.22.33.44/24 mailbox_size_limit = 0 recipient_delimiter = + inet_interfaces = all html_directory = /usr/share/doc/postfix/html smtpd_error_sleep_time = 2s smtpd_hard_error_limit = 20 smtpd_recipient_restrictions = permit_mynetworks 

我怀疑在这里可能有一部分可以发挥,但任何帮助都是值得欢迎的吗?

根据postconf(5)手册页:

当多次定义相同的参数时,只logging最后一个实例。

这意味着你的mynetworksvariables的定义应该如下所示:

 mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 1.2.3.4/24 10.20.30.40/24 11.22.33.44/24 

要么

 mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 1.2.3.4/24 10.20.30.40/24 11.22.33.44/24 

要么

 mynetworks = 127.0.0.0/8, [::ffff:127.0.0.0]/104, [::1]/128, 1.2.3.4/24, 10.20.30.40/24, 11.22.33.44/24,