Ana bilgisayarı adını yeniden başlatmadan nasıl değiştiririm?


497

İşletim sistemi ana bilgisayar adını değiştirmek istiyorum ancak yeniden başlatmak istemiyorum.

Düzenledim /etc/hostnameancak uygulanması için yeniden başlatılması gerekiyor. Bu nasıl önlenir?


3
Uyarı: önyüklemede ana bilgisayar adını denetleyen varsayılan olarak cloud-init çalıştıran Ubuntu 18+ ile çalışmaz.
nslntmnx

@ nslntmnx, Teşekkürler!
MiB

Yanıtlar:


642

Bu kolay. Gear (ekranın sağ üst köşesinde bulunan) simgesine tıklayın, "Bu bilgisayar hakkında" ekranını açın (Gear simgesinde bulunur) ve "Aygıt adı" nı düzenleyin.

Veya bir terminalde aşağıdaki komutu kullanın:

sudo hostname your-new-name

Bu, siz yeniden başlatana kadar ana bilgisayar adını yeni adınıza ayarlayacaktır. Bkz man hostnameve nasıl bilgisayar adını değiştiririm? daha fazla bilgi için. _Adınızı kullanmayın .

Not

Yeniden başlattıktan sonra yaptığınız değişiklikler /etc/hostnamekullanılacaktır, bu nedenle (soruda söylediğiniz gibi), yine de kullanmalısınız.

sudo -H gedit /etc/hostname

(veya başka bir düzenleyici), böylece bu dosya ana bilgisayar adını içerir.

Dosyanın doğru kurulduğunu test etmek için şunu çalıştırın:

sudo service hostname start

Ayrıca /etc/hostsokuyan satırı da düzenlemeli ve değiştirmelisiniz:

127.0.1.1     your-old-hostname

Böylece şimdi yeni ana bilgisayar adınızı içerir. (Bu gereklidir, aksi takdirde birçok komut çalışmayı durduracaktır.)


4
yeniden başlatmak istemiyorum
Deepak Rajput

23
Biliyorum. bu yüzden 'hostname' komutunu kullanmalısın. Ben sadece açıklığa kavuşturmak istedim, 'hostname' komutunun, / crash / etc yeniden başlatılıncaya kadar sadece host adını değiştirdiğini. Daha sonra adı dosyadan tekrar okuyacak.
jasperado,

5
Bağlı olmak. Komuta girdiyseniz yeniden başlatmanız gerekmez. Ana bilgisayar adı zaten değiştirildi. Ancak bir sonraki yeniden başlatma işleminizde yalnızca UNTIL.
jasperado

19
Ayrıca /etc/hosts(diğer cevaplara bakınız)
JB'yi

9
Kısacası, hostnameyeni adın hemen yürürlüğe girmesine neden olacak olsa da, siz de değişmediğiniz sürece "kalıcı" değildir /etc/hostnameve /etc/hostsbunlar, bir yeniden başlatmadan veya bir çökmeden sonra okunacak olan dosyalar olduğundan, ki vaktinden bekliyoruz.
Tim Parenti

280

Ubuntu 13.04 sonrası

hostnamectlKomut Masaüstü ve Sunucu sürümleri hem varsayılan yüklemesinin bir parçasıdır.

Ana bilgisayar adının ayarlanması hostnamekomut ve düzenleme ile birleştirir /etc/hostname. Statik ana bilgisayar adını ayarlamanın yanı sıra, Ubuntu'da kullanılmayan "güzel" ana bilgisayar adını da ayarlayabilir. Ne yazık ki, düzenleme /etc/hostshala ayrı olarak yapılmalıdır.

hostnamectl set-hostname new-hostname

