Pertanyaan Bagaimana cara mengubah nama host tanpa me-restart?


Saya ingin mengubah nama host OS tetapi saya tidak ingin memulai ulang.

Saya telah mengedit /etc/hostname tetapi membutuhkan restart untuk bisa diimplementasikan. Bagaimana cara menghindarinya?


455
2017-12-14 08:56


asal


Peringatan: tidak akan berfungsi dengan Ubuntu 18+ yang menjalankan cloud-init secara default, yang mengontrol nama host saat boot. - nslntmnx


Jawaban:


Mudah. Cukup klik ikon Roda Gigi (terletak di sudut kanan atas layar), buka layar "Tentang komputer ini" (terletak di ikon Roda Gigi) dan edit "Nama perangkat".

Atau, di terminal, gunakan perintah berikut:

sudo hostname your-new-name

Ini akan mengatur nama host ke nama baru Anda sampai Anda memulai ulang. Lihat man hostname dan Bagaimana cara mengubah nama komputer? untuk informasi lebih lanjut. Jangan gunakan _ atas namamu.

Catatan

Setelah memulai ulang perubahan Anda /etc/hostname akan digunakan, jadi (seperti yang Anda katakan dalam pertanyaan), Anda masih harus menggunakan

sudo -H gedit /etc/hostname

(atau editor lain) sehingga file tersebut berisi nama host.

Untuk menguji apakah file sudah diatur dengan benar, jalankan:

sudo service hostname start

Anda juga harus mengedit /etc/hosts dan mengubah garis yang berbunyi:

127.0.1.1     your-old-hostname

sehingga sekarang berisi nama host baru Anda. (Ini diperlukan jika tidak banyak perintah akan berhenti berfungsi.)


593
2017-12-14 10:27



saya tidak ingin memulai kembali - Deepak Rajput
Aku tahu. itulah mengapa Anda harus menggunakan perintah 'hostname'. Saya hanya ingin mengklarifikasi, bahwa perintah 'hostname' tidak hanya mengubah nama host sampai Anda me-restart / crash / etc. Setelah itu akan membaca nama dari file lagi. - jasperado
Tergantung. Jika Anda memasukkan perintah, Anda tidak perlu memulai ulang. Nama host sudah diubah. Tetapi hanya SAMPAI restart berikutnya. - jasperado
Perhatikan bahwa Anda juga harus mengubah /etc/hosts (lihat jawaban lain) - JB.
Singkatnya, meskipun hostname akan menyebabkan nama baru segera berlaku, tidak "permanen" kecuali Anda juga berubah /etc/hostname dan /etc/hosts, karena itu adalah file yang akan dibaca setelah restart atau crash, yang tentu saja, Anda mungkin tidak mengharapkan sebelumnya. - Tim Parenti


Ubuntu 13.04 dan seterusnya

Itu hostnamectl perintah adalah bagian dari instalasi default pada edisi Desktop dan Server.

Ini menggabungkan pengaturan nama host melalui hostname perintah dan pengeditan /etc/hostname. Serta pengaturan nama host statis, dapat mengatur nama host "cantik", yang tidak digunakan di Ubuntu. Sayangnya, mengedit /etc/hosts masih harus dilakukan secara terpisah.

hostnamectl set-hostname new-hostname

Perintah ini adalah bagian dari systemd-services paket (yang, seperti dari Ubuntu 14.04, juga termasuk timedatectl dan localectl perintah). Seperti Ubuntu bermigrasi ke systemd, alat ini adalah masa depan.


250
2017-08-27 21:03



