我有一个与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,