Bu komut systemd-servicespaketin bir parçasıdır (Ubuntu 14.04'ten itibaren timedatectlve localectlkomutlarını da içerir ). Ubuntu geçerken systemd, bu araç gelecek.


1
Bunun her yerde bulunmadığını unutmayın. Ubuntu 14.04 LTS ARM-7 kurulumuma yeni baktım ve hostnamectlmevcut değil. Sanırım Ubuntu'nun bazı lezzetleri henüz sistem kullanmıyor.
Stéphane

1
@ Stéphane komutları systemd paketinin bir parçasıdır, ancak bağımsız olarak kullanılabilirler. Bu durumda, 13.04-14.10 sistemi init olarak kullanmaz, komut tarafından kullanılabilir.
muru

1
@ H2ONaCl kabuk değişkeni başlangıçta ayarlanır, sadece başka bir kabuk açın ve ana bilgisayar adı değişkeni iyi olmalıdır. Sudo gelince, ana bilgisayar adı çözümlemesi ile ilgili hata aslında hiçbir şey yapmamı engellemedi.
muru

1
@ H2ONaCl ah, ancak HOSTNAME değişkeni standart değildir - IIRC çizgi ve ksh buna sahip değildir, zsh HOST kullanır, yani kabuk değişkenleri gidince, yığının dibinde bulunur.
muru

3
Hala Ubuntu 18.04 LTS'de çalışıyor.
LucaM

63

Yeniden başlatma olmadan

Ana bilgisayarı veya bilgisayar adını ubuntu'da yeniden başlatmadan değiştirme

/ Etc / hostname dosyasını düzenleyin ve yeni değere geçin,

nano /etc/hostname 

/ Etc / hosts dosyasını düzenleyin ve eski 127.0.1.1 satırını yeni ana bilgisayar adınızla değiştirin

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

Not : Ben bunu bir forum> Edit / etc / hosts dosyasında okudum ve eski 127.0.1.1 satırını yeni ana bilgisayar adınızla değiştirdim (eğer bunu yapmazsanız, artık sudo kullanamazsınız. , grub menüsünde ESC tuşuna basın, kurtarmayı seçin ve ana bilgisayar dosyanızı doğru ayarlara getirin)

Şimdi yeniden başlattıktan sonra, ana makine adınız seçtiğiniz yeni adınız olacak

Yeniden Başlatma Olmadan

Yeniden başlatmadan değiştirmek için , / etc / hostname dosyasını düzenledikten sonra sadece hostname.sh dosyasını kullanabilirsiniz. Her iki ana bilgisayar adınızı da / etc / hosts dosyasında (127.0.0.1 newhost oldhost) tutmalısınız.

sudo service hostname start

Not : Değişikliği etkin hale getirmek için yukarıdaki komut. Bu dosyaya kaydedilen ana bilgisayar adı (/ etc / hostname), sistem yeniden başlatıldığında korunacaktır (ve aynı servis kullanılarak ayarlanacaktır).


Ubuntu 12.10'da son bölüm aşağıdaki hata mesajı ile çalışmıyor sudo: unable to resolve host old-hostname. Bu kısım için, jesperado çözümü iyi çalışıyor.
Frederic Grosshans

3
Güncelleme yapmazsanız , Apache komutu, Apache ve /etc/hostsdiğerleri de dahil olmak üzere 12.04.2 LTS'de başarısız olmaya başlar . Güncellediğinizden emin olunw/sbin/reboot/etc/hosts
Josh

Her iki başvurmak 127.0.0.1için localhostve 127.0.1.1özel bir ana makine adı için. Sağ? Sonra, cevabınızın sonuna doğru, bir rebot olmadan bir eylem için , /etc/hostsve 127.0.0.1 newhost oldhost. Yani bir 127.0.1.1adrese gerek yok mu?
Nikos Alexandris

1
benim için işe yaramadı. sudo nano /etc/hostsdeğişikliğin yürürlüğe girmesi için kullanmak zorunda kaldım ; sudo olmadan, sadece nano /etc/hostsdeğişikliği kaydetmedim
conman253

2
Yeniden başlatma ve yeniden başlatma arasındaki fark nedir?
fırtına

43

Ubuntu'yu kurarken varsayılan ad ayarlandı. Ana bilgisayarları ve ana bilgisayar adı dosyalarını düzenleyerek, hem Masaüstünde hem de Sunucu'da istediğinizi kolayca değiştirebilirsiniz. Aşağıda nasıl:

  1. CtrlAlttTerminali açmak için klavyede basın . Açıldığında, aşağıdaki komutu çalıştırın:sudo hostname NEW_NAME_HERE

Bu, ana bilgisayar adını bir sonraki yeniden başlatmaya kadar değiştirir. Değişiklik mevcut terminalinizde hemen görünmeyecek. Yeni ana bilgisayar adını görmek için yeni bir terminal başlatın.

  1. Adı kalıcı olarak değiştirmek için, ana bilgisayar dosyalarını düzenlemek için komutu çalıştırın:

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

GUI'siz Ubuntu sunucusu için çalıştırmak sudo vi /etc/hostnameve sudo vi /etc/hostsve teker teker düzenleyin. Her iki dosyada da adını istediğin şekilde değiştir ve kaydet.

Son olarak, değişiklikleri uygulamak için bilgisayarınızı yeniden başlatın.


16

Ana bilgisayar adını belirtilen şekilde değiştiren bir komut dosyası. Yalnızca sudoX11 uygulamalarının yeniden başlatılması gerekmeden çalışmaya devam etmesini sağlar.

Kullanımı: 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}')"

