小编Joó*_*dám的帖子

了解主机名

我最近在 VPS 上设置了 MTA,在配置它时我意识到我对 Unix 中主机名的概念和实现感到非常困惑。

我对 DNS 有深入的了解,并且熟悉它的前身hosts文件,但我对经典的内部网络没有经验,因为我一直使用直接连接到 Internet 的服务器。

如果有人搜索这个主题,那里有很多相互矛盾的解释,所以,首先,我想要求对主机名(不仅仅是简单的,而且是复杂的,多级名称)进行全面介绍,完全独立于DNS和互联网, 为自己的DNS关系的说明,以及错综复杂的“完全合格的域名”一词(这是一样的DNS,还是其他什么东西)。

我还想知道典型 Unix 机器上(或至少在 Debian/Ubuntu 上)上的哪些文件和命令在管理主机名方面发挥着作用,尤其是:

  • 角色和正确设置/etc/hostname(简单或复杂的名称?这是有 A 记录的东西吗?)
  • /etc/hosts设置主机名方面的角色和正确设置(它不仅仅是为了解析?什么名称和指向哪里?)
  • 任何其他文件
  • 如何在不重启的情况下对主机名应用更改?

更详细的答案比试图简化主题的答案更受欢迎,因为后一种类型有很多,这是混淆的根源。

networking hostname hosts domain

6
推荐指数
1
解决办法
822
查看次数

后缀虚拟别名域与正则表达式虚拟别名映射匹配

使用 Postfix (2.11.3) 我想将所有邮件重定向到外部地址。

/etc/postfix/main.cf

virtual_alias_maps = regexp:/etc/postfix/rewrite
Run Code Online (Sandbox Code Playgroud)

/etc/postfix/rewrite

/^.+$/ hijacked@example.com
Run Code Online (Sandbox Code Playgroud)

向 发送邮件destination@example.net,出现以下错误:

[...] to=<hijacked@example.com>, orig_to=<destination@example.net> [...] status=bounced (User unknown in virtual alias table)
Run Code Online (Sandbox Code Playgroud)

文档说:

有效的收件人地址与 virtual_alias_maps 参数一起列出。Postfix SMTP 服务器通过“虚拟别名表中的用户未知”拒绝无效收件人。

事实证明,该错误与验证虚拟别名域有关:virtual_alias_domains默认情况下是$virtual_alias_maps,将其设置为其他任何内容(设置为不匹配的域或什至将其留空)可以解决问题。

在答案中找到的另一个解决方案是以另一种形式给出正则表达式:

/^.+@.+$/ hijacked@example.com
Run Code Online (Sandbox Code Playgroud)

所以我的问题是,当使用正则表达式表进行虚拟别名时,别名域的验证如何工作?为什么设置virtual_alias_domains为其他任何内容都可以解决问题?上述两种地址映射方式的等效模式有何不同?

的输出postconf -n是:

config_directory = /etc/postfix
inet_interfaces = loopback-only
inet_protocols = ipv4
mydestination =
myhostname = example.org
myorigin = $myhostname
virtual_alias_domains =
virtual_alias_maps = regexp:/etc/postfix/rewrite
Run Code Online (Sandbox Code Playgroud)

postfix

5
推荐指数
1
解决办法
9073
查看次数

标签 统计

domain ×1

hostname ×1

hosts ×1

networking ×1

postfix ×1