如何更改计算机名称?

Wol*_*lfy 352 hostname

当我连接到我的服务器(ubuntu 服务器 10.10)时,我得到了这个:

name@server-name.belkin ~>
Run Code Online (Sandbox Code Playgroud)

如何删除“.belkin”?

ric*_*lla 438

您需要在两个文件中编辑计算机名称:

/etc/hostname 
Run Code Online (Sandbox Code Playgroud)

/etc/hosts
Run Code Online (Sandbox Code Playgroud)

这些都需要管理访问权限,所以运行

gksu gedit /path/to/file
Run Code Online (Sandbox Code Playgroud)

用您的新计算机名称替换现有计算机名称的任何实例。完成运行时

sudo service hostname start
Run Code Online (Sandbox Code Playgroud)

如果您重新启动计算机,名称也会更改。

也可以看看:

  • 之后,只需`sudo service hostname restart` 并且主机名已更改而无需重新启动。 (44认同)
  • `sudo hostname new-host-name` 在 ubuntu 13.10 上为我工作 (13认同)
  • 在 14.04 上,我简单地运行了 `sudo hostname`,就成功了。我没有立即注意到任何变化,但是当我打开一个新终端时,我看到我的主机名确实发生了变化。 (9认同)
  • `sudo service hostname restart` 不适用于 AWS 上默认安装的 ubuntu 服务器 14.04。我不得不重新启动整个服务器 (8认同)
  • 在 Ubuntu 14.04 中没有服务“主机名”。我该怎么做才能避免重新启动。 (6认同)
  • 在 15.10 上,`sudo service hostname restart` 失败并显示 `Failed to restart hostname.service: Unit hostname.service is masked。` (2认同)

Cir*_*郝海东 178

hostnamectl set-hostname 在 13.10+ 桌面上

如果您有 systemd(13.10 以后)并且 cloud-init 未处于活动状态(见下文),这是最好的方法:

hostnamectl set-hostname 'new-hostname'
Run Code Online (Sandbox Code Playgroud)

它:

  • 不需要重启
  • 重新启动后仍然存在

更多信息请访问:https : //askubuntu.com/a/516898/52975

18.04 以后:云初始化

18.04 引入了cloud-init,它可以控制主机名的设置,因此hostnamectl如果安装了 cloud-init,它在重新启动后不会发生更改。TODO:如何检查它是否已安装,是默认安装在桌面映像上还是仅安装在服务器上?

如果您希望hostnamectl更改在重启后保留,那么您需要编辑cloud-init 配置文件,禁用 cloud-init 的主机名设置/更新模块

sudo sed -i 's/preserve_hostname: false/preserve_hostname: true/' /etc/cloud/cloud.cfg
Run Code Online (Sandbox Code Playgroud)

或完全禁用 cloud-init:

sudo touch /etc/cloud/cloud-init.disabled
Run Code Online (Sandbox Code Playgroud)

另请参阅:如何在不重新启动的情况下更改主机名?

  • 在 ubuntu 16.04 中完美运行……非常感谢 (7认同)
  • 在 14.04 中不会更改 /etc/hosts (4认同)
  • 在 Ubuntu 15.10 中完美运行 (3认同)
  • 确认在 16.10 中也能正常工作 (2认同)
  • 我不得不将我的新主机名添加到 /etc/hosts 中,否则使用 sudo 会导致一些错误“sudo:无法解析主机 xxxxx” (2认同)
  • 也可以使用 Ubuntu 20 LTS 作为桌面,并且只使用 `sudo hostnamectl set-hostname myNewName`。在新终端和启动(!)后,`myNewName`,没问题。 (2认同)
  • 在 Ubuntu 22.04 中完美运行 (2认同)

Pav*_* G. 70

这很容易:

  1. 编辑/etc/hostname,更改名称,保存文件。

  2. 您还应该在/etc/hosts文件中进行相同的更改

  3. sudo service hostname start