Koddaki son satır ne su $SUDO_USER -c "xauth add $(xauth list | sed 's/^.*\//'"$NEW_HOSTNAME"'\//g' | awk 'NR==1 {sub($1,"\"&\""); print}')"işe yarar? Sadece merak.
Fr0zenFyr

4
@ Fr0zenFyr: geçerli bir X11 kimlik doğrulama token ( xauth list) alır ve eski ana bilgisayar adını yeni ana bilgisayar adı ( sed) ile değiştirir. Sonra awkilk argümanın etrafına tırnak koyar, xauth addçünkü xauthgiriş ve çıkış formatı simetrik değildir.
Lucas

Açıklama için teşekkürler. Değişikliklerin etkili olması için her zaman yeniden başlattım. +1
Fr0zenFyr

@trakz: Aslında 127.abc, sayı ne olursa olsun, IETF RFC'ye göre hepsi yerel ana bilgisayardır. (çoğu kişi bunu bilmez, ancak çoğu kişi gibi, düzenlemeyi onayladı)
Fabby

14

Yeniden başlatma olmadan:

  1. ana bilgisayar adını değiştir /etc/hostname
  2. /etc/hostsbuna göre güncelleyin
  3. sudo sysctl kernel.hostname=mynew.local.host

Geçerli ana bilgisayar adınızı şununla kontrol edin: hostname -f


16.04, sysctl ile sudo: unable to resolve host oldname, sysctl: setting key "kernel.hostname": Read-only file system. Belki de Proxmox içindeki bir BT olduğu için.
Pablo'da

14

Cloud-init (Ubuntu 18+) ana bilgisayar adı kalıcılığı

Yukarıdaki yaklaşımlar ( hostnamectl,, etc/hostnamevb.), Hemen anasistem adı değişikliği için çalışsa da, bulut-init - anasistem adının ayarını kontrol edebilen - diğer birçok şeyin arasında bulunur. Bu nedenle eğer bulut-init kuruluysa, yeniden başlatmanın ardından takılmayacaktır. Değişikliğin yeniden başlatmanın ardından kalmasını istiyorsanız, cloud-init config dosyalarını düzenlemeniz gerekir, cloud-in'in hostname set / update modülünü devre dışı bırakın :

sudo sed 's/preserve_hostname: false/preserve_hostname: true/' /etc/cloud/cloud.cfg

veya cloud-init'i tamamen devre dışı bırak:

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

1
Lütfen bu cevabı yenile. Bu benim için harika çalıştı. Diğer cevaplar cloud-init'in benimsenmesiyle işe yaramaz.
nslntmnx

@nslntmnx varsayılan olarak 18.04 masaüstünde, sadece sunucuda kuruluyor mu? Masaüstü yok /etc/cloud/cloud.cfg. Paket adı nedir? Sadece cloud-init?
Ciro Santilli

1
Ayrıca, yalnızca geçersiz kılmayı devre dışı bırakmak yerine ana bilgisayar adını cloud-init ile değiştirmenin bir yolu var mı?
Ciro Santilli,

1
Evet bulut init kullanarak birçok ayarları değiştirebilirsiniz - Burada hostname ayarlamak için bir bağlantı - docs cevabım bağlantısını bkz: cloudinit.readthedocs.io/en/latest/topics/...
Pierz

7

Mevcut ana bilgisayar adınızı almak için:

cat /etc/hostname

Bu, herhangi bir metin düzenleyicide değiştirilebilir. Ayrıca localhost dışındaki bir girişi 127.0.0.1 / etc / hosts dosyasında güncellemeniz gerekir.


1
Veya sadece komut satırından "hostname" komutunu çalıştırın.
elomage

