标签 hostname 下的文章

主机名是人类用来指代特定计算机的标签。

 title=

计算机有网络地址,但人类通常很难记住它们。主机名是帮助人类参考特定计算机的标签。例如,你可能不会导航到 192.168.1.4,而是导航到 linuxlaptoplinuxlaptop.local

地址和名称

所有联网的计算机(也被称为 主机 host )都需要一个地址:一个与之相关的唯一数字,以使数据报文能够在它们之间进行正确的数据通信。这就是所谓的 互联网协议 Internet Protocol (IP)地址。数字 54.204.39.132 是一个 互联网协议第四版 Internet Protocol version 4 (IPv4)地址。较新的 IPv6 地址要长得多,像这样:2001:0db6:3c4d:0017:0000:0000:2a2f:1a2b。 哇!这将是很难记住的!

$ ip addr show

计算机也可以被赋予标签。被称为 主机名 hostname ,这些是友好的名称,便于参考。我可以把我的计算机的主机名设置为 copperhead。只要这个名字在网络上是唯一的,所有其他用户和计算机都可以把 copperhead 作为地址,而不是 IP 地址。

$ hostname -s

你可以更新你的计算机的主机名。

阅读 Seth Kenlon 的文章 如何在 Linux 上更改主机名,了解如何在 Linux 上这样做。

完全限定域名

从技术上讲,主机名包括一个域名。如果我的域名是 mycompany.com,那么我的计算机的主机名是 copperhead.mycompany.com,以句点分隔。这就形成了一个 完全限定域名 fully qualified domain name (FQDN)。这很重要,因为 IP 地址可以解析为 FQDN。

host.domain.topleveldomain

例如:www.example.com 是一个完全限定域名。

你的域名一般已经确定了,所以你只负责提供主机部分。本文的重点是主机。

名称解析

将 IP 地址转换为相应的主机名的过程被称为名称解析。这个过程首先发生在本地主机表中。Linux 使用文件 /etc/hosts 来存储这个表。

cat /etc/hosts

还有一个分层的、去中心化的基于网络的系统提供解析,称为 域名系统 Domain Name System (DNS)。这时 FQDN 变得非常重要。

$ dig www.opensource.com

名称的乐趣

为我们的计算机起名字可能很有趣。如果你有很多,你可以使用一个主题。我曾经为一家公司工作,该公司将所有的服务器都以蛇命名。

后来我工作的一家公司,我是一个数据中心经理,使用啤酒品牌。当我们收到一个新的服务器时,这很令人兴奋,因为我会给开发团队发邮件征求建议。我们大约有 100 台服务器。这些提供了一个有趣的清单,反映了公司的多样性。我们有从库尔斯和百威到阿姆斯特尔和浅粉象的一切。我们有虎牌啤酒、胜狮啤酒和札幌啤酒等等!

我们认为这很酷!然后,想象一下,当你试图记住卢云堡是拥有最多内存的虚拟化服务器,佩罗尼是 SQL 数据库服务器,喜力是新的域控制器时,会发生什么,特别是对于一个快速发展的公司的新员工。

惯例

当然,主机名是所有者的选择,所以请尽情发挥。然而,根据环境的不同,使用容易记忆的名字或基于命名惯例的名字可能更有意义,因为这些名字有利于描述主机。

有用的名字

如果你想放弃有趣的东西,并对你的系统进行有益的命名,也许可以考虑它们的功能。数据库服务器可以被命名为 database1database2database3 等等。Web 服务器可以命名为 webserver1webserver2 等等。

位置名称

我在许多客户那里使用了一种技术,用一组字符的位置来命名服务器主机,这些字符描述了该系统的一个方面,有助于识别。例如,如果我正在为内政部(DOI)开发一个业务流程管理(BPM)系统,我就会在命名规则中加入他们的缩写词。

此外,就像许多大型企业、金融机构和政府一样,他们可能有不同的数据中心,位于不同的地理位置,以达到性能或灾难恢复的目的。因此,比如说,位于北美大陆东海岸的数据中心被称为 ED(East Data center),而位于西海岸的数据中心则是 WD(West Data center)。

所有这些信息将汇集到一个名称中,如 doibpm1eddoibpm1wd。因此,虽然这些名字看起来不长,但在这个项目上工作的人可以很容易地识别它们的目的和位置,而且这个名字甚至可以对潜在的恶意者混淆它们的用途。换句话说,业主可以选择只对内部人员有意义的命名方式

互联网标准

