Advertencia: no funcionará con Ubuntu 18+, que ejecuta cloud-init de forma predeterminada, que controla el nombre de host en el arranque.
nslntmnx
@nslntmnx, gracias!
MiB
Respuestas:
642
Es fácil. Simplemente haga clic en el ícono de Gear (ubicado en la esquina superior derecha de la pantalla), abra la pantalla "Acerca de esta computadora" (ubicada en el ícono de Gear) y edite "Nombre del dispositivo".
Lo sé. es por eso que debes usar el comando 'hostname'. Solo quería aclarar que el comando 'hostname' solo cambia el nombre del host hasta que reinicie / bloquee / etc. Luego leerá el nombre del archivo nuevamente.
jasperado
55
Depende Si ingresó el comando, no necesita reiniciar. El nombre de host ya ha cambiado. Pero solo HASTA su próximo reinicio.
jasperado
19
Tenga en cuenta que también tiene que cambiar el /etc/hosts(ver otras respuestas)
JB.
99
En resumen, aunque hostnamehará que el nuevo nombre tenga efecto inmediato, no es "permanente" a menos que también cambie /etc/hostnamey /etc/hosts, dado que esos son los archivos que se leerán después de un reinicio o un bloqueo, que por supuesto, es posible que no esperando de antemano.
Tim Parenti
280
Ubuntu 13.04 en adelante
El hostnamectlcomando forma parte de la instalación predeterminada en las ediciones Desktop y Server.
Combina la configuración del nombre de host mediante el hostnamecomando y la edición /etc/hostname. Además de configurar el nombre de host estático, puede establecer el nombre de host "bonito", que no se usa en Ubuntu. Desafortunadamente, la edición /etc/hostsaún debe hacerse por separado.
hostnamectl set-hostname new-hostname
Este comando es parte del systemd-servicespaquete (que, a partir de Ubuntu 14.04, también incluye los comandos timedatectly localectl). A medida que Ubuntu migra systemd, esta herramienta es el futuro.
Tenga en cuenta que esto no está disponible en todas partes. Acabo de ver mi instalación de Ubuntu 14.04 LTS ARM-7, y hostnamectlno existe. Supongo que algunos sabores de Ubuntu todavía no usan systemd.
Stéphane
1
@ Stéphane los comandos son parte de la suite systemd, pero están disponibles de forma independiente. En este caso, 13.04-14.10 no usa systemd como init, por el comando está disponible.
muru
1
@ H2ONaCl la variable de shell se establece en el inicio, simplemente abra otro shell y la variable de nombre de host debería estar bien. En cuanto a sudo, el error sobre la resolución del nombre de host nunca me ha impedido hacer nada.
muru
1
@ H2ONaCl ah, pero la variable HOSTNAME no es estándar: el guión IIRC y ksh no lo tienen, zsh usa HOST, por lo que, en lo que respecta a las variables de shell, es la parte inferior del montón.
muru
3
Todavía funciona en Ubuntu 18.04 LTS.
LucaM
63
Sin reiniciar
Cambiar el nombre de host o el nombre de la computadora en ubuntu sin reiniciar
Edite / etc / hostname y cambie al nuevo valor,
nano /etc/hostname
Edite / etc / hosts y cambie la antigua línea 127.0.1.1 a su nuevo nombre de host
127.0.0.1 localhost
127.0.1.1 ubuntu.local ubuntu # change to your new hostname/fqdn
Nota : lo he leído en un foro> Editar / etc / hosts y cambiar la antigua línea 127.0.1.1 a su nuevo nombre de host (si no lo hace, ya no podrá usar sudo. Si ya lo ha hecho) , presione ESC en el menú de grub, elija recuperación y edite su archivo host a la configuración correcta)
Ahora, después de reiniciar, su nombre de host será el nuevo que eligió
Sin reiniciar
Para cambiar sin reiniciar , puede usar hostname.sh después de editar / etc / hostname. Debe mantener ambos nombres de host en / etc / hosts (127.0.0.1 newhost oldhost) hasta que ejecute el siguiente comando:
sudo service hostname start
Nota : Comando anterior para activar el cambio. El nombre de host guardado en este archivo (/ etc / hostname) se conservará al reiniciar el sistema (y se establecerá utilizando el mismo servicio).
En Ubuntu 12.10, la última parte no funciona con el siguiente mensaje de error sudo: unable to resolve host old-hostname. Por esa parte, la solución @jesperado funciona bien.
Frédéric Grosshans el
3
Si no actualiza /etc/hosts, las cosas de mant comienzan a fallar en 12.04.2 LTS, incluido el wcomando, Apache /sbin/rebooty mucho más. Asegúrese de actualizar/etc/hosts
Josh
Usted hace referencia a ambos 127.0.0.1para localhosty 127.0.1.1para un nombre de host personalizado. ¿Derecho? Luego, hacia el final de su respuesta, para una acción sin rebot , usted hace referencia /etc/hostsy 127.0.0.1 newhost oldhost. Entonces, ¿no hay necesidad de una 127.0.1.1dirección?
Nikos Alexandris
1
No funcionó para mí. tuve que usar sudo nano /etc/hostspara que el cambio surta efecto; sin sudo, simplemente nano /etc/hostsno guardó el cambio
conman253
2
¿Cuál es la diferencia entre reiniciar y reiniciar?
tormenta
43
El nombre predeterminado se estableció cuando estaba instalando Ubuntu. Puede cambiarlo fácilmente a lo que desee en Desktop y Server editando los archivos hosts y hostname. A continuación se muestra cómo:
Presione CtrlAltten el teclado para abrir el terminal. Cuando se abra, ejecute el siguiente comando:sudo hostname NEW_NAME_HERE
Esto cambiará el nombre de host hasta el próximo reinicio. El cambio no será visible inmediatamente en su terminal actual. Inicie una nueva terminal para ver el nuevo nombre de host.
Para cambiar el nombre permanentemente, ejecute el comando para editar los archivos host:
sudo -H gedit /etc/hostname y sudo -H gedit /etc/hosts
Para el servidor Ubuntu sin una interfaz gráfica de usuario, ejecutar sudo vi /etc/hostnamey sudo vi /etc/hostsy les editar uno por uno. En ambos archivos, cambie el nombre a lo que desee y guárdelos.
Finalmente, reinicie su computadora para aplicar los cambios.
Aquí hay un script que cambia el nombre de host de la manera prescrita. Asegura que no solo las sudoaplicaciones X11 continúen funcionando sin necesidad de reiniciar.
Uso: sudo ./change_hostname.sh new-hostname
#!/usr/bin/env bash
NEW_HOSTNAME=$1
echo $NEW_HOSTNAME >/proc/sys/kernel/hostname
sed -i 's/127.0.1.1.*/127.0.1.1\t'"$NEW_HOSTNAME"'/g'/etc/hosts
echo $NEW_HOSTNAME >/etc/hostname
service hostname start
su $SUDO_USER -c "xauth add $(xauth list | sed 's/^.*\//'"$NEW_HOSTNAME"'\//g' | awk 'NR==1 {sub($1,"\"&\""); print}')"
¿Qué hace la última línea del script su $SUDO_USER -c "xauth add $(xauth list | sed 's/^.*\//'"$NEW_HOSTNAME"'\//g' | awk 'NR==1 {sub($1,"\"&\""); print}')"? Sólo curioso.
Fr0zenFyr
44
@ Fr0zenFyr: toma un token de autenticación X11 válido ( xauth list) y reemplaza el antiguo nombre de host con el nuevo nombre de host ( sed). Luego awkpone comillas alrededor del primer argumento xauth addporque xauthlos formatos de entrada y salida no son simétricos.
Lucas
Gracias por la explicación. Siempre había reiniciado para que los cambios tuvieran efecto. +1
Fr0zenFyr
@trakz: en realidad 127.abc sea cual sea el número, es todo localhost según IETF RFC. (la mayoría de la gente simplemente no sabe esto, pero como la mayoría no lo sabe, edición aprobada)
Fabby
14
Sin reiniciar:
cambiar el nombre de host en /etc/hostname
actualizar en /etc/hostsconsecuencia
sudo sysctl kernel.hostname=mynew.local.host
Verifique su nombre de host actual con hostname -f
Con 16.04, sysctl sudo: unable to resolve host oldname, sysctl: setting key "kernel.hostname": Read-only file system. Tal vez porque es una CT dentro de Proxmox.
Pablo A
14
Cloud-init (Ubuntu 18+) nombre de host persistencia
Mientras que los enfoques anteriores ( hostnamectl, etc/hostname, etc.) trabajar por el cambio nombre de host inmediata, con la llegada de la nube-init - que puede controlar la configuración del nombre de host - amoungst muchas otras cosas. Por lo tanto, no se pegará después de un reinicio si está instalado cloud-init. Si desea que el cambio permanezca después de un reinicio, deberá editar los archivos de configuración de cloud-init , deshabilitar el módulo de configuración / actualización de nombre de host de cloud-init :
sudo sed 's/preserve_hostname: false/preserve_hostname: true/' /etc/cloud/cloud.cfg
Por favor vota esta respuesta. Esto funciono muy bien para mi. Otras respuestas no funcionan con la adopción de cloud-init.
nslntmnx
@nslntmnx ¿viene instalado por defecto en el escritorio 18.04, solo en el servidor? El escritorio no tiene /etc/cloud/cloud.cfg. ¿Cuál es el nombre del paquete? Solo cloud-init?
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件
1
Además, ¿hay alguna forma de cambiar el nombre de host con cloud-init en lugar de simplemente deshabilitar su anulación?
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件
1
Sí, puede cambiar muchas configuraciones usando cloud-init; vea el enlace de documentos en mi respuesta; aquí hay un enlace para configurar el nombre de host: cloudinit.readthedocs.io/en/latest/topics/…
Pierz el
7
Para obtener su nombre de host actual:
cat /etc/hostname
Esto se puede cambiar en cualquier editor de texto. También necesitaría actualizar la entrada que no sea localhost contra 127.0.0.1 en / etc / hosts.
Advertencia: no funcionará con Ubuntu 18+, que ejecuta cloud-init de forma predeterminada, que controla el nombre de host en el arranque.
nslntmnx
@nslntmnx, ¿estás seguro de esto? Veo en cloud-config.txt # if you do nothing you'll end up with: # * /etc/hostname (and 'hostname') managed via: 'preserve_hostame: false' # if you do not change /etc/hostname, it will be updated with the cloud # provided hostname on each boot. If you make a change, then manual # maintenance takes over, and cloud-init will not modify it.que actualmente no tengo Ubuntu 18, así que no puedo probarlo hasta el fin de semana.
George
4
Ubuntu 16.04
Esto es sin reiniciar y sin ningún uso de terminal.
Vaya a Configuración del sistema -> Detalles .
Ahí está. Al lado del nombre del dispositivo , hay un cuadro de texto.
Editar cuadro de texto y cerrar ventana.
Terminal abierto Compruébalo por ti mismo.
(Para versiones anteriores, el cuadro de texto no es editable).
La respuesta clásica a la pregunta del póster original es que, una vez que haya editado /etc/hostname, puede hacer que se aplique sin reiniciar ejecutando hostname (1) con la opción -F( --file) como root:
sudo hostname -F /etc/hostname
El manejo del nombre de host (5)/etc/hostname y dicho programa ha sido el mismo en Debian y sus derivados durante más de veinte años, y el paquete que lo ha provisto ha sido etiquetado como esencial y requerido , y IIRC, los scripts de inicio han usado literalmente lo mismo para décadas ( /etc/init/hostname.conftodavía lo contiene), así que tengo que decir que estoy realmente perplejo de cómo ya nadie había mencionado esto :)
Advertencia: no funcionará con Ubuntu 18+, que ejecuta cloud-init de forma predeterminada, que controla el nombre de host en el arranque.
nslntmnx
@nslntmnx erm, ¿qué? ¿Qué nueva dependencia introdujo Ubuntu 18 para extraer cloud-init por defecto? Quizás esté pensando en algunas imágenes adaptadas a la nube, en cuyo caso no debería sorprenderle que ejecuten herramientas de aprovisionamiento de nube personalizadas.
Respuestas:
Es fácil. Simplemente haga clic en el ícono de Gear (ubicado en la esquina superior derecha de la pantalla), abra la pantalla "Acerca de esta computadora" (ubicada en el ícono de Gear) y edite "Nombre del dispositivo".
O, en una terminal, use el siguiente comando:
Esto establecerá el nombre de host en your-new-name hasta que reinicie. ¿Ver
man hostname
y cómo cambio el nombre de la computadora? para mayor información. No lo use_
en su nombre.Nota
Después de reiniciar
/etc/hostname
, se usarán sus cambios , por lo que (como dijo en la pregunta), aún debe usar(o algún otro editor) para que el archivo contenga el nombre de host.
Para probar que el archivo está configurado correctamente, ejecute:
También debe editar
/etc/hosts
y cambiar la línea que dice:para que ahora contenga su nuevo nombre de host. (Esto es necesario; de lo contrario, muchos comandos dejarán de funcionar).
fuente
/etc/hosts
(ver otras respuestas)hostname
hará que el nuevo nombre tenga efecto inmediato, no es "permanente" a menos que también cambie/etc/hostname
y/etc/hosts
, dado que esos son los archivos que se leerán después de un reinicio o un bloqueo, que por supuesto, es posible que no esperando de antemano.Ubuntu 13.04 en adelante
El
hostnamectl
comando forma parte de la instalación predeterminada en las ediciones Desktop y Server.Combina la configuración del nombre de host mediante el
hostname
comando y la edición/etc/hostname
. Además de configurar el nombre de host estático, puede establecer el nombre de host "bonito", que no se usa en Ubuntu. Desafortunadamente, la edición/etc/hosts
aún debe hacerse por separado.Este comando es parte del
systemd-services
paquete (que, a partir de Ubuntu 14.04, también incluye los comandostimedatectl
ylocalectl
). A medida que Ubuntu migrasystemd
, esta herramienta es el futuro.fuente
hostnamectl
no existe. Supongo que algunos sabores de Ubuntu todavía no usan systemd.Sin reiniciar
Cambiar el nombre de host o el nombre de la computadora en ubuntu sin reiniciar
Edite / etc / hostname y cambie al nuevo valor,
Edite / etc / hosts y cambie la antigua línea 127.0.1.1 a su nuevo nombre de host
Nota : lo he leído en un foro> Editar / etc / hosts y cambiar la antigua línea 127.0.1.1 a su nuevo nombre de host (si no lo hace, ya no podrá usar sudo. Si ya lo ha hecho) , presione ESC en el menú de grub, elija recuperación y edite su archivo host a la configuración correcta)
Ahora, después de reiniciar, su nombre de host será el nuevo que eligió
Sin reiniciar
Para cambiar sin reiniciar , puede usar hostname.sh después de editar / etc / hostname. Debe mantener ambos nombres de host en / etc / hosts (127.0.0.1 newhost oldhost) hasta que ejecute el siguiente comando:
Nota : Comando anterior para activar el cambio. El nombre de host guardado en este archivo (/ etc / hostname) se conservará al reiniciar el sistema (y se establecerá utilizando el mismo servicio).
fuente
sudo: unable to resolve host old-hostname
. Por esa parte, la solución @jesperado funciona bien./etc/hosts
, las cosas de mant comienzan a fallar en 12.04.2 LTS, incluido elw
comando, Apache/sbin/reboot
y mucho más. Asegúrese de actualizar/etc/hosts
127.0.0.1
paralocalhost
y127.0.1.1
para un nombre de host personalizado. ¿Derecho? Luego, hacia el final de su respuesta, para una acción sin rebot , usted hace referencia/etc/hosts
y127.0.0.1 newhost oldhost
. Entonces, ¿no hay necesidad de una127.0.1.1
dirección?sudo nano /etc/hosts
para que el cambio surta efecto; sin sudo, simplementenano /etc/hosts
no guardó el cambioEl nombre predeterminado se estableció cuando estaba instalando Ubuntu. Puede cambiarlo fácilmente a lo que desee en Desktop y Server editando los archivos hosts y hostname. A continuación se muestra cómo:
sudo hostname NEW_NAME_HERE
Esto cambiará el nombre de host hasta el próximo reinicio. El cambio no será visible inmediatamente en su terminal actual. Inicie una nueva terminal para ver el nuevo nombre de host.
Para cambiar el nombre permanentemente, ejecute el comando para editar los archivos host:
sudo -H gedit /etc/hostname
ysudo -H gedit /etc/hosts
Para el servidor Ubuntu sin una interfaz gráfica de usuario, ejecutar
sudo vi /etc/hostname
ysudo vi /etc/hosts
y les editar uno por uno. En ambos archivos, cambie el nombre a lo que desee y guárdelos.Finalmente, reinicie su computadora para aplicar los cambios.
fuente
Aquí hay un script que cambia el nombre de host de la manera prescrita. Asegura que no solo las
sudo
aplicaciones X11 continúen funcionando sin necesidad de reiniciar.Uso:
sudo ./change_hostname.sh new-hostname
fuente
su $SUDO_USER -c "xauth add $(xauth list | sed 's/^.*\//'"$NEW_HOSTNAME"'\//g' | awk 'NR==1 {sub($1,"\"&\""); print}')"
? Sólo curioso.xauth list
) y reemplaza el antiguo nombre de host con el nuevo nombre de host (sed
). Luegoawk
pone comillas alrededor del primer argumentoxauth add
porquexauth
los formatos de entrada y salida no son simétricos.Sin reiniciar:
/etc/hostname
/etc/hosts
consecuenciasudo sysctl kernel.hostname=mynew.local.host
Verifique su nombre de host actual con
hostname -f
fuente
sudo: unable to resolve host oldname
,sysctl: setting key "kernel.hostname": Read-only file system
. Tal vez porque es una CT dentro de Proxmox.Cloud-init (Ubuntu 18+) nombre de host persistencia
Mientras que los enfoques anteriores (
hostnamectl
,etc/hostname
, etc.) trabajar por el cambio nombre de host inmediata, con la llegada de la nube-init - que puede controlar la configuración del nombre de host - amoungst muchas otras cosas. Por lo tanto, no se pegará después de un reinicio si está instalado cloud-init. Si desea que el cambio permanezca después de un reinicio, deberá editar los archivos de configuración de cloud-init , deshabilitar el módulo de configuración / actualización de nombre de host de cloud-init :o deshabilitar cloud-init por completo:
fuente
/etc/cloud/cloud.cfg
. ¿Cuál es el nombre del paquete? Solocloud-init
?Para obtener su nombre de host actual:
Esto se puede cambiar en cualquier editor de texto. También necesitaría actualizar la entrada que no sea localhost contra 127.0.0.1 en / etc / hosts.
fuente
/etc/hostname
con el nombre de host deseado (puede editar consudo nano /etc/hostname
)/etc/hosts
, reemplace la entrada junto a 127.0. 1 .1 con el nombre de host deseado (puede editar consudo nano /etc/hosts
)sudo service hostname restart; sudo service networking restart
fuente
# if you do nothing you'll end up with: # * /etc/hostname (and 'hostname') managed via: 'preserve_hostame: false' # if you do not change /etc/hostname, it will be updated with the cloud # provided hostname on each boot. If you make a change, then manual # maintenance takes over, and cloud-init will not modify it.
que actualmente no tengo Ubuntu 18, así que no puedo probarlo hasta el fin de semana.Ubuntu 16.04
Esto es sin reiniciar y sin ningún uso de terminal.
Terminal abierto Compruébalo por ti mismo.
(Para versiones anteriores, el cuadro de texto no es editable).
fuente
La respuesta clásica a la pregunta del póster original es que, una vez que haya editado
/etc/hostname
, puede hacer que se aplique sin reiniciar ejecutando hostname (1) con la opción-F
(--file
) como root:El manejo del nombre de host (5)
/etc/hostname
y dicho programa ha sido el mismo en Debian y sus derivados durante más de veinte años, y el paquete que lo ha provisto ha sido etiquetado como esencial y requerido , y IIRC, los scripts de inicio han usado literalmente lo mismo para décadas (/etc/init/hostname.conf
todavía lo contiene), así que tengo que decir que estoy realmente perplejo de cómo ya nadie había mencionado esto :)fuente
Eso debería hacer el trabajo, creo
fuente
He leído las respuestas, pero creo que probablemente estés buscando esto:
Simplemente ejecute estos dos comandos después de editar el
/etc/hostname
archivo.Eso es todo. No es necesario reiniciar. También asegúrese de cambiar también el nombre en el
/etc/hosts
archivo.fuente
/etc/hosts
(lo confirmé el 14.04).Ubuntu 16.04
Solución basada en la respuesta de la Comunidad DigitalOcean.
Editar archivo de hosts .
$ sudo nano /etc/hosts
Reemplazar oldname con uno nuevo.
127.0.0.1 localhost newname
Configurar nuevo nombre de host.
$ sudo hostnamectl set-hostname newname
fuente