4
  1. İçeriğini /etc/hostnameistediğiniz ana bilgisayar adıyla değiştirin (düzenleyebilirsiniz sudo nano /etc/hostname)
  2. İçinde /etc/hosts, 127.0'ın yanındaki girişi değiştirin. İstediğiniz ana bilgisayar adıyla 1 .1 (düzenleyebilirsiniz sudo nano /etc/hosts)
  3. Gerçekleştirmek, yerine getirmek, idam etmek sudo service hostname restart; sudo service networking restart

Uyarı: önyüklemede ana bilgisayar adını denetleyen varsayılan olarak cloud-init çalıştıran Ubuntu 18+ ile çalışmaz.
nslntmnx

@ nslntmnx bundan emin misiniz? Cloud-config.txt dosyasında # 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.görüyorum ki şu anda Ubuntu 18'im yok, bu yüzden hafta sonlarına kadar test edemiyorum.
George,

4

Ubuntu 16.04

Bu yeniden başlatma olmadan ve herhangi bir terminal kullanımı olmadan.

  • Git Sistem Ayarları -> Ayrıntılar .
  • İşte burada. Aygıt adının yanında bir metin kutusu vardır.
  • Metin kutusunu düzenleyin ve pencereyi kapatın.

Terminali aç. Kendiniz görün.

(Daha eski sürümler için, metin kutusu düzenlenemez.)


4

Orijinal Yazarın sorusuna klasik cevap düzenlediğiniz bir kez, yani /etc/hostname, bunu çalıştırarak yeniden başlatma olmadan uygulamak yapmak hostname (1) ile -F( --fileroot olarak) seçeneği:

sudo hostname -F /etc/hostname

Hostname (5) ile işleme /etc/hostnameve söz konusu programı şimdi yirmi yıldır Debian ve türevleri aynı olmuştur ve paket o sağlayarak etiketlendiği esansiyel ve gerekli ve IIRC ilk satırlarında anlamıyla aynı şeyi kullandık on yıl ( /etc/init/hostname.confhala içeriyor), bu yüzden kimsenin bundan zaten bahsetmediğine gerçekten şaşırdığımı söylemeliyim :)


Uyarı: önyüklemede ana bilgisayar adını denetleyen varsayılan olarak cloud-init çalıştıran Ubuntu 18+ ile çalışmaz.
nslntmnx

@ nslntmnx erm, ne? Ubuntu 18, cloud-init'i varsayılan olarak kullanmak için hangi yeni bağımlılığı sağladı? Buluta uyarlanmış bazı görüntüler düşünüyor olabilirsiniz; bu durumda, özel bulut sağlama araçlarını kullanmaları sürpriz olmamalıdır.
Josip Rodin

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

Bence bu işi yapmalı


5
Bunun bir yeniden başlatmadan kurtulacağını sanmıyorum
Collin Anderson

Uyarı: önyüklemede ana bilgisayar adını denetleyen varsayılan olarak cloud-init çalıştıran Ubuntu 18+ ile çalışmaz.
nslntmnx

3

Cevapları okudum, ama sanırım bunu aradığınızı düşünüyorum:

/etc/hostnameDosyayı düzenledikten sonra bu iki komutu yerine getirmeniz yeterlidir .

$ sudo service hostname restart
$ exec bash

Bu kadar. Yeniden başlatmaya gerek yoktur.Ayrıca dosyadaki adı da değiştirdiğinizden emin olun /etc/hosts.


Diğer birçok cevaptan farklı olarak, bu güncelleme /etc/hosts(14.04 tarihinde onayladım).
IsaacS

Uyarı: önyüklemede ana bilgisayar adını denetleyen varsayılan olarak cloud-init çalıştıran Ubuntu 18+ ile çalışmaz.
nslntmnx

2

Ubuntu 16.04

DigitalOcean Topluluğu'ndan gelen cevaba dayanan çözüm .

Edit hosts dosyasını.

$ sudo nano /etc/hosts

Eski adı yenisiyle değiştirin .

127.0.0.1 localhost newname

Yeni ana bilgisayar adını ayarlayın.

$ sudo hostnamectl set-hostname newname


Uyarı: önyüklemede ana bilgisayar adını denetleyen varsayılan olarak cloud-init çalıştıran Ubuntu 18+ ile çalışmaz.
nslntmnx
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.