Vraag Hoe verander ik de hostnaam zonder opnieuw te starten?


Ik wil de OS-hostnaam wijzigen, maar ik wil niet opnieuw opstarten.

Ik heb bewerkt /etc/hostname maar het vereist een herstart om geïmplementeerd te worden. Hoe dit te vermijden?


455
2017-12-14 08:56


oorsprong


Waarschuwing: werkt niet met Ubuntu 18+ waarop standaard cloud-init wordt uitgevoerd, die de hostnaam tijdens het opstarten beheert. - nslntmnx


antwoorden:


Het is makkelijk. Klik gewoon op het tandwielpictogram (rechtsboven in het scherm), open het scherm 'Over deze computer' (op het tandwielpictogram) en bewerk 'Apparaatnaam'.

Of gebruik in een terminal de volgende opdracht:

sudo hostname your-new-name

Hiermee wordt de hostnaam ingesteld op uw nieuwe naam totdat u opnieuw wordt opgestart. Zien man hostname en Hoe verander ik de computernaam? voor meer informatie. Gebruik niet _ in jouw naam.

Notitie

Na een herstart worden uw wijzigingen doorgevoerd /etc/hostname zal worden gebruikt, dus (zoals je al zei in de vraag), moet je nog steeds gebruiken

sudo -H gedit /etc/hostname

(of een andere editor) zodat het bestand de hostnaam bevat.

Ga als volgt te werk om te testen of het bestand correct is ingesteld:

sudo service hostname start

Je zou ook moeten bewerken /etc/hosts en verander de regel die luidt:

127.0.1.1     your-old-hostname

zodat het nu je nieuwe hostnaam bevat. (Dit is verplicht, anders werken veel opdrachten niet meer.)


593
2017-12-14 10:27



ik wil niet opnieuw beginnen - Deepak Rajput
Ik weet. dat is waarom u de opdracht 'hostnaam' moet gebruiken. Ik wilde alleen maar verduidelijken dat de opdracht 'hostname' alleen de hostnaam verandert totdat je herstart / crasht / etc. Daarna zal het de naam uit het bestand opnieuw lezen. - jasperado
Hangt er van af. Als u het commando hebt ingevoerd, hoeft u niet opnieuw op te starten. De hostnaam is al veranderd. Maar alleen TOT je volgende herstart. - jasperado
Merk op dat je ook de /etc/hosts (zie andere antwoorden) - JB.
Kortom, hoewel hostname zal de nieuwe naam onmiddellijk effect hebben, het is niet "permanent", tenzij je ook verandert /etc/hostname en /etc/hosts, omdat dit de bestanden zijn die worden gelezen na een herstart of een crash, wat u natuurlijk niet van tevoren verwacht. - Tim Parenti


Ubuntu 13.04 en later

De hostnamectl opdracht maakt deel uit van de standaardinstallatie op zowel desktop- als serveredities.

Het combineert het instellen van de hostnaam via de hostname commando en bewerking /etc/hostname. Naast het instellen van de statische hostnaam, kan het de "mooie" hostnaam instellen, die niet wordt gebruikt in Ubuntu. Helaas, bewerken /etc/hosts moet nog steeds apart worden gedaan.

hostnamectl set-hostname new-hostname