Perhatikan ini tidak tersedia di mana-mana. Hanya melihat pada instalasi Ubuntu 14.04 LTS ARM-7 saya, dan hostnamectl tidak ada. Tebak beberapa rasa Ubuntu belum menggunakan sistem. - Stéphane
@ Stéphane perintah adalah bagian dari sistemd suite, tetapi mereka tersedia secara mandiri. Dalam hal ini, 13.04-14.10 tidak menggunakan systemd sebagai init, oleh perintah tersedia. - muru
@ H2ONaCl variabel shell diatur saat startup, hanya membuka shell lain dan variabel hostname harus baik-baik saja. Adapun sudo, kesalahan tentang resolusi hostname tidak pernah benar-benar mencegah saya melakukan apa pun. - muru
@ H2ONaCl ah, tetapi variablle HOSTNAME tidak standar - dasbor IIRC dan ksh tidak memilikinya, zsh menggunakan HOST, sehingga sejauh variabel shell pergi, itu adalah bagian bawah heap. - muru
Masih berfungsi di Ubuntu 18.04 LTS. - donlucacorleone


Tanpa Restart

Mengubah nama host atau nama komputer di ubuntu tanpa restart

Edit / etc / hostname dan ubah ke nilai baru,

nano /etc/hostname 

Edit / etc / hosts dan ubah 127.0.1.1 baris lama ke nama host baru Anda

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

Catatan : saya telah membacanya di forum> Edit / etc / hosts dan ubah 127.0.1.1 baris lama ke hostname baru Anda (jika Anda tidak melakukan ini, Anda tidak akan dapat menggunakan sudo lagi. Jika Anda telah melakukannya, tekan ESC pada menu grub, pilih pemulihan, dan edit file host Anda ke pengaturan yang benar)

Sekarang setelah reboot, nama host Anda akan menjadi yang baru yang Anda pilih

Tanpa Reboot

Untuk mengganti tanpa reboot, Anda bisa menggunakan hostname.sh setelah Anda mengedit / etc / hostname. Anda harus menyimpan kedua nama host Anda di / etc / hosts (127.0.0.1 newhost oldhost) sampai Anda menjalankan perintah di bawah ini:

sudo service hostname start

Catatan : Perintah di atas untuk membuat perubahan aktif. Nama host yang disimpan dalam file ini (/ etc / hostname) akan dipertahankan saat reboot sistem (dan akan diatur menggunakan layanan yang sama).


58
2018-02-13 20:16



Pada Ubuntu 12.10, bagian terakhir tidak berfungsi dengan pesan kesalahan berikut sudo: unable to resolve host old-hostname. Untuk bagian itu, solusi @jesperado bekerja dengan baik. - Frédéric Grosshans
Jika Anda tidak memperbarui /etc/hosts, mant hal mulai gagal pada 12.04.2 LTS, termasuk w perintah, Apache, /sbin/reboot dan banyak lagi. Pastikan untuk memperbarui /etc/hosts - Josh
Anda mengacu pada keduanya 127.0.0.1 untuk localhost dan 127.0.1.1 untuk nama host khusus. Kanan? Kemudian, menjelang akhir jawaban Anda, untuk sebuah aksi tanpa memberontak, referensi Anda /etc/hosts dan 127.0.0.1 newhost oldhost. Jadi, tidak ada kebutuhan untuk a 127.0.1.1 alamat? - Nikos Alexandris
tidak bekerja untukku. saya harus menggunakan sudo nano /etc/hosts agar perubahan berlaku; tanpa sudo, adil nano /etc/hosts tidak menyimpan perubahan - conman253
Apa perbedaan antara restart dan reboot? - storm


Nama default ditetapkan saat Anda menginstal Ubuntu. Anda dapat dengan mudah mengubahnya ke apa pun yang Anda inginkan di Desktop & Server dengan mengedit file host dan hostname. Di bawah ini adalah caranya:

  1. tekan CtrlAltt pada keyboard untuk membuka terminal. Ketika terbuka, jalankan perintah di bawah ini: sudo hostname NEW_NAME_HERE

Ini akan mengubah nama host hingga reboot berikutnya. Perubahan tidak akan langsung terlihat di terminal Anda saat ini. Mulai terminal baru untuk melihat nama host baru.

  1. Untuk mengubah nama secara permanen, jalankan perintah untuk mengedit file host:

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

