Имя компьютера или по-другому, имя хоста устанавливается во время установки системы. Оно используется для идентификации компьютера в локальной сети, например, передается службой NetBIOS как имя сервера Samba, а также вы будете постоянно видеть его в терминале перед приглашением ввода команды.
Если вы задали не такое имя как хотите во время установки, то изменить имя компьютера Ubuntu не так уж сложно, но графических инструментов для этого в системе придумано не было, поэтому придется делать все через терминал.
Требования к имени компьютера
Вы можете использовать практически любое имя компьютера, но для него есть некоторые ограничения. Не желательно использовать два одинаковых имени компьютера в одной локальной сети, иначе могут возникнуть проблемы с различными интернет-сервисами и самая очевидная — вы не сможете понять где какой компьютер.
Второе ограничение — имя компьютера может содержать только буквы английского алфавита от a до z, цифры от 0 до 9, а также символы дефиса и точки. Начинаться и заканчиваться имя должно только буквой или цифрой, а не символом подчеркивания. Имя хоста регистронезависимо, поэтому COMPUTER и computer будут означать одно и то же. По длине стоит ограничение от 2 до 69 символов, но этого вполне достаточно.
Как изменить имя компьютера
Посмотреть текущее имя компьютера можно выполнив команду hostnamectl без параметров:
hostnamectl
Изменить имя хоста Ubuntu можно несколькими способами. Самый простой способ установить имя компьютера, которое сохранится только до перезагрузки можно использовать команду hostname, которой в параметре нужно передать новое имя. Например:
sudo hostname losst-pc
Но после перезагрузки все вернется как было раньше. Чтобы сделать изменения постоянными нужно изменить содержимое двух файлов. /etc/hostname и /etc/hosts:
sudo vi /etc/hostname
Удалите старое имя из этого файла и пропишите новое. Затем сохраните изменения.
В современных версиях Ubuntu вы можете использовать команду hostnamectl, в отличие от первого варианта изменения сохранятся после перезагрузки:
sudo hostnamectl set-hostname новое_имя
Затем откройте второй файл:
sudo vi /etc/hosts
Здесь немного сложнее, найдите строку:
127.0.0.1 старое_имя
И замените старое имя на новое, после этого необходимо перезагрузить компьютер. Если вы не хотите перезагружать систему, то вы можете просто перезагрузить сервис управления входом пользователей:
systemctl restart systemd-logind.service
Теперь все должно работать правильно. Но это не единственный способ сменить имя хоста в Ubuntu.
Не меняется имя компьютера
Если вы поменяли имя компьютера, а после перезагрузки восстанавливается все как было, например, какое-то там dhcpcd0-pc, то, скорее всего, виноват NetworkManager. Здесь решение либо удалить эту программу, либо изменить имя хоста Ubuntu с помощью NetworkManager. Для этого выполните:
sudo vi /etc/NetworkManager/NetworkManager.conf
И добавьте в файл такие строки:
[keyfile]
hostname=имя_компьютера
Теперь после перезагрузки NetworkManager поменяет имя хоста Ubuntu на правильное и больше проблем с этим не будет.
Выводы
Вот и все, теперь вы знаете как сменить имя компьютера Ubuntu. Для этого есть вполне достаточно способов, чтобы вы могли выбрать именно то, что нужно. Если у вас остались вопросы, спрашивайте в комментариях!
Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна .
Об авторе
Основатель и администратор сайта losst.ru, увлекаюсь открытым программным обеспечением и операционной системой Linux. В качестве основной ОС сейчас использую Ubuntu. Кроме Linux, интересуюсь всем, что связано с информационными технологиями и современной наукой.
Contents
- Introduction
- Requirements
-
Basics
- Setting/changing the hostname
- Finding your network interface
- Disable network managers and/or wicd
- Configuring an interface
- Setting up a second IP address or Virtual IP address
- Howto set MTU for a connection
- Setting up DNS
-
Wireless
- ndiswrapper
- Configure your wireless interface
- WPA supplicant
-
Configure laptops for multiple locations
- Map your physical interfaces to logical interfaces
- Define tests to select networks
- Result
- Bonus script
-
See also
- Ubuntu resources
- External resources
Introduction
You can configure a network interface from the command line. You can configure your network client hosts with the command line by using commands to change your current settings or by editing a number of system files. This has several advantages over network managers in the GUI.
This guide had been developed for Ubuntu and Debian, other distributions can use a similar setup, but be aware that file locations may differ.
Requirements
An editor. This guide will use vi, but you can replace it with any other editor of your liking, gedit, nano, gvim, pico, emacs..
Have a working internet connection during the installation. We need to install packages and those are fetched from the online repositories.
Backup any files we touch. Just easier to recover when you have a backup.
Read this guide in full before actually configuring your network.
Basics
Setting/changing the hostname
The hostname command allows you to directly query, or set, the hostname from the command line.
You can see your current hostname by running hostname. To set the hostname directly you can run hostname newname as root. If you do this however, make sure you change the /etc/hosts file first. This is needed because otherwise you will need to boot into single user mode and change your hostname in /etc/hosts. This is because sudo requires DNS lookups in certain cases and it cannot resolve your newly set hostname.. To circumvent this you need to add the new name to the hosts file prior to setting the hostname and remove it once that action has succeeded.
sudo vi /etc/hosts
127.0.1.1 ubuntu newname
Set the hostname to newname.
sudo hostname newname # or echo newname | sudo tee /etc/hostname
Now you can remove the old hostname
sudo vi /etc/hosts
127.0.1.1 newname
When your system boots it will automatically read the hostname from the file /etc/hostname. You can add hostname and IP addresses to the file /etc/hosts for static lookups.
Finding your network interface
When setting up your network you will need to know the network interface cards on your computer. The interface name of cards for different vendors may be different, which is why this step is needed.
ls /sys/class/net # or ip addr
This will list the interface names for all NICs on your computer. It will probably include eth0 (hardwired NIC), lo (loopback interface for the localhost), and something for your wireless card (like wifi0, or wlan0).
Disable network managers and/or wicd
Configuring your network via the CLI will likely interfere with Network Manager or wicd. To counter this, disable the startup script of either application or completely remove the packages. Be aware that the rest of this guide will require packages which need to be installed from the online repositories.
## Network manager # Stop the current process sudo /etc/init.d/NetworkManager stop # Start: sudo /etc/init.d/NetworkManager start # The inofficial way: sudo chmod -x /etc/init.d/NetworkManager # Reverse: sudo chmod +x /etc/init.d/NetworkManager # The official way: sudo update-rc.d -f NetworkManager remove # Reverse: sudo update-rc.d -f NetworkManager defaults 50 # Or remove the network manager package. sudo aptitude purge network-manager # Reverse: sudo aptitude install network-manager ## wicd # Stop the current process sudo /etc/init.d/wicd stop # Start: sudo /etc/init.d/wicd start # The inofficial way: sudo chmod -x /etc/init.d/wicd # Reverse: sudo chmod +x /etc/init.d/wicd # The official way: sudo update-rc.d -f wicd remove # Reverse: sudo update-rc.d -f wicd defaults 20 # Or remove the wicd package. sudo aptitude purge network-manager # Reverse: sudo aptitude install network-manager
Note: At some point Ubuntu started using upstart instead of the /sbin/init/ daemon. Thus if the first command above does not stop Network Manager, try this.
sudo stop network-manager
Configuring an interface
- Word of wisdom
-
We will use eth0 in this example, your interface can be named differently, see Finding your network interface.
If you have disabled the either wicd or the network manager you probably don’t have a network connection anymore. Connect via a regular UTP cable to your router, and assuming you have DHCP enabled do the following:
sudo ip link set dev eth0 down sudo dhclient eth0
This will bring your eth0 up by using DHCP. Your network is now configured (for the time being).
If you don’t have DHCP enabled configure your network by issueing the commands below, the gateway address is the IP address of your router. And your IP should be in the same range as the router is.
sudo ip addr add 192.168.1.14/24 dev eth0 sudo ip link set dev eth0 up sudo ip route add default via 192.168.1.1
These commands configure your interface but these changes will not survive a reboot, since the information is not stored anyhwere. This is where the interfaces file comes in handy. To configure a interface permanently you’ll need to edit the interfaces file, /etc/network/interfaces.
sudo vi /etc/network/interfaces
## To configure a dynamic IP address auto eth0 iface eth0 inet dhcp ## Or configure a static IP auto eth0 iface eth0 inet static address 192.168.1.14 gateway 192.168.1.1 netmask 255.255.255.0 network 192.168.1.0 broadcast 192.168.1.255
For these settings to take effect you need to restart your networking services.
sudo /etc/init.d/networking restart
Setting up a second IP address or Virtual IP address
If you need to set up a second ip address you need to edit the /etc/network/interfaces.
sudo vi /etc/network/interfaces
auto eth0:1 iface eth0:1 inet static address 192.168.1.24 netmask 255.255.255.0 network 192.168.1.1 broadcast 192.168.1.255 gateway 192.168.1.1
For these new settings to take effect you need to restart networking services using the following command
sudo /etc/init.d/networking restart
Howto set MTU for a connection
You can set the MTU for an interface, you could do this by using the mtu keyword in the interface file or by using the ip link command.
iface eth0 inet dhcp # via mtu keyword mtu 1492 # Via ip link command pre-up /sbin/ip link set $IFACE mtu 1492
The above example sets the MTU for device eth0 to 1492, the usual MTU for a PPPoE ISP connection. This however is only needed if connections seem to hang otherwise (with the default of 1500).
This tip was found on http://glasnost.beeznest.org/articles/290.
Setting up DNS
To cause your machine to consult with a particular server for name lookups you simply add their addresses to /etc/resolv.conf.
For example a machine which should perform lookups from the DNS server at IP address 192.168.1.1 would have a resolv.conf file looking like this
sudo vi /etc/resolv.conf
enter the following details
search example.com domain example.com nameserver 192.168.1.1
Wireless
We will not use un-encrypted wireless connections, but will make use of WEP/WPA/WPA2. Deviations from security/encryption method is an exercise left for the user. We also assume the network SSID is being broadcast.
Enabling wireless networking on your PC is pretty straight forward. If your network card is supported out of the box, then there are very little issues. If your card is not supported out of the box, you may need to use ndiswrapper, which will require the Windows drivers fo your card.
ndiswrapper
* Install a Windows driver with ndiswrapper for Dapper or ndiswrapper for 8.04 and up
# Ubuntu 6.06 (Dapper) and earlier sudo aptitude install ndiswrapper-utils # Ubuntu 8.04 and up (Hardy/Intrepid/Jaunty/Karmic) sudo aptitude install ndiswrapper-utils-1.9 # All versions sudo ndiswrapper -i /path/to/windows/driver.inf sudo ndiswrapper -m
- More information about ndiswrapper
-
https://help.ubuntu.com/community/WifiDocs/Driver/Ndiswrapper
ndiswrapper --help man ndiswrapper
Configure your wireless interface
In the examples I will use wlan0 as your wireless card, this could be different on your machine! I will do the examples with a dynamic IP address (DHCP), the same principles applies to staticly configured IP’s.
Open the interfaces file
sudo vi /etc/network/interfaces
auto wlan0 iface wlan0 inet dhcp pre-up /etc/init.d/wpa.sh start post-down /etc/init.d/wpa.sh stop
The pre-up command is run before the interface goes up. The post-down command is run after the interface goes down. There are also post-up and pre-down commands. E.g. You could use post-up to mount disks after an interface goes up. In this case we start wpa_supplicant before we enable the interface and we stop wpa_supplicant after we bring the interface down.
WPA supplicant
- Before you start
-
Before proceeding any further, it might be worthwhile to check whether your Wi-Fi Card is supported. Please see the wpa_supplicant website for more details. This will save you lots of time and frustration.
Install wpa_supplicant
sudo aptitude install wpasupplicant
Creating the password
You probably have given your wireless network a name (the ESSID or SSID), in this example we will use ubuntuwifi for our wireless network, our password will be OpenSesame. The SSID and password needs to be configured on your wireless router, how to do that is up to the reader. If you have problems coming up with a password, please have a look here.
If you are using WEP encryption (which is not advised) you may skip this step.
$ wpa_passphrase ubuntuwifi OpenSesame
network={ ssid="ubuntuwifi" #psk="OpenSesame" psk=24f87a7583001eb7cea2394bbdb04eb2d3641f0b907dd31bd286be628c1841f8 }
Adding your network
Open the /etc/wpa_supplicant file and define your network.
sudo vi /etc/wpa_supplicant.conf
# # Please see /usr/share/doc/wpasupplicant/wpa_supplicant.conf.gz # for more complete configuration parameters. # ctrl_interface=/var/run/wpa_supplicant ctrl_interface_group=0 eapol_version=2 ap_scan=1 fast_reauth=1 country=NL ### Associate with any open access point ### Scans/ESSID changes can be done with wpa_cli network={ ssid="" key_mgmt=NONE priority=1 } # WEP network={ ssid="ubuntuwifi" scan_ssid=1 key_mgmt=NONE wep_key0="OpenSesame" wep_key1="OpenOtherSesame" # Use the correct key.. wep_tx_keyidx=0 priority=5 } # WPA/WPA2 network={ ssid="ubuntuwifi" scan_ssid=1 psk=24f87a7583001eb7cea2394bbdb04eb2d3641f0b907dd31bd286be628c1841f8 priority=5 ## The configuration items listed below do not need to be set, the defaults are ## pretty 'let us do it for you'. ## See /usr/share/doc/wpasupplicant/wpa_supplicant.conf.gz for more information. # key_mgmt=WPA-PSK # proto=WPA RSN # pairwise=CCMP TKIP # group=CCMP TKIP }
Please beware, if you use WPA, remove the WEP section and vice versa.
The priority in this file determines to which network you will connect if more then 2 configured networks are available. This will always be the network with the highest priority.
WPA start script
Create the WPA startup script /etc/init.d/wpa.sh
sudo vi /etc/init.d/wpa.sh
#!/bin/bash ### BEGIN INIT INFO # Provides: wpa # Required-Start: $network $syslog $local_fs # Required-Stop: $network $syslog $local_fs # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Start/stop script for wpa supplicant # Description: Custom start/stop script for wpa_supplicant. ### END INIT INFO SELF=`basename $0` WPA=wpa_supplicant PROGRAM=/sbin/${WPA} CONF=/etc/${WPA}.conf INTERFACE=wlan0 DRIVER=wext DAEMONMODE="-B" LOGFILE=/var/log/$WPA.log function start() { # TODO: Support multiple interfaces and drivers OPTIONS="-c $CONF -i $INTERFACE -D $DRIVER $DAEMONMODE" ## You can remove this if you are running 8.10 and up. # Ubuntu 8.10 and up doesn't need the -w anymore.. # And the logfile option is not valid on 8.04 and lower local ver=$(lsb_release -sr | sed -e 's/.//g'); [ $ver -lt 810 ] && OPTIONS="$OPTIONS -w" && LOGFILE="" ## # Log to a file [ -n "$LOGFILE" ] && OPTIONS="$OPTIONS -f $LOGFILE" echo " * Starting wpa supplicant" eval $PROGRAM $OPTIONS } function stop() { echo " * Stopping wpa supplicant" wpa_cli -i $INTERFACE terminate #pkill $PROGRAM ## alternative method } function debug() { stop DAEMONMODE="-ddd" start } function restart() { stop start } function status() { pgrep -lf $PROGRAM } function usage() { echo "Usage: $SELF <start|stop|status|debug>" return 2 } case $1 in start|stop|debug|restart|status) $1 ;; *) usage ;; esac
Make the start script executable.
sudo chmod +x /etc/init.d/wpa.sh
You can now start WPA supplicant as a service or in debugging mode:
# Service /etc/init.d/wpa.sh start # Debugging /etc/init.d/wpa.sh debug
Make sure the script gets run on boot and stopped at shutdown
sudo update-rc.d wpa.sh defaults
With wpa_cli you can make changes to your wpa_supplicant config file and reload these changes:
sudo wpa_cli
Enter help to see what you can do with wpa_cli. Some of the options are: reconfigure, disconnect, reconnect, reassociate. These options speak for themself.
For more information about wpa_supplicant, please have a look at their respective manpages:
man wpa_supplicant man wpa_supplicant.conf man wpa_cli man wpa_gui # Only when you have installed the wpagui package gzip -dc /usr/share/doc/wpasupplicant/wpa_supplicant.conf.gz | less
Now that you have setup everything, you can try to connect to your network by restarting networking
sudo /etc/init.d/networking restart
You could also reboot your machine if you prefer that.
Configure laptops for multiple locations
When you have a laptop you don’t want to configure it to only be able to have a internet connection at only one location. You probably go to work and use a wired connection, you goto to coffeeshop and use the wifi hotspot overthere and at home you have another network configuration. That is exactly what we are going to configure now.
Guessnet, ifplugd and wpa_supplicant
Install guessnet and ifplugd
sudo aptitude install guessnet ifplugd
Configure ifplugd. Define which interfaces need to be hotplug and adjust the arguments. You should remove the -q.
sudo vi /etc/default/ifplugd
# Just an example INTERFACES="eth0 wlan0" #ARGS="-q -f -u0 -d10 -w -I" ARGS="-f -u0 -d10 -w -I" # Override ARGS for a particular interface # This is for an Intel Corporation PRO/Wireless 3945ABG [Golan] Network Connection (rev 02) ARGS_wlan0="-F -u0 -d10 -w -I" SUSPEND_ACTION=stop
Some cards do not really play well with the defaults of Ubuntu, adjust where needed.
- More information for ifplugd
-
See ifplugd for more information. And their respective man pages
man ifplugd man ifplugd.conf
You will need the wpa.sh script mentioned earlier in this guide and you will need to make sure it will be started and stopped:
# Start wpa_supplicant at boot sudo ln -s /etc/init.d/wpa.sh /etc/rc2.d/S19wpa sudo ln -s /etc/init.d/wpa.sh /etc/rc3.d/S19wpa # Kill wpa_supplicant at shutdown sudo ln -s /etc/init.d/wpa.sh /etc/rc5.d/K21wpa sudo ln -s /etc/init.d/wpa.sh /etc/rc6.d/K21wpa
Map your physical interfaces to logical interfaces
First, we are going to make a mapping for eth0 and wlan0 and said which mapped interface could be used for each physical interface:
mapping eth0 # Tell ifupdown to use guessnet to determine which network we can use script guessnet-ifupdown # Default location map default: missing-cable # How verbose we are map verbose: false map debug: false # Our different networks, order decides which network is picked # if two or more networks are available at the same time. map officelan homelan aruba missing-cable mapping wlan0 script guessnet-ifupdown map default: missing-cable map verbose: false map debug: false map workwifi homewifi wifi-open missing-cable
Normally ifupdown configures the interfaces, but now we’ve told it to use guessnet to determine the network being used.
Define tests to select networks
As you will see with the officelan, homelan and aruba examples below we will execute tests to see wheter a peer is present based on the MAC address. The simplest solution for this is to check whether your gateway is present. You can find out the MAC address of your gateway by running the ip neigh command. You need to be connected with your network for this.
$ ip neigh 192.168.1.254 dev eth0 lladdr 00:24:17:47:xx:xx
This my default gateway, has IP address 192.168.1.254 and 00:24:17:47:xx:xx as a MAC address. This gives us the needed information to define the test.
test peer address 192.168.1.254 mac 00:24:17:47:xx:xx source 192.168.1.14
You don’t need to specify the source IP address, but in certain cases this is required. I always add it so I don’t have to worry about it in case I do need it.
So let’s define our fixed networks using the peer tests:
# Work # Obfuscated some details about my work enviroment iface officelan inet static # Test to see if our gateway is present with MAC address 00:00:xx:xx:xx:xx # from source address 194.134.x.x test peer address 194.134.x.x mac 00:00:xx:xx:xx:xx source 194.134.x.x address 194.134.x.x netmask 255.255.255.0 gateway 194.134.x.x # Set our DNS, this is used by the resolvconf package dns-domain euronet.nl dns-search euronet.nl orange.nl wanadoo.nl online.nl euro.net dns-nameservers 194.134.5.5 194.134.0.97 # (post|pre)-(up|down) actions, which are optional # Mount samba shares at work after we brought the interface up post-up /home/my_user/bin/mount_smb start # And disable to mounts before we shut the interface down pre-down /home/my_user/bin/mount_smb stop # Which interface has preference, eth0 or wlan0, this is needed if you # are connected via both interfaces. metric 1 # One happy island (very nice weather ;)) iface aruba inet dhcp test peer address 192.168.1.1 mac 00:08:5C:89:xx:xx source 192.168.1.4 dns-domain opperschaap.net dns-search opperschaap.net euronet.nl wanadoo.nl online.nl euro.net # Home iface homelan inet static test peer address 192.168.1.254 mac 00:24:17:47:xx:xx source 192.168.1.14 address 192.168.1.14 netmask 255.255.255.0 gateway 192.168.1.1 dns-domain opperschaap.net dns-search opperschaap.net euronet.nl wanadoo.nl online.nl euro.net dns-nameservers 194.134.5.5 194.134.0.97 # At home, wireless has precedence over our fixed network metric 2
For wireless networks you can also use the peer test, but there is a simpler way to see if you can connect to a wireless network. Test to see if the ESSID is present:
test wireless essid ubuntuwifi # In case of spaces in the ESSID test wireless essid "ubuntu wifi"
- Spaces in the ESSID
- In older versions of guessnet you didn’t need to use quotes around the ESSID, but later versions do require it.
# Wifi at work iface workwifi inet dhcp # Use this if we can find Online Wireless network test wireless essid "Online Wireless" dns-domain euronet.nl dns-search euronet.nl orange.nl wanadoo.nl online.nl sf6800.euronet.nl euro.net dns-nameservers 194.134.5.5 194.134.0.97 # This interface has a lesser precedence over eth0 metric 2 # Wifi at home iface homewifi inet static test wireless essid ubuntuwifi address 192.168.1.114 netmask 255.255.255.0 gateway 192.168.1.1 dns-domain opperschaap.net dns-search opperschaap.net euronet.nl wanadoo.nl online.nl dns-nameservers 194.134.5.5 194.134.0.97 # This interface is used in case we are both connected via wifi and # wired LAN metric 1 # Connect to any open network iface wifi-open inet dhcp # Any ESSID is valid wireless-essid any # Is the wireless work open? Yes, then use this mapping test wireless open # Set the DNS dns-domain opperschaap.net dns-search opperschaap.net euronet.nl wanadoo.nl online.nl dns-nameservers 194.134.5.5 194.134.0.97
To see what kind of other test you can run to determine which network you are in, please have a look at the manpage of guessnet.
man guessnet
Use of metrics
Some of you might have noticed a metric statement for some of the interfaces. I do this because when you are connected via both wireless and wired networks, some things may go «bad» with the routing table. When you define a metric for these two interfaces you will tell the routing table which interface has preference over the other. The lowest metric has priority over the higher metric.
Or as I explained in a ubuntuforum post: The problem is that without the metric you will have 2 interfaces used for the same destinations. It will use either interface, which causes problems with the routing table.
By setting a metric you can avoid this, since the higher metric is more «expensive» to use. So the OS will use the interfaces with the lowest metric if it needs to route traffic. In case the lower metric interface is shutdown it will use the higher metric interface since it is the only interface which can be used to route traffic towards that particular network/destination.
See also http://en.wikipedia.org/wiki/Metrics_%28networking%29
The problem could also be solved by adding static routes, but that is used mostly to make sure specific networks/hosts are routed via a different interface then the default. You then force only those hosts to use link B even though normally the OS would use link A.
Result
When we put all the configuration segments together you will get a interfaces file which looks like this
auto lo iface lo inet loopback address 127.0.0.1 netmask 255.0.0.0 mapping eth0 script guessnet-ifupdown map default: missing-cable map verbose: false map debug: false map officelan homelan aruba missing-cable mapping wlan0 script guessnet-ifupdown map default: missing-cable map verbose: false map debug: false map workwifi homewifi wifi-open missing-cable # Work iface officelan inet static test peer address 194.134.x.x mac 00:00:xx:xx:xx:xx source 194.134.x.x address 194.134.x.x netmask 255.255.255.0 gateway 194.134.x.x dns-domain euronet.nl dns-search euronet.nl orange.nl wanadoo.nl online.nl euro.net dns-nameservers 194.134.5.5 194.134.0.97 post-up /home/my_user/bin/mount_smb start pre-down /home/my_user/bin/mount_smb stop metric 1 # One happy island (very nice weather ;)) iface aruba inet dhcp test peer address 192.168.1.1 mac 00:08:5C:89:xx:xx source 192.168.1.4 dns-domain opperschaap.net dns-search opperschaap.net euronet.nl wanadoo.nl online.nl euro.net # Home iface homelan inet static test peer address 192.168.1.254 mac 00:24:17:47:xx:xx source 192.168.1.14 address 192.168.1.14 netmask 255.255.255.0 gateway 192.168.1.1 dns-domain opperschaap.net dns-search opperschaap.net euronet.nl wanadoo.nl online.nl euro.net dns-nameservers 194.134.5.5 194.134.0.97 metric 2 # Wifi at work iface workwifi inet dhcp # Use this if we can find Online Wireless network test wireless essid "Online Wireless" dns-domain euronet.nl dns-search euronet.nl orange.nl wanadoo.nl online.nl sf6800.euronet.nl euro.net dns-nameservers 194.134.5.5 194.134.0.97 # This interface has a lesser precedence over eth0 metric 2 # Wifi at home iface homewifi inet static test wireless essid ubuntuwifi address 192.168.1.114 netmask 255.255.255.0 gateway 192.168.1.1 dns-domain opperschaap.net dns-search opperschaap.net euronet.nl wanadoo.nl online.nl dns-nameservers 194.134.5.5 194.134.0.97 # This interface is used in case we are both connected via wifi and # wired LAN metric 1 # Connect to any open network iface wifi-open inet dhcp # Any ESSID is valid wireless-essid any # Is the wireless work open? Yes, then use this mapping test wireless open # Set the DNS dns-domain opperschaap.net dns-search opperschaap.net euronet.nl wanadoo.nl online.nl dns-nameservers 194.134.5.5 194.134.0.97
You can now test if it all works like intended.
/etc/init.d/networking stop /etc/init.d/wpa.sh stop /etc/init.d/ifplugd stop
If you enter ip addr you will only see the lo interface being active.
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 2: eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000
And start all the required daemons:
/etc/init.d/ifplugd start /etc/init.d/wpa.sh start /etc/init.d/networking start
And now you will see your interfaces configured properly
$ ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
Done.
Bonus script
This script will be a stop/start script for your complete network, which can be used when you want to enable networking after you have suspended your laptop or for other reasons
INT="eth0 wlan0" stop() { /etc/init.d/networking stop /etc/init.d/wpa.sh stop /etc/init.d/ifplugd stop for i in $INT ; do ip link set dev "$i" down &>/dev/null done } start() { /etc/init.d/ifplugd start /etc/init.d/wpa.sh start /etc/init.d/networking start } restart() { stop sleep 5 start } $1
See also
Ubuntu resources
-
http://ubuntuforums.org/showthread.php?t=124153 — This guide on the Ubuntu forums.
-
http://ubuntuforums.org/showthread.php?t=1055393 — Setting hostname gone wrong.
External resources
-
http://www.linuxhomenetworking.com/wiki/index.php/Quick_HOWTO_:_Ch03_:_Linux_Networking — networking for Linux explained
-
http://wiki.debian.org/WPA — Debian wiki and configuring WPA
-
http://www.aaron-spettl.de/ubuntu/dynamische-netzwerkkonfiguration.php — This guide in German
-
http://vollink.com/gary/deb_wifi.html — Debian and Wireless networking (broken link)
-
http://wiki.fok.nl/index.php/Dig/linux/wireless — This guide in Dutch, rewrite of the Ubuntu forums thread (Dutch)
CategoryNetworking CategoryWireless CategoryCommandLine
NetworkConfigurationCommandLine/Automatic (last edited 2015-07-18 12:02:04 by peter-hentrich)
Имя хоста задается во время установки операционной системы или динамически назначается виртуальной машине при ее создании.
В этом руководстве объясняется, как установить или изменить имя хоста в Ubuntu 20.04 без перезагрузки системы.
Общие сведения об именах хостов
Имя хоста — это метка, которая идентифицирует устройство в сети. У вас не должно быть двух или более машин с одинаковым именем хоста в одной сети.
В Ubuntu вы можете редактировать системное имя хоста и соответствующие настройки с помощью команды hostnamectl
. Этот инструмент распознает три разных класса имен хостов:
static
— традиционное имя хоста. Он хранится в/etc/hostname
и может быть установлен пользователем.-
pretty
— описательное имя хоста UTF8 в свободной форме, используемое для представления пользователю. Например,Linuxize's laptop
. -
transient
— динамическое имя хоста, поддерживаемое ядром. Серверы DHCP или mDNS могут изменять временное имя хоста во время выполнения. По умолчанию это то же самое, что иstatic
имя хоста.
Рекомендуется использовать полное доменное имя ( FQDN
), например host.example.com
как для static
и для transient
имен.
Только root или пользователи с привилегиями sudo могут изменять системное имя хоста.
Отображение текущего имени хоста
Чтобы просмотреть текущее имя хоста, вызовите команду hostnamectl
без аргументов:
hostnamectl
В этом примере текущее имя хоста установлено на ubuntu2004.localdomain
.
Изменение имени хоста системы
Изменение имени хоста системы — простой процесс. Синтаксис следующий:
sudo hostnamectl set-hostname host.example.com
sudo hostnamectl set-hostname "Your Pretty HostName" --pretty
sudo hostnamectl set-hostname host.example.com --static
sudo hostnamectl set-hostname host.example.com --transient
Например, чтобы изменить статическое имя хоста системы на neptune.linuxize.com
, вы должны использовать следующую команду:
sudo hostnamectl set-hostname neptune.linuxize.com
При желании вы также можете установить красивое имя хоста:
sudo hostnamectl set-hostname "Linuxize's laptop" --pretty
hostnamectl
не производит вывода. В случае успеха возвращается 0, в противном случае — ненулевой код ошибки.
Статическое имя хоста хранится в /etc/hostname
, а красивое имя хоста хранится в /etc/machine-info
.
Вы не должны использовать одно и то же имя хоста на двух разных машинах в одной сети.
В большинстве систем имя хоста отображается на 127.0.0.1
в /etc/hosts
. Откройте файл и измените старое имя хоста на новое.
/etc/hosts
127.0.0.1 localhost
127.0.0.1 neptune.linuxize.com
# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
Если вы используете Ubuntu в облачном экземпляре и установлен пакет cloud-init
, вам также необходимо отредактировать файл /etc/cloud/cloud.cfg
. Этот пакет обычно устанавливается по умолчанию в образах, предоставляемых поставщиками облачных услуг, и используется для обработки инициализации экземпляров облака.
Если файл существует в вашей системе, откройте его:
sudo vim /etc/cloud/cloud.cfg
Найдите preserve_hostname
и измените значение с false
на true
:
/etc/cloud/cloud.cfg
# This will cause the set+update hostname module to not operate (if true)
preserve_hostname: true
Сохраните файл и закройте редактор.
Проверить изменение
Чтобы убедиться, что имя хоста было полностью изменено, введите команду hostnamectl
:
hostnamectl
Ваше новое имя хоста будет напечатано на терминале:
Static hostname: neptune.linuxize.com
Pretty hostname: Linuxize's desktop
Icon name: computer-vm
Chassis: vm
Machine ID: a04e3543f3da460294926b7c41e87a0d
Boot ID: aa31b274703440dfb622ef2bd84c52cb
Virtualization: oracle
Operating System: Ubuntu 20.04 LTS
Kernel: Linux 5.4.0-26-generic
Architecture: x86-64
Выводы
Мы показали вам, как легко изменить имя хоста при установке Ubuntu 20.04 без перезагрузки компьютера.
Существует ряд причин, по которым вам может потребоваться изменить имя хоста. Чаще всего это когда имя хоста устанавливается автоматически при создании экземпляра.
Не стесняйтесь оставлять комментарии, если у вас есть вопросы.
When I connect to my server (ubuntu server 10.10), I get this:
name@server-name.belkin ~>
How can I remove «.belkin»?
Jorge Castro
70k123 gold badges462 silver badges652 bronze badges
asked Oct 26, 2010 at 8:00
6
You need to edit the computer name in two files:
/etc/hostname
and
/etc/hosts
These will both need administrative access, so run
gksu gedit /path/to/file
Replace any instances of the existing computer name with your new one. When complete run
sudo service hostname start
The name will also be changed if you restart your computer.
See also:
- How do I change the hostname without a restart?
answered Oct 26, 2010 at 14:39
richzillarichzilla
11.9k17 gold badges51 silver badges63 bronze badges
21
hostnamectl set-hostname
on 13.10+ desktop
This is the best way if you have systemd (13.10 onwards) and if cloud-init is not active (see below):
hostnamectl set-hostname 'new-hostname'
It:
- does not require rebooting
- persists after reboots
More info at: https://askubuntu.com/a/516898/52975
18.04 onwards: cloud-init
18.04 Introduced cloud-init which can control setting of the hostname so hostnamectl
changes it won’t stick after a reboot if cloud-init is installed. TODO: how to check if it is installed, is it installed by default on the desktop image or just server?
If you want hostnamectl
changes to stay after a reboot, then you’ll need to edit the cloud-init config files, disable cloud-init’s hostname set/update module:
sudo sed -i 's/preserve_hostname: false/preserve_hostname: true/' /etc/cloud/cloud.cfg
or disable cloud-init entirely:
sudo touch /etc/cloud/cloud-init.disabled
See also: How do I change the hostname without a restart?
answered Nov 30, 2015 at 11:24
11
It’s quite easy:
-
Edit
/etc/hostname
, make the name change, save the file. -
You should also make the same changes in
/etc/hosts
file -
Run
sudo service hostname start
As long as you have no application settings depending on the ‘old’ hostname, you should be ok
answered Dec 6, 2010 at 15:52
Pavlos G.Pavlos G.
8,6443 gold badges32 silver badges34 bronze badges
12
It is safe to do, you just need to be sure you edit both the system hostname configuration file (/etc/hostname) and the hostname name resolution file (/etc/hosts).
From a terminal execute the following:
sudo -s
editor /etc/hostname
editor /etc/hosts
shutdown -ry now
answered Dec 6, 2010 at 16:12
João PintoJoão Pinto
16.8k5 gold badges54 silver badges68 bronze badges
3
In addition to editing /etc/hosts and /etc/hostname, various services might have issues with the change as well. Mysql and postfix are installed by default in ubuntu. A broken postfix won’t affect most ubuntu users, since it’s a background email server that isn’t used by much.
Postfix:
sudo editor /etc/postfix/main.cf
sudo service postfix restart
The default config for mysql doesn’t use hostname, so it will work fine as-is. If you have customized it, edit the files in /etc/mysql/ and restart the service.
You may also want to edit /etc/motd (message of the day), which is shown on virtual terminals and remote logins. That one won’t harm anything though.
Other services that you may have installed that would need fixing are apache, bind9, etc. In each case, find and edit the hostname in their config and restart the service.
answered Dec 6, 2010 at 17:20
ImaginaryRobotsImaginaryRobots
9,0184 gold badges33 silver badges38 bronze badges
Another better and safe way to rename hostname
Install ailurus
-
Add the PPA and update your repository
sudo add-apt-repository ppa:ailurus && sudo apt-get update
-
Install ailurus
sudo apt-get install ailurus
-
After installation it will be found under Applications>>System Tools>>Ailurus
answered Dec 19, 2010 at 18:43
karthick87karthick87
79.3k59 gold badges192 silver badges232 bronze badges
5
The host name uniquely identifies your computer on the local network (and possibly on the Internet as well) so it’s not a good idea to change it unless you know what you are doing.
But you can change the shell prompt not to display the .belkin
(domain name part):
export PS1='u@h w> '
See the bash man page and specifically the section on prompting for more information.
answered Oct 26, 2010 at 8:36
Riccardo MurriRiccardo Murri
16.2k7 gold badges52 silver badges51 bronze badges
Use the hostname
command to change your hostname
sudo hostname newname
However, this does not edit your hosts file, which you must do so as to make sure that your computer recognizes itself
gksudo /etc/hosts
And add a new entry for your hostname pointing to 127.0.0.1
127.0.0.1 oldname newname
You could remove the old entry as well, but I prefer to keep it there.
answered Jun 17, 2011 at 1:55
NemoNemo
9,2228 gold badges46 silver badges67 bronze badges
0
If you don’t want to play with a text editor, Ubuntu Tweak (grab the deb from their website) has that as one of the little things you can play with (along with lots of other little tweaks that you might want to make but don’t really want to play around with the terminal and the files themselves).
answered Dec 7, 2010 at 3:04
dkuntz2dkuntz2
4891 gold badge3 silver badges11 bronze badges
4
The following command change the hostname on the fly but to make it permanent, you have to edit /etc/hostname
:
echo 'new_hostname' > /proc/sys/kernel/hostname
Open a new terminal session and you’ll see it right away.
With systemd
in place, the proper way to do it is
hostnamectl set-hostname "new_name"
wjandrea
13.8k4 gold badges46 silver badges95 bronze badges
answered Nov 5, 2012 at 23:50
Terry WangTerry Wang
9,3474 gold badges35 silver badges29 bronze badges
If you want a GUI assisted process install Ubuntu-Tweak. Among other uses of this app is the ability to change computer name through tab «Computer-Details» -> «Hostname»
answered Jun 17, 2011 at 0:20
13east13east
1,9352 gold badges18 silver badges24 bronze badges
SystemSettings -> Details -> Overwiev (default opened in U16.04) — Device Name.
but additionally you must change name in /etc/hosts. Ubuntu BUG()?
answered Sep 8, 2016 at 13:21
1
Open a terminal and
sudo sed -i '1s/.*/desired-name/g' /etc/hostname
# you need restart to effect with...
sudo shutdown -r 0
answered Oct 26, 2010 at 14:32
1
For some reason all answers are about changing the hostname. However the goal of just showing the first part of the hostname can be achieved in other way.
You just need to find a place in your .bashrc
file where the PS1
is set and replace H
with h
.
man bash — prompting
answered Jul 22, 2021 at 1:53
Содержание
- Требования:
- Что такое имя компьютера (системное имя хоста)
- Отображение текущего имени компьютера в системе Ubuntu
- Изменить имя компьютера в Ubuntu (без перезагрузки)
- Изменить имя компьютера в Ubuntu (требуется перезагрузка)
- Красивое имя компьютера
- Изменить имя компьютера в Ubuntu с помощью графического интерфейса
- Заключение
В этой статье мы покажем, как изменить имя компьютера в системе Ubuntu Linux.
Сеть является одним из наиболее важных компонентов современной инфраструктуры информационных технологий. Когда ваш компьютер подключен к сети, то другие устройства могут взаимодействовать с вашим компьютером. Для этого используется имя компьютера, которое также известно как имя хоста. Если у вашего компьютера нет уникального имени в сети, вы должны его сделать.
Требования:
- Компьютер с установленной Ubuntu Linux.
- Учетная запись пользователя с правами root или sudo.
- Используйте уникальное имя компьютера для каждого ПК в одной сети. Одно и то же имя компьютера может вызвать проблемы.
Что такое имя компьютера (системное имя хоста)
Имя компьютера (хоста) — это уникальное имя или метка вашей машины, которая используется для идентификации устройства и сетевого взаимодействия. Он назначается автоматически при установке операционной системы Ubuntu и динамически назначается виртуальной машине. Это имя, по которому другие компьютеры идентифицируют ваше устройство. Не используйте одно и то же имя компьютера для нескольких компьютеров в одной сети.
Когда вы работаете в командной строке, имя компьютера напоминает вам, на каком компьютере вы работаете. Вам не нужно запоминать IP-адрес машины, который может измениться из-за обновлений в конфигурации сети. Вы можете изменить имя компьютера, чтобы назначить описательное имя вашему устройству, например ubuntu-desktop.
Имена хостов (компьютеров) классифицируются в следующих категориях:
- Статическое имя хоста определяется пользователем и хранится в файле /etc/hostname .
- Красивое имя компьютера — это удобное описательное имя, которое предоставляет более подробную информацию о типе и конфигурации системы.
- Временное имя компьютера поддерживается ядром Linux. Данное имя компьютера может быть изменено во время выполнения серверами DHCP или nDNS. Временное имя компьютера по умолчанию совпадает со статическим именем ПК.
Вы всегда должны использовать полное доменное имя, например, hostname.example.com .
Отображение текущего имени компьютера в системе Ubuntu
Проверьте текущее имя ПК вашего устройства, прежде чем вы решите его изменить. Ubuntu предоставляет команды hostname и hostnamectl для проверки текущего имени хоста.
Чтобы отобразить только имя компьютера, используйте данную команду:
hostname
Чтобы отобразить имя компьютера вместе с другой важной информацией, такой как идентификатор виртуальной машины, версия ядра и архитектура ОС, введите:
hostnamectl
Вы также можете временно изменить имя компьютера, для этого введите следующую команду:
sudo hostname ubuntu-desktop
Изменить имя компьютера в Ubuntu (без перезагрузки)
Чтобы изменить имя компьютера в Ubuntu без перезагрузки системы, используйте команду hostnamectl . Для этого выполните следующие действия:
1. Измените имя компьютера, используя параметр set-hostname следующим образом:
hostnamectl set-hostname ubuntu-linux
При использовании команды hostnamectl set-hostname вам не нужно открывать и редактировать файл /etc/hostname .
2. Проверьте новое имя хоста с помощью команды hostnamectl, потому что hostnamectl не отображает никаких выходных данных:
hostnamectl
Если вы используете дистрибутив Ubuntu на основе systemd, такой как Ubuntu Linux 16.04 или более поздней версии, вы можете использовать команду hostnamectl для изменения имени ПК.
Основной синтаксис команды hostnamectl выглядит следующим образом:
hostnamectl set-hostname new-hostname
Где new-hostname — это новое имя, которое вы хотите назначить своему компьютеру.
Чтобы изменить имя хоста (ПК) с ubuntu-linux на ubuntu-notebook, введите:
sudo hostnamectl set-hostname ubuntu-laptop
Изменить имя компьютера в Ubuntu (требуется перезагрузка)
Вы также можете изменить имя хоста навсегда, отредактировав файлы конфигурации /etc/hostname и /etc/hosts . Однако эта процедура требует перезагрузки компьютера. Выполните следующие действия, чтобы изменить имя компьютера в Ubuntu, отредактировав файлы конфигурации /etc/hostname и /etc/hosts:
1. Отредактируйте файл /etc/hostname с помощью текстового редактора по вашему выбору:
sudo nano /etc/hostname
2. Замените старое имя ПК на новое имя ПК.
3. Отредактируйте файл /etc/hosts с помощью текстового редактора:
sudo nano /etc/hosts
4. Замените старое имя компьютера новым именем компьютера.
5. Перезагрузитесь:
sudo reboot
6. Проверьте, обновилось ли имя после перезагрузки:
hostnamectl
Примечание: Если ваша операционная система Ubuntu установлена на облачном экземпляре и установлен инструмент cloud-init, вам также необходимо отредактировать файл конфигурации /etc/cloud/cloud.cfg. Перед перезагрузкой компьютера установите для параметра preserve_hostname значение true в файле /etc/cloud/cloud.cfg.
Красивое имя компьютера
Статическое имя компьютера — это единственное имя, которое используется для сетевого взаимодействия. Однако красивое имя хоста отображается только пользователю. Если у вас несколько систем Ubuntu, то красивое имя компьютера вам очень пригодится. Используйте следующую команду, чтобы изменить красивое имя ПК Ubuntu Linux:
hostnamectl set-hostname "My Ubuntu Linux laptop" --pretty
Изменить имя компьютера в Ubuntu с помощью графического интерфейса
Вы также можете изменить имя компьютера в Ubuntu с помощью графического интерфейса пользователя (GUI). В случае если вам не нравится интерфейс командной строки. Выполните следующие действия, чтобы изменить имя компьютера Ubuntu с помощью графического интерфейса:
1. Откройте настройки и нажмите О программе.
2. Найдите и щелкните поле Имя устройства:
3. Измените текущее имя компьютера новым именем машины:
4. Нажмите Переименовать (Rename).
В этой статье используется Ubuntu 22.04 LTS. Так что экраны могут немного отличаться в других версиях операционной системы Ubuntu Linux.
Заключение
В этой статье мы показали, как изменить имя компьютера в Ubuntu Linux. Мы описали три различных метода, которые вы можете использовать для изменения имени ПК:
С помощью команд в терминале.
Редактирования файлов конфигураций.
С использованием графического интерфейса.
Вы можете использовать любую из этих процедур в зависимости от ваших желаний.
Имя хоста устанавливается во время установки операционной системы Ubuntu или, если вы запускаете виртуальную машину, оно динамически назначается экземпляру при запуске.
Метод, описанный в этом руководстве, будет работать без перезапуска системы.
Хотя это руководство написано для Ubuntu 18.04, те же инструкции применимы для Ubuntu 16.04 и любого дистрибутива на основе Ubuntu, включая Linux Mint и Elementary OS.
Введение
Прежде чем продолжить это руководство, убедитесь, что вы вошли в систему как пользователь с привилегиями sudo .
Имя хоста — это метка, которая идентифицирует машину в сети. Вы не должны использовать одно и то же имя хоста на двух разных машинах в одной сети.
Показать текущее имя хоста
Чтобы просмотреть текущее имя хоста, введите следующую команду:
hostnamectl
Как вы можете видеть на изображении выше, текущее имя хоста установлено на ubuntu1804.localdomain
.
Изменить имя хоста
Следующие шаги описывают, как изменить имя хоста в Ubuntu 18.04.
1. Измените имя хоста с помощью hostnamectl
В Ubuntu 18.04 мы можем изменить имя хоста системы и соответствующие настройки с помощью команды hostnamectl
.
Например, чтобы изменить статическое имя хоста системы на linuxize
, вы должны использовать следующую команду:
sudo hostnamectl set-hostname linuxize
Команда hostnamectl
не производит вывода. В случае успеха возвращается 0, в противном случае — ненулевой код ошибки.
2. Отредактируйте /etc/hosts
файл
Откройте /etc/hosts
файл и измените старое имя хоста на новое.
/ etc / hosts
127.0.0.1 localhost
127.0.0.1 linuxize
# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
3. Отредактируйте cloud.cfg
файл
Если cloud-init
пакет установлен, вам также необходимо отредактировать cloud.cfg
файл. Этот пакет обычно устанавливается по умолчанию в образах, предоставляемых поставщиками облачных услуг, такими как AWS, и используется для обработки инициализации экземпляров облака.
Чтобы проверить, установлен ли пакет, выполните следующую ls
команду :
ls -l /etc/cloud/cloud.cfg
Если вы видите следующий вывод, это означает, что пакет не установлен и никаких дальнейших действий не требуется.
ls: cannot access '/etc/cloud/cloud.cfg': No such file or directory
Если пакет установлен, вывод будет выглядеть следующим образом:
-rw-r--r-- 1 root root 3169 Apr 27 09:30 /etc/cloud/cloud.cfg
В этом случае вам нужно будет открыть /etc/cloud/cloud.cfg
файл:
sudo vim /etc/cloud/cloud.cfg
Найдите preserve_hostname
и измените значение с false
на true
:
# This will cause the set+update hostname module to not operate (if true)
preserve_hostname: true
Сохраните файл и закройте редактор.
Проверить изменение
Чтобы убедиться, что имя хоста было успешно изменено, еще раз используйте hostnamectl
команду:
hostnamectl
Static hostname: linuxize
Icon name: computer-vm
Chassis: vm
Machine ID: 6f17445f53074505a008c9abd8ed64a5
Boot ID: 1c769ab73b924a188c5caeaf8c72e0f4
Virtualization: kvm
Operating System: Ubuntu 18.04 LTS
Kernel: Linux 4.15.0-22-generic
Architecture: x86-64
Вы должны увидеть ваше новое имя сервера, напечатанное на консоли.
Вывод
В этом руководстве мы показали вам, как легко изменить имя хоста сервера Ubuntu без перезагрузки компьютера.
Hostname (имя компьютера, имя хоста) задается во время установки системы Linux. Hostname определяет название компьютера и используется преимущественно для идентификации компьютера в сети. Нельзя назначать два одинаковых Hostname для компьютеров в одной сети.
Просмотр текущего Hostname
Чтобы показать текущий Hostname можно использовать команду hostname без параметров:
hostname
Также Hostname можно отобразить командой hostnamectl:
hostnamectl
Смотрите также: Как узнать имя компьютера (hostname) в Linux.
Как изменить Hostname
Рассмотрим, как изменить Hostname двумя разными способами.
Способ 1. Используем команду hostnamectl
Во многих systemd-based дистрибутивах (например, в Ubuntu Linux) есть утилита hostnamectl.
Воспользуемся командой hostnamectl, чтобы установить новое значение Hostname равным pingvinus. Используется аргумент set-hostname:
sudo hostnamectl set-hostname pingvinus
Способ 2. Редактируем файлы /etc/hostname и /etc/hosts
Еще один способ изменения Hostname — это ручное редактирование файла /etc/hostname и файла /etc/hosts.
Сначала выполните команду (вместо pingvinus укажите свое значение):
sudo hostname pingvinus
Отредактируем файл /etc/hostname для редактирования в редакторе nano, выполняем команду:
sudo nano /etc/hostname
Измените текущее значение в файле на новое. Сохраните изменения и закройте файл. Это можно сделать, нажав Ctrl+C, затем Y и Enter.
Hostname прописывается также в файле /etc/hosts, поэтому нужно изменить его значение в этом файле. Откроем файл:
sudo nano /etc/hosts
Найдите строку вида «127.0.0.1 ваш_hostname» и впишите новое имя хоста. Сохраните изменения и закройте файл.
Проверка результата
Чтобы проверить, изменилось ли значение Hostname, откройте новое окно терминала и введите команду:
hostname
Как временно изменить Hostname
Чтобы изменить Hostname в текущей работающей системе Linux, но до первой перезагрузки, можно использовать просто команду hostname, указав ей новое значение имени хоста:
hostname новое_имя
Лайков: +1
Войдите, чтобы ставить лайкимне нравится
Смотрите также
- Запуск программ через дискретную видео-карту из меню в openSUSE GNOME
- Видео: Установка и настройка VirtualBox для новичков
- Как узнать версию Linux
- Установка ROSA Fresh R11
- Установка и использование PIP в Linux
- Включаем NumLock при старте
- Установка Xfce в Ubuntu и немного впечатлений
- «Пара» слов о Solus 4.2 под KDE
- Буфер обмена в Linux (копирование и вставка)
- Как узнать IP адрес, используя командную строку Linux
Introduction
A hostname is a user-generated custom name which identifies a computer system in a network. In Ubuntu 20.04, users assign a hostname to the machine during OS setup.
You may decide to change your computer’s hostname for several reasons. For example, no two computers on a network can have the same hostname and, if you find yourself in this situation, you will have to change the hostname to avoid a network conflict.
In this tutorial, you will learn how to change a hostname on Ubuntu 20.04 using the Linux command line or GUI.
Prerequisites
- Ubuntu 20.04 installed
- An account with sudo privileges
- Access to the command line for non-GUI methods
How to Check Current Hostname on Ubuntu 20.04
To check the current hostname of your Ubuntu system, use one of two available commands.
- The
hostname
command displays only the hostname itself.
- The other command,
hostnamectl
, displays additional information about your computer system.
The Static hostname
line displays your machine’s hostname.
Note: Valid hostnames are between 2 and 64 characters in length. They can contain only letters, numbers, periods, and hyphens, but must begin and end with letters and numbers only.
Temporarily Change Hostname on Ubuntu 20.04
Use the hostname command to make a temporary change to your computer’s hostname.
In the terminal, type the following, replacing new-hostname
with the name you choose:
sudo hostname new-hostname
If successful, this step will not provide any output. To confirm the result of the process, check the current system hostname:
Change Hostname on Ubuntu 20.04 (No Reboot Required)
If you wish to permanently change the hostname without rebooting your computer, use the hostnamectl
command.
Step 1: Use set-hostname to Change the Hostname
Type the following command:
hostnamectl set-hostname new-hostname
Use your own hostname choice instead of new-hostname
.
Step 2: Use hostnamectl to Confirm the Change
Just like the hostname
command, if successful, hostnamectl set-hostname
does not produce any output. Therefore, use hostnamectl
to check the result.
Step 3: Change the Pretty Hostname (Optional)
A “pretty” hostname is the hostname presented to the user, not to another computer on a network. A computer system identifies another computer only by its static hostname.
Note: The pretty hostname does not have the naming limitations of its static counterpart – any UTF-8 value is permitted.
To change a machine’s “pretty” hostname, use the same hostnamectl
command with the --pretty
option:
hostnamectl set-hostname "new-hostname" --pretty
Replace new-hostname
with your own UTF-8 value.
After checking the result with hostnamectl
, you will notice an additional line in the output, listing the computer’s “pretty” hostname.
Note: The “pretty” hostname is stored in /etc/machine-info. Updating this file is another way to perform this optional step.
Change Hostname on Ubuntu 20.04 – Alternative Method (Reboot Required)
Another way to permanently change the hostname is by editing two configuration files:
- /etc/hostname
- /etc/hosts
The changes take effect immediately after system reboot.
Step 1: Open /etc/hostname and Change the Hostname
Edit the file with a text editor of your choice. In this example, we will be using the Vim editor:
sudo vi /etc/hostname
The /etc/hostname file contains only the current hostname. Replace it with your new choice.
Save the file and exit.
Step 2: Open /etc/hosts and Change the Hostname
Now edit the /etc/hosts file in the same way.
sudo vi /etc/hosts
The file /etc/hosts maps hostnames to IP addresses. Look for the hostname you wish to change and simply replace it with your new choice.
Save the edits and exit.
Step 3: Reboot the System
Reboot your computer to apply the changes:
sudo systemctl reboot
Note: If you use the Cloud-Init package (cloud-init
) to run a cloud instance of Ubuntu, you need to perform another step before rebooting. Go to /etc/cloud/cloud.cfg file and make sure the line preserve_hostname
is set to TRUE
.
The Ubuntu GUI also provides a way to edit the system hostname:
1. First, navigate to Settings > About.
2. Now, locate the Device Name field.
3 Clicking the Device Name field opens the Rename Device dialogue box.
4. In the Rename Device dialogue box, replace the current hostname with a new one and confirm your choice by clicking the Rename button. This action permanently changes the hostname.
Conclusion
This article presented three methods in which you can change the hostname on your Ubuntu 20.04 machine, using the command line or GUI. All the methods are simple and straightforward, so you can choose whichever one fits your use case best.