Deze opdracht maakt deel uit van de systemd-services pakket (dat vanaf Ubuntu 14.04 ook het timedatectl en localectl commando's). Terwijl Ubuntu migreert naar systemd, deze tool is de toekomst.


250
2017-08-27 21:03



Merk op dat dit niet overal beschikbaar is. Ik heb net gekeken naar mijn Ubuntu 14.04 LTS ARM-7 installatie, en hostnamectl bestaat niet Denk dat sommige smaken van Ubuntu nog niet worden gebruikt. - Stéphane
@ Stéphane de opdrachten maken deel uit van de systemd suite, maar ze zijn onafhankelijk beschikbaar. In dit geval gebruiken 13.04-14.10 systemd niet als init, omdat de opdracht beschikbaar is. - muru
@ H2ONaCl de shell-variabele wordt ingesteld bij het opstarten, open gewoon een andere shell en de hostnaamvariabele moet in orde zijn. Wat sudo betreft, de fout over de hostnaamomzetting heeft me nooit echt belet iets te doen. - muru
@ H2ONaCl ah, maar de variabelen HOSTNAME zijn niet standaard - IIRC dash en ksh hebben het niet, zsh gebruikt HOST, dus wat shell-variabelen betreft, is dit de onderkant van de heap. - muru
Werkt nog steeds in Ubuntu 18.04 LTS. - donlucacorleone


Zonder opnieuw opstarten

De hostnaam of computernaam wijzigen in ubuntu zonder herstart

Bewerk / etc / hostname en verander naar de nieuwe waarde,

nano /etc/hostname 

Bewerk / etc / hosts en wijzig de oude 127.0.1.1-regel in je nieuwe hostnaam

127.0.0.1   localhost
127.0.1.1   ubuntu.local    ubuntu   # change to your new hostname/fqdn

Notitie : ik heb het gelezen op een forum> Bewerken / etc / hosts en verander de oude 127.0.1.1 regel naar je nieuwe hostnaam (als je dit niet doet, kun je sudo niet meer gebruiken. Als je het al hebt gedaan, druk op ESC in het menu grub, kies herstel en bewerk je hostbestand naar de juiste instellingen)

Na een herstart zal uw hostnaam de nieuwe zijn die u hebt gekozen

Zonder reboot

Veranderen zonder een herstart, je kunt gewoon hostname.sh gebruiken nadat je / etc / hostname bewerkt hebt. Je moet beide hostnamen in / etc / hosts (127.0.0.1 newhost oldhost) bewaren totdat je de onderstaande opdracht uitvoert:

sudo service hostname start

Notitie : Bovenstaand commando om de wijziging actief te maken. De hostnaam die in dit bestand is opgeslagen (/ etc / hostnaam) wordt bewaard bij het opnieuw opstarten van het systeem (en wordt ingesteld met dezelfde service).


58
2018-02-13 20:16



Op Ubuntu 12.10 werkt het laatste deel niet met het volgende foutbericht sudo: unable to resolve host old-hostname. Voor dat deel werkt @jesperado-oplossing goed. - Frédéric Grosshans
Als u niet update /etc/hosts, mant dingen beginnen te falen op 12.04.2 LTS, inclusief de w commando, Apache, /sbin/reboot en nog veel meer. Zorg ervoor dat u werkt /etc/hosts - Josh
U verwijst naar beide 127.0.0.1 voor localhost en 127.0.1.1 voor een aangepaste hostnaam. Rechts? Tegen het einde van je antwoord, voor een actie zonder een rebot, u verwijst naar /etc/hosts en 127.0.0.1 newhost oldhost. Dus, er is geen behoefte aan een 127.0.1.1 adres? - Nikos Alexandris
werkte niet voor mij. ik moest gebruiken sudo nano /etc/hosts om de wijziging door te voeren; zonder sudo, gewoon nano /etc/hosts heeft de wijziging niet opgeslagen - conman253
Wat is het verschil tussen opnieuw opstarten en opnieuw opstarten? - storm


De standaardnaam is ingesteld toen u Ubuntu installeerde. Je kunt het eenvoudig wijzigen naar wat je wilt in zowel Desktop & Server door de hosts en hostname-bestanden te bewerken. Hieronder ziet u hoe:

  1. druk op Ctrlaltt op het toetsenbord om de terminal te openen. Wanneer het wordt geopend, voert u de onderstaande opdracht uit: sudo hostname NEW_NAME_HERE

Hierdoor wordt de hostnaam gewijzigd tot de volgende keer opnieuw opstarten. De wijziging is niet onmiddellijk zichtbaar in uw huidige terminal. Start een nieuwe terminal om de nieuwe hostnaam te zien.

  1. Als u de naam permanent wilt wijzigen, voert u een opdracht uit om de hostbestanden te bewerken:

    sudo -H gedit /etc/hostname en sudo -H gedit /etc/hosts

Voor Ubuntu-server zonder grafische gebruikersinterface, uitvoeren sudo vi /etc/hostname en sudo vi /etc/hosts en bewerk ze één voor één. Wijzig in beide bestanden de naam in wat u wilt en sla ze op.

Start ten slotte uw computer opnieuw op om de wijzigingen toe te passen.


42
2017-11-01 22:47





Hier is een script dat de hostnaam op de voorgeschreven manier wijzigt. Het zorgt ervoor dat niet alleen sudo maar ook X11-applicaties blijven functioneren zonder dat een herstart vereist is.

Gebruik: 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}')"