只要您没有依赖于“旧”主机名的应用程序设置,就应该没问题;-)

  • 警告:如果您这样做而没有相应地更改 /etc/hosts,您将无法使用 sudo,因为您的主机名将无法查找 (31认同)
  • 注意:这不适用于 ubuntu 14.x,因为 `hostname` 不再在 `init.d` 中 (2认同)
  • 警告:不适用于默认运行 cloud-init 的 Ubuntu 18+,它在启动时控制主机名。 (2认同)

Joã*_*nto 24

这样做是安全的,您只需要确保同时编辑系统主机名配置文件 (/etc/hostname) 和主机名解析文件 (/etc/hosts)。从终端执行以下操作:

sudo -s
editor /etc/hostname
editor /etc/hosts
shutdown -ry now
Run Code Online (Sandbox Code Playgroud)

  • @Wtower 不适用于 14.04。:( (3认同)
  • 您可以使用 `sudo service hostname restart` 避免关机。 (2认同)

Ima*_*ots 19

除了编辑 /etc/hosts 和 /etc/hostname 之外,各种服务也可能在更改时遇到问题。ubuntu 中默认安装了 Mysql 和 postfix。损坏的 postfix 不会影响大多数 ubuntu 用户,因为它是一个很少使用的后台电子邮件服务器。

后缀:

sudo editor /etc/postfix/main.cf
sudo service postfix restart
Run Code Online (Sandbox Code Playgroud)

mysql 的默认配置不使用主机名,因此它可以按原样正常工作。如果您已经自定义了它,请编辑 /etc/mysql/ 中的文件并重新启动服务。

您可能还想编辑 /etc/motd(今日消息),它显示在虚拟终端和远程登录上。不过那不会伤害任何东西。

您可能已安装但需要修复的其他服务是 apache、bind9 等。在每种情况下,在其配置中查找并编辑主机名,然后重新启动服务。


Ric*_*rri 14

主机名唯一标识本地网络(也可能是互联网上也一样),所以它不是一个好主意,改变它,除非你知道自己在做什么,在你的电脑。

但是你可以改变shell提示不显示.belkin(域名部分):

export PS1='\u@\h \w> '
Run Code Online (Sandbox Code Playgroud)

请参阅bash 手册页,特别是有关提示部分以获取更多信息。


kar*_*k87 14

重命名主机名的另一种更好更安全的方法

安装ailurus

  • 添加 PPA 并更新您的存储库

    sudo add-apt-repository ppa:ailurus && sudo apt-get update

  • 安装ailurus

    sudo apt-get install ailurus

  • 安装后会在应用程序>>系统工具>>Ailurus下找到
    替代文字

  • 安装这么大的软件只是为了改变主机名有点矫枉过正 (38认同)
  • 我同意这是矫枉过正——特别是因为软件在存储库中不可用,但必须从 PPA 安装...... (9认同)
  • 为什么这会得到反对票?应该更好地使用专用工具配置某些东西,而不是在命令行上乱搞并在此过程中破坏事物。 (5认同)

Nem*_*emo 10

使用hostname命令更改您的主机名

sudo hostname newname
Run Code Online (Sandbox Code Playgroud)

但是,这不会编辑您的主机文件,您必须这样做以确保您的计算机能够识别自己

gksudo /etc/hosts
Run Code Online (Sandbox Code Playgroud)

并为您的主机名添加一个指向 127.0.0.1 的新条目

127.0.0.1 oldname newname
Run Code Online (Sandbox Code Playgroud)

您也可以删除旧条目,但我更愿意将其保留在那里。


dku*_*tz2 9

如果您不想使用文本编辑器,Ubuntu Tweak(从他们的网站获取 deb)将它作为您可以使用的小东西之一(以及您可能想要进行的许多其他小调整,但是真的不想玩终端和文件本身)。


Ter*_*ang 7

以下命令即时更改主机名,但要使其永久化,您必须编辑/etc/hostname

echo 'new_hostname' > /proc/sys/kernel/hostname
Run Code Online (Sandbox Code Playgroud)

打开一个新的终端会话,您将立即看到它。

随着systemd到位,做了正确的方法是

hostnamectl set-hostname "new_name"
Run Code Online (Sandbox Code Playgroud)