Jam*_*ley 5 hostname system-installation
在 Ubuntu Server Installer 中,我们不能将数字作为主机名的第一个字符。但是,一旦安装,我们可以发出一个主机名命令来重命名服务器以具有数字前缀。这个限制有什么原因吗?
例如,在安装程序中,我可以创建一个主机名
WebServer1
Run Code Online (Sandbox Code Playgroud)
但不是
0WebServer1
Run Code Online (Sandbox Code Playgroud)
但是,我可以创建一个名称为
WebServer1
Run Code Online (Sandbox Code Playgroud)
然后,在 CLI 中,将其重命名为
0WebServer1
Run Code Online (Sandbox Code Playgroud)
请告知为什么存在此限制,以及是否有解决此限制的任何注意事项。
可能是历史原因。
RFC 952于 1985 年发布,标题为DOD INTERNET HOST TABLE SPECIFICATION,要求主机名包含字母 (az) 和数字 (0-9),并且不能以数字开头:
- “名称”(网络名称、主机名称、网关名称或域名)是最多 24 个字符的文本字符串,由字母 (AZ)、数字 (0-9)、减号 (-) 和句点 (.) 组成。请注意,仅当句点用于分隔“域样式名称”的组成部分时才允许使用句点。(有关背景信息,请参阅 RFC-921“域名系统实施时间表”)。名称中不允许包含空白或空格字符。不区分大小写。 第一个字符必须是字母字符。最后一个字符不能是减号或句点。 充当网关的主机应将“-GATEWAY”或“-GW”作为其名称的一部分。不充当 Internet 网关的主机不应使用“-GATEWAY”和“-GW”作为其名称的一部分。如果 TAC 主机是 DoD 主机,则其主机名的最后部分应为“-TAC”。不允许使用单个字符的名称或昵称。
(我的重点)。
四年后,RFC 1123对此进行了更改:
RFC-952 [DNS:4] 中指定了合法 Internet 主机名的语法。主机名语法的一个方面因此被更改:放宽对第一个字符的限制以允许使用字母或数字。主机软件必须支持这种更自由的语法。
因此,虽然后者在今天是允许的,但并不总是如此,我猜这是一个今天仍然被相当多的人持有的约定,这就是为什么程序员(错误地)强制执行这一点。
IMO 它可以作为错误提交给安装程序。
它可以在现代系统上运行,并且在符合现代 DNS 标准的现代平台上您应该不会看到任何问题。