16
2018-03-07 06:30



Wat doet de laatste regel in het script su $SUDO_USER -c "xauth add $(xauth list | sed 's/^.*\//'"$NEW_HOSTNAME"'\//g' | awk 'NR==1 {sub($1,"\"&\""); print}')" do? Gewoon nieuwsgierig. - Fr0zenFyr
@ Fr0zenFyr: er is een geldig X11-authenticatietoken vereist (xauth list) en vervangt de oude hostnaam door de nieuwe hostnaam (sed). Dan awk zet citaten rond het eerste argument om xauth add omdat xauthhet invoer- en uitvoerformaat zijn niet symmetrisch. - Lucas
Bedankt voor de uitleg. Ik was altijd opnieuw opgestart om de wijzigingen door te voeren. 1 - Fr0zenFyr
@trakz: Eigenlijk is 127.a.b.c ongeacht het aantal, alle localhost volgens IETF RFC. (de meeste mensen weten dit gewoon niet, maar zoals de meeste dat niet doen, bewerk je goedgekeurd) - Fabby


Zonder herstart:

  1. verander hostnaam in /etc/hostname
  2. bijwerken /etc/hosts overeenkomstig
  3. sudo sysctl kernel.hostname=mynew.local.host

Controleer uw huidige hostnaam met hostname -f


12
2018-03-31 14:46



Met 16.04, sysctl sudo: unable to resolve host oldname, sysctl: setting key "kernel.hostname": Read-only file system. Misschien omdat het een CT is in Proxmox. - Pablo Bianchi


Om je huidige hostnaam te krijgen:

cat /etc/hostname

Dit kan in elke teksteditor worden gewijzigd. Je zou ook een ander item dan localhost moeten bijwerken tegen 127.0.0.1 in / etc / hosts.


7
2017-09-14 01:12



Of voer gewoon de opdracht "hostnaam" uit vanaf de opdrachtregel. - elomage


  1. Vervang de inhoud van /etc/hostname met de gewenste hostnaam (u kunt bewerken met sudo nano /etc/hostname)
  2. In /etc/hosts, vervang de invoer naast 127.0.1.1 met de gewenste hostnaam (u kunt bewerken met sudo nano /etc/hosts)
  3. uitvoeren sudo service hostname restart; sudo service networking restart

4
2018-05-08 18:26



Waarschuwing: werkt niet met Ubuntu 18+ waarop standaard cloud-init wordt uitgevoerd, die de hostnaam tijdens het opstarten beheert. - nslntmnx
@nslntmnx weet u dit zeker? Ik zie het in de 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. Ik heb momenteel geen Ubuntu 18, dus ik kan het pas in het weekend testen. - George


Ubuntu 16.04

Dit is zonder herstarten en zonder eindgebruik.

  • Ga naar Systeeminstellingen -> Details.
  • Daar is het. Naast Toestelnaam, er is een tekstvak.
  • Bewerk tekstvak en sluit venster.

Open terminal. Zie voor jezelf.

(Voor oudere versies is het tekstvak niet bewerkbaar.)


4
2018-03-13 18:26





sudo hostname your-new-name
sudo /etc/init.d/networking restart

Dat zou het werk moeten doen dat ik denk


3
2017-12-20 12:43



Ik denk niet dat dit een herstart zal overleven - Collin Anderson
Waarschuwing: werkt niet met Ubuntu 18+ waarop standaard cloud-init wordt uitgevoerd, die de hostnaam tijdens het opstarten beheert. - nslntmnx


Ik heb de antwoorden gelezen, maar ik denk dat u dit waarschijnlijk zoekt:

Voer deze twee commando's gewoon uit na het bewerken van de /etc/hostname het dossier.

$ sudo service hostname restart
$ exec bash

Dat is alles. U hoeft niet opnieuw op te starten. Zorg er ook voor dat u de naam ook wijzigt /etc/hosts het dossier.


3
2017-09-28 18:55



In tegenstelling tot veel andere antwoorden, wordt dit niet bijgewerkt /etc/hosts (Ik bevestigde op 14.04). - IsaacS
Waarschuwing: werkt niet met Ubuntu 18+ waarop standaard cloud-init wordt uitgevoerd, die de hostnaam tijdens het opstarten beheert. - nslntmnx