我使用像“a.alpha”这样的名称作为我的 Linux 机器的主机名,但似乎这些名称并不完全可用。shellhostname
命令的响应是正确的(a.alpha)。但我的用户帐户后面打印的名称是“user@a”,而不是“[电子邮件保护]“。当我使用 avahi 时,我可以到达hostname
“a.alpha”,但不能到达“b.alpha”。这正常吗?
答案1
Chopper 是对的。由于 DNS 的工作方式,“a.alpha”中的“alpha”部分被视为 DNS 中的离散“标签”。使用带有点的主机名会导致使用 DNS 的任何系统产生不一致的结果。
Avahi 确实与 DNS 名称交互,特别是该<host-name>
指令需要包含服务的 DNS FQDN,因此它也容易受到带点名称的 DNS 不一致的影响。
不要使用点状名称。
答案2
由于 DNS,您会遇到该命名方案的麻烦,请考虑使用 a-alpha。
答案3
正如其他人提到的,由于 DNS,您肯定希望避免在主机名中使用点,而且我还发现,如果您使用通配符证书执行 SSL,这可能会带来问题,因为通配符证书只会对子域的一个级别进行通配符处理。因此,如果您的通配符证书适用于 *.mycompany.com,但您的主机名为 a.alpha,则如果通配符证书将“alpha”视为子域,则它可能不起作用。
答案4
正确答案肯定是“不要那样做”,如上所述。
对于一些可能有用但肯定与主题无关的阅读,请继续阅读:
您是在谈论 DNS 解析还是命令行提示符?如果您想修复命令行提示符,只需摆弄 $PS1(或类似的非 bash/sh 等效项(如果适用))。
如果您确实希望将 a.alpha 作为解析为互联网上的 IP 地址的主机名,您可以这样做,但这可能涉及每个主机名后缀的子域(例如 alpha、beta 等)。
您甚至可以配置 DNS 服务器,使其在不创建子域的情况下工作。您可以在父域的区域文件中提供子域的名称服务器的 IP 地址,因此它可能“正常工作”。这是因为当有人向您的 DNS 服务器询问 a.alpha.examaple.com 的 IP 地址时,他们会向 DNS 服务器询问 example.com,如果该 DNS 服务器已经拥有该地址,它将响应答案,而不是尝试将您移交给子域的权威服务器。它可能会因缺少 SOA 而陷入困境……因此,也许您可以为每个主机前缀添加一个 A 记录,并为每个主机后缀添加一个 SOA。是的,这就是问题所在……
互联网上的所有内容仍会认为您的主机名是“a”,并且您的域名是 alpha.example.com。