Untuk server Ubuntu tanpa GUI, jalankan sudo vi /etc/hostname dan sudo vi /etc/hosts dan mengeditnya satu per satu. Di kedua file, ubah nama menjadi apa yang Anda inginkan dan simpan.

Terakhir, nyalakan ulang komputer Anda untuk menerapkan perubahan.


42
2017-11-01 22:47





Berikut ini skrip yang mengubah nama host dengan cara yang ditentukan. Ini memastikan tidak hanya itu sudo tetapi juga aplikasi X11 terus berfungsi tanpa perlu dihidupkan ulang.

Pemakaian: 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



Apa baris terakhir dalam skrip su $SUDO_USER -c "xauth add $(xauth list | sed 's/^.*\//'"$NEW_HOSTNAME"'\//g' | awk 'NR==1 {sub($1,"\"&\""); print}')" melakukan? Hanya penasaran. - Fr0zenFyr
@ Fr0zenFyr: diperlukan token autentikasi X11 yang valid (xauth list) dan menggantikan nama host lama dengan nama host baru (sed). Kemudian awk menempatkan kutipan di sekitar argumen pertama xauth add karena xauthFormat input dan output tidak simetris. - Lucas
Terima kasih untuk penjelasannya. Saya selalu melakukan reboot agar perubahan diterapkan. +1 - Fr0zenFyr
@trakz: Sebenarnya 127.a.b.c berapa pun jumlahnya, semua localhost sesuai IETF RFC. (kebanyakan orang tidak tahu ini, tetapi karena kebanyakan tidak, edit disetujui) - Fabby


Tanpa restart:

  1. ubah nama host di /etc/hostname
  2. memperbarui /etc/hosts demikian
  3. sudo sysctl kernel.hostname=mynew.local.host

Periksa nama host Anda saat ini dengan hostname -f


12
2018-03-31 14:46



Dengan 16.04, sysctl sudo: unable to resolve host oldname, sysctl: setting key "kernel.hostname": Read-only file system. Mungkin karena ada CT di dalam Proxmox. - Pablo Bianchi


Untuk mendapatkan nama host Anda saat ini:

cat /etc/hostname

Ini dapat diubah dalam editor teks apa pun. Anda juga harus memperbarui entri selain localhost terhadap 127.0.0.1 di / etc / hosts.


7
2017-09-14 01:12



Atau jalankan saja perintah "hostname" dari baris perintah. - elomage


  1. Ganti konten /etc/hostname dengan nama host yang diinginkan (Anda dapat mengedit dengan sudo nano /etc/hostname)
  2. Di /etc/hosts, ganti entri di sebelah 127.0.1.1 dengan nama host yang diinginkan (Anda dapat mengedit dengan sudo nano /etc/hosts)
  3. Menjalankan sudo service hostname restart; sudo service networking restart

4
2018-05-08 18:26



Peringatan: tidak akan berfungsi dengan Ubuntu 18+ yang menjalankan cloud-init secara default, yang mengontrol nama host saat boot. - nslntmnx
@nslntmnx apakah Anda yakin tentang ini? Saya melihat di 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. Saat ini saya tidak memiliki Ubuntu 18 sehingga saya tidak dapat mengujinya sampai akhir pekan. - George


Ubuntu 16.04

Ini tanpa mengulang kembali dan tanpa penggunaan terminal apa pun.

  • Pergi ke Pengaturan Sistem -> Detail.
  • Itu ada. Di samping Nama perangkat, ada kotak teks.
  • Edit kotak teks dan tutup jendela.

Buka terminal. Lihat sendiri.

(Untuk versi yang lebih lama, kotak teks tidak dapat diedit.)


4
2018-03-13 18:26





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

Itu harus melakukan pekerjaan yang saya pikir


3
2017-12-20 12:43



Saya tidak berpikir ini akan bertahan hidup kembali - Collin Anderson
Peringatan: tidak akan berfungsi dengan Ubuntu 18+ yang menjalankan cloud-init secara default, yang mengontrol nama host saat boot. - nslntmnx