有几个标准管理着主机名。你可以在 互联网工程任务组 Internet Engineering Task Force (IETF)维护的 意见征求 Requests for Comment (RFC)中找到这些标准。由此,请遵守以下规定:

  • 主机名的长度应该在 1 到 63 个 ASCII 字符之间
  • 一个 FQDN 的最大长度为 253 个 ASCII 字符
  • 不区分大小写
  • 允许的字符:az09-(连字符),和 _(下划线)。

我希望这篇文章能帮助你澄清主机名。玩得开心,发挥创意。


via: https://opensource.com/article/21/10/what-hostname

作者:Alan Formy-Duval 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

昨天我们已经在我们的网站中写过如何在 Linux 中修改主机名的文章。今天,我们将向你展示使用不同的方法来修改主机名。你可以从中选取最适合你的方法。

使用 systemd 的系统自带一个名为 hostnamectl 的好用工具,它可以使我们能够轻易地管理系统的主机名。

当你使用这个原生命令时,它可以立刻改变主机名而无需重启来生效。

但假如你通过手动修改某个配置文件来更改主机名,那么就可能需要经过重启来生效。

在这篇文章中,我们将展示在使用 systemd 的系统中改变主机名的 4 种方法。

hostnamectl 命令允许在 Linux 中设置三类主机名,它们的细节如下:

  • 静态: 这是静态主机名,由系统管理员添加。
  • 瞬时/动态: 这个由 DHCP 或者 DNS 服务器在运行时赋予。
  • 易读形式: 它可以由系统管理员赋予。这个是自由形式的主机名,以一种易读形式来表示服务器,例如 “JBOSS UAT Server” 这样的名字。

这些都可以使用下面 4 种方法来设置。

  • hostnamectl 命令:控制系统主机名。
  • nmcli 命令:是一个控制 NetworkManager 的命令行工具。
  • nmtui 命令:是一个控制 NetworkManager 的文本用户界面。
  • /etc/hostname 文件:这个文件中包含系统的静态主机名。

方法 1:在 Linux 中使用 hostnamectl 来改变主机名

hostnamectl 可被用来查询和改变系统的主机名,以及相关设定。只需运行 hostnamectl 便可以查看系统的主机名了。

$ hostnamectl

或者使用下面的命令:

$ hostnamectl status
   Static hostname: daygeek-Y700
         Icon name: computer-laptop
           Chassis: laptop
        Machine ID: 31bdeb7b83230a2025d43547368d75bc
           Boot ID: 267f264c448f000ea5aed47263c6de7f
  Operating System: Manjaro Linux
            Kernel: Linux 4.19.20-1-MANJARO
      Architecture: x86-64

假如你想改变主机名,可以使用下面的命令格式:

语法格式:

$ hostnamectl set-hostname [YOUR NEW HOSTNAME]

使用下面的命令来使用 hostnamectl 更改主机名。在这个例子中,我将把主机名从 daygeek-Y700 改为 magi-laptop

$ hostnamectl set-hostname magi-laptop

你可以使用下面的命令来查看更新后的主机名。

$ hostnamectl
   Static hostname: magi-laptop
         Icon name: computer-laptop
           Chassis: laptop
        Machine ID: 31bdeb7b83230a2025d43547368d75bc
           Boot ID: 267f264c448f000ea5aed47263c6de7f
  Operating System: Manjaro Linux
            Kernel: Linux 4.19.20-1-MANJARO
      Architecture: x86-64

方法 2:在 Linux 中使用 nmcli 命令来更改主机名

nmcli 是一个命令行工具,旨在控制 NetworkManager 并报告网络状态。

nmcli 被用来创建、展示、编辑、删除、激活和注销网络连接,同时还可以用来控制和展示网络设备的状态。另外,它也允许我们更改主机名。

使用下面的命令来利用 nmcli 查看当前的主机名。

$ nmcli general hostname
daygeek-Y700

语法格式:

$ nmcli general hostname [YOUR NEW HOSTNAME]

使用下面的命令来借助 nmcli 命令可以更改主机名。在这个例子中,我将把主机名从 daygeek-Y700 变成 magi-laptop

$ nmcli general hostname magi-laptop

它可以在不重启下设备的情况下生效,但为了安全目的,只需要重启 systemd-hostnamed 服务来使得更改生效。

$ sudo systemctl restart systemd-hostnamed

再次运行相同的 nmcli 命令来检查更改后的主机名。

$ nmcli general hostname
magi-laptop

