如何更改计算机名称?


327

当我连接到服务器(ubuntu服务器10.10)时,得到以下信息:

name@server-name.belkin ~>

如何删除“ .belkin”?


1
尝试编辑/ etc /主机。gksudo gedit / etc / hosts并用您想要的任何名称替换server-name.belkin。
LFC_fan

2
您是否要更改实际的服务器名称,或仅更改其在提示中的显示方式?
戴夫·詹宁斯

2
投票重新打开,因为这是一个超集(允许重新启动)。
Ciro Santilli新疆改造中心法轮功六四事件

这个问题如何在一年后被问到的情况下结束
沃伦

@warren当前的共识是通过“质量”结束:meta.stackexchange.com/questions/147643/…由于“质量”是不可衡量的,所以我只是赞成。;-)可能归结为哪个问题在标题上击中了最佳的新手Google关键字。
Ciro Santilli新疆改造中心法轮功六四事件

Answers:


420

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

/etc/hostname 

/etc/hosts

这些都需要管理权限,因此运行

gksu gedit /path/to/file

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

sudo service hostname start

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

也可以看看:


43
之后,只需sudo service hostname restart更改主机名即可,无需重启。
Anthony O.

6
在Ubuntu 14.04中,没有服务“主机名”。我该怎么办以避免重启。
Arpad Horvath 2014年

8
sudo service hostname restart在AWS上默认安装ubuntu服务器14.04时不起作用。我不得不完全重启服务器
gerrytan

9
在14.04,我只是跑了sudo hostname,就成功了。我没有发现任何立即更改,但是当我打开一个新终端时,我看到我的主机名确实发生了更改。
TSJNachos117

8
sudo hostname new-host-name在ubuntu 13.10上为我工作
Lekhnath

153

hostnamectl set-hostname 在13.10+桌面上

如果您具有systemd(从13.10开始)并且cloud-init未激活(请参见下文),则这是最佳方法:

hostnamectl set-hostname 'new-hostname'

它:

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

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

18.04起:cloud-init

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

或完全禁用cloud-init:

sudo touch /etc/cloud/cloud-init.disabled

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


3
可以在Ubuntu 15.10中完美运行
-AB的

4
在14.04中不会更改/ etc / hosts
Autodidact

7
非常
适合

2
确认也可以在16.10中正常工作
Fuzzygroup '16

2
我必须将新主机名添加到/ etc / hosts中,否则使用sudo会引起一些错误“ sudo:无法解析主机xxxxx”
WoodyDRN

70

这很容易:

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

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

  3. sudo service hostname start

只要您没有根据“旧”主机名设置的应用程序,就可以了;-)


31
警告:如果你这样做不改变/ etc / hosts文件因此您将无法使用sudo,因为您的主机将无法查找
若奥·平托

您对编辑/ etc / hosts是正确的,我忘记了它(只是将它添加到我的答案中),尽管sudo似乎对我来说可以正常工作而不更改它(我已经重新启动机器,它仍然可以工作)
Pavlos G.10年

1
没关系,您可以这样做,就像hostname现在由管理的服务一样upstart。它将做完全相同的事情,重新启动服务。
Pavlos G.

2
注意:这不会对Ubuntu 14.x工作,因为hostname不再是init.d
Rápli安德拉什

2
警告:在默认情况下运行cloud-init(在启动时控制主机名)的Ubuntu 18+上无法使用。
nslntmnx

24

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

sudo -s
editor /etc/hostname
editor /etc/hosts
shutdown -ry now

2
您可以使用避免关机sudo service hostname restart
Wtower

3
@Wtower不适用于14.04。:(
dotlash

警告:在默认情况下运行cloud-init(在启动时控制主机名)的Ubuntu 18+上无法使用。
nslntmnx

18

除了编辑/ etc / hosts和/ etc / hostname之外,各种服务也可能存在更改方面的问题。默认情况下,mysql和postfix安装在ubuntu中。损坏的后缀不会影响大多数ubuntu用户,因为它是后台电子邮件服务器,使用率不高。

后缀:

sudo editor /etc/postfix/main.cf
sudo service postfix restart

mysql的默认配置不使用主机名,因此可以按原样正常工作。如果已对其进行了定制,请在/ etc / mysql /中编辑文件,然后重新启动服务。

您可能还需要编辑/ etc / motd(当天的消息),该消息显示在虚拟终端和远程登录名上。那个人不会有任何伤害。

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


14

主机名唯一标识本地网络(也可能是互联网以及上)在您的计算机,因此除非你知道自己在做什么,它不是去改变它是一个好主意。

但是您可以更改外壳程序提示符,使其不显示.belkin(域名部分):

export PS1='\u@\h \w> '

请参见bash手册页,尤其是提示部分,以获取更多信息。


14

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

安装ailurus

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

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

  • 安装ailurus

    sudo apt-get install ailurus

  • 安装后,可以在“ 应用程序>>系统工具>> Ailurus”下找到
    替代文字

5
为什么会得到否定票?与使用专用工具配置某些东西相比,在命令行上搞乱并且破坏过程中的东西应该更好。
endolith 2011年

38
安装这么大的软件只是为了更改主机名有点过大了
Nemo11'7

9
我同意这太过分了-特别是因为该软件在存储库中不可用,但必须从PPA安装...
Marcel Stimberg 2011年

@ karthick87也许在您的答案中提到这是一个很大的软件(带有其他配置选项)?-我个人同意e​​ndolith的观点,即具有单个简单更改点的工具比许多命令行操作要好(我使用Ubuntu Tweak,目前也可以从PPA获得)
david.libremone 2011年

我认为您可以使用此工具(而不是简单地在几个文件中替换一个单词)来破坏更多的事情(并且更容易)。它向您暴露了太多的事情。
gerlos

9

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


出于好奇,是否有任何特定原因导致Ubuntu Tweak不在软件存储库中?
奥利维尔·拉隆德

他们从来没有去添加它/没有被接受。您可以在开始调整后立即通过终端/仓库列表将其仓库添加到列表中。
dkuntz2 2010年

您还可以添加的Ubuntu调整为PPA sudo add-apt-repository ppa:tualatrix/ppa然后sudo apt-get updatesudo apt-get install ubuntu-tweak
david.libremone

1
请注意,自
〜13.04

9

使用hostname命令更改主机名

sudo hostname newname

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

gksudo /etc/hosts

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

127.0.0.1 oldname newname

您也可以删除旧条目,但是我更喜欢保留它。


7

以下命令可以随时更改主机名,但要使其永久不变,您必须进行编辑/etc/hostname

echo 'new_hostname' > /proc/sys/kernel/hostname

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

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

hostnamectl set-hostname "new_name"

4

如果要使用GUI辅助进程,请安装Ubuntu-Tweak。此应用程序的其他用途是通过“计算机详细信息”->“主机名”标签更改计算机名称的功能。


3

SystemSettings->详细信息-> Overwiev(在U16.04中默认打开)-设备名称。

但此外,您必须在/ etc / hosts中更改名称。Ubuntu BUG()?


我认为这是更改主机名的一种不错的方法。
颚theshark

2

打开一个终端,然后

sudo sed -i '1s/.*/desired-name/g' /etc/hostname

# you need restart to effect with...

sudo shutdown -r 0

警告:在默认情况下运行cloud-init(在启动时控制主机名)的Ubuntu 18+上无法使用。
nslntmnx
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.