专用 Linux 服务器上的主机名应使用什么?

专用 Linux 服务器上的主机名应使用什么?

我最近发现 Debian wiki 不建议exim设置primary_hostname 明确地。据我所知,以下是代码选择primary_hostname

基本上,我要么在/etc/hostname( myhostname.example.com) 中有 FQDN,要么只myhostname在 中有一行/etc/hosts

ip.add.re.ss  myhostname.example.com  myhostname

现在,哪个 IP 地址?127.0.0.1或者是外部 IP 地址?

我认为将 FQDN 指向localhost是可以的。那么,myhostname在 中/etc/hostname,然后在 中/etc/hosts

127.0.0.1  myhostname.example.com  myhostname  localhost

对我来说看起来很有希望:

$ hostname
myhostname
$ hostname -d
example.com
$ hostname --fqdn
myhostname.example.com

除此之外,exim可能还会使用myhostname.example.com问候语 ( EHLO)。这可能会影响电子邮件是否被视为垃圾邮件。或者我必须从myhostname.example.com而不是发送邮件example.com

有人能帮我打破这个循环吗?好吧,这不仅仅是关于exim。是否有让所有人满意的最佳设置?或者大多数人满意?

答案1

我不确定我是否同意不primary_hostname明确配置的建议。当然,原则上只在一个地方配置系统的主机名,然后让它渗透到系统的其余部分是一个好主意,但 2019 年发送电子邮件的现实是,您不能只更改传出的 FQDN 并期望一切继续正常工作。理想情况下,您的传出 IP 地址和 HELO 名称的反向 DNS 将相同并始终解析回 IP 地址。因此,在外部 DNS 中为您的域配置正确的 IP 地址至关重要。如果您知道您的服务器将始终能够可靠地访问此外部 DNS,那么就没有理由输入任何内容,/etc/hosts我会坚持127.0.0.1 localhost这样做。

对于 Exim,我个人建议明确配置primary_hostname。此外,我还要提请您注意设置qualify_domain,其默认值为,primary_hostname但您可能也希望明确设置为您的域名。

答案2

现在我想起来了,这个建议背后的想法可能是不要更改会影响其他设置的设置。而是更改您想要更改的任何特定设置。想要更改标题From?更改/etc/mailnameHELO主机名?更改helo_data。这基本上可以归结为:

/etc/exim4/exim4.conf.localmacrosHELO主机名):

REMOTE_SMTP_HELO_DATA = mydomain.com

/etc/mailnameFrom标题):

mydomain.com

然后

# update-exim4.conf
# systemctl reload exim4

确认

您可以通过向 port25 发送测试电子邮件来确认它是否有效身份验证检查器

echo test email | exim [email protected]  # replies back
echo test email | exim [email protected]  # replies back
echo test email | exim [email protected]  \
    # replies to [email protected]

在收到的报告中会有一行:

HELO hostname:  somedomain.com

或者简单添加-v选项:

# echo test email | exim -v [email protected]
LOG: MAIN
  <= [email protected] U=root P=local S=290
delivering 1hM501-0007Nn-7A
R: dnslookup for [email protected]
T: remote_smtp for [email protected]
Connecting to mail.dst.com [ip.add.re.ss]:25 ... connected
  SMTP<< 220 dst.com ESMTP Postfix (Debian/GNU)
  SMTP>> EHLO src.com
  SMTP<< 250-dst.com
         250-PIPELINING
         250-SIZE 10240000
         250-VRFY
         250-ETRN
         250-STARTTLS
         250-ENHANCEDSTATUSCODES
         250-8BITMIME
         250 DSN
  SMTP>> STARTTLS
  SMTP<< 220 2.0.0 Ready to start TLS
  SMTP>> EHLO src.com
  SMTP<< 250-dst.com
         250-PIPELINING
         250-SIZE 10240000
         250-VRFY
         250-ETRN
         250-ENHANCEDSTATUSCODES
         250-8BITMIME
         250 DSN
  SMTP>> MAIL FROM:<[email protected]> SIZE=1322
  SMTP>> RCPT TO:<[email protected]>
  SMTP>> DATA
  SMTP<< 250 2.1.0 Ok
  SMTP<< 250 2.1.5 Ok
  SMTP<< 354 End data with <CR><LF>.<CR><LF>
  SMTP>> writing message and terminating "."
  SMTP<< 250 2.0.0 Ok: queued as 0019EEC0B6D
  SMTP>> QUIT
LOG: MAIN
  => [email protected] R=dnslookup T=remote_smtp H=mail.dst.com [ip.add.re.ss] X=TLS1.0:RSA_AES_256_CBC_SHA1:32 DN="CN=dst.com"
LOG: MAIN
  Completed

或者,您可以检查目标邮箱:

接收者exim

Received: from [ip.add.re.ss] (helo=HELO_HOSTNAME)
    ...

接收者postfix

Received: from HELO_HOSTNAME (myhostname [ip.add.re.ss])
    ...

主机名和/etc/hosts

我相信主机名应该是主机名,而不是 FQDN。

是否将其添加到/etc/hosts...我宁愿不添加。据我所知,如今的软件并不期望主机名被解析为任何东西。或者它可以被覆盖。(也就是说,除非您在某处使用主机名作为域名。)这意味着只需要这个127.0.0.1

127.0.0.1  localhost

相关内容