方法 3:在 Linux 中使用 nmtui 来更改主机名

nmtui 是一个基于 curses 库的 TUI 应用,被用来和 NetworkManager 交互。当启动 nmtui 后,如果没有指定 nmtui 的第一个命令行参数,它将提醒用户选择执行某项活动。

在终端中运行下面的命令来开启文本用户界面。

$ nmtui

使用向下箭头按键来选择 “Set system hostname” 这个选项,然后敲击回车键。

下面的截图展示的是原来的主机名。

我们需要做的就是删除原来的主机名,再输入新的主机名,然后选中 “OK” 敲击回车确认就可以了。

然后它将在屏幕中向你展示更新后的主机名,再次选中 “OK” 敲击回车确认就完成更改了。

最后,选中 “Quit” 按钮来从 nmtui 终端界面离开。

它可以在不重启设备的情况下生效,但为了安全目的,需要重启 systemd-hostnamed 服务来使得更改生效。

$ sudo systemctl restart systemd-hostnamed

你可以运行下面的命令来查看更新后的主机名。

$ hostnamectl
   Static hostname: daygeek-Y700
         Icon name: computer-laptop
           Chassis: laptop
        Machine ID: 31bdeb7b83230a2025d43547368d75bc
           Boot ID: 267f264c448f000ea5aed47263c6de7f
  Operating System: Manjaro Linux
            Kernel: Linux 4.19.20-1-MANJARO
      Architecture: x86-64

方法 4:在 Linux 中使用 /etc/hostname 来更改主机名

除了上面的方法外,我们还可以通过修改 /etc/hostname 文件来达到修改主机名的目的。但这个方法需要服务器重启才能生效。

使用下面的命令来检查 /etc/hostname 文件以查看当前的主机名:

$ cat /etc/hostname
daygeek-Y700

要改变主机名,只需覆写这个文件就行了,因为这个文件只包含主机名这一项内容。

$ sudo echo "magi-daygeek" > /etc/hostname

$ cat /etc/hostname
magi-daygeek

然后使用下面的命令重启系统:

$ sudo init 6

最后查看 /etc/hostname 文件的内容来验证主机名是否被更改了。

$ cat /etc/hostname
magi-daygeek

via: https://www.2daygeek.com/four-methods-to-change-the-hostname-in-linux/

作者:Magesh Maruthamuthu 选题:lujun9972 译者:FSSlc 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

问题:在CentOS/RHEL 7上修改主机名的正确方法是什么(永久或临时)?

在CentOS或RHEL中,有三种定义的主机名:a、静态的(static),b、瞬态的(transient),以及 c、灵活的(pretty)。“静态”主机名也称为内核主机名,是系统在启动时从/etc/hostname自动初始化的主机名。“瞬态”主机名是在系统运行时临时分配的主机名,例如,通过DHCP或mDNS服务器分配。静态主机名和瞬态主机名都遵从作为互联网域名同样的字符限制规则。而另一方面,“灵活”主机名则允许使用自由形式(包括特殊/空白字符)的主机名,以展示给终端用户(如Dan's Computer)。

在CentOS/RHEL 7中,有个叫hostnamectl的命令行工具,它允许你查看或修改与主机名相关的配置。

要查看主机名相关的设置:

$ hostnamectl status 

只查看静态、瞬态或灵活主机名,分别使用“--static”,“--transient”或“--pretty”选项。

 $ hostnamectl status [--static|--transient|--pretty] 

要同时修改所有三个主机名:静态、瞬态和灵活主机名:

$ sudo hostnamectl set-hostname <host-name> 

就像上面展示的那样,在修改静态/瞬态主机名时,任何特殊字符或空白字符会被移除,而提供的参数中的任何大写字母会自动转化为小写。一旦修改了静态主机名,/etc/hostname 将被自动更新。然而,/etc/hosts 不会更新以保存所做的修改,所以你需要手动更新/etc/hosts。

如果你只想修改特定的主机名(静态,瞬态或灵活),你可以使用“--static”,“--transient”或“--pretty”选项。

例如,要永久修改主机名,你可以修改静态主机名:

 $ sudo hostnamectl --static set-hostname <host-name> 

注意,你不必重启机器以激活永久主机名修改。上面的命令会立即修改内核主机名。注销并重新登入后在命令行提示来观察新的静态主机名。


via: http://ask.xmodulo.com/change-hostname-centos-rhel-7.html

译者:GOLinux 校对:Caroline

本文由 LCTT 原创翻译,Linux中国 荣誉推出