Bagaimana cara mengubah nama host di CentOS 6.5?


48

Sepertinya saya tidak dapat mengubah nama host pada host CentOS 6.5 saya. Saya mengikuti instruksi yang saya temukan di sini: http://www.rackspace.com/knowledge_center/article/centos-hostname-change

Saya mengatur /etc/hostsseperti saya ...

    [root@mig-dev-006 ~]# cat /etc/hosts
    127.0.0.1   localhost localhost.localdomain 
    192.168.32.128  ost-dev-00.domain.com ost-dev-00
    192.168.32.129  ost-dev-01.domain.com ost-dev-01

... maka saya membuat /etc/sysconfig/networkfile saya seperti itu ...

    [root@mig-dev-006 ~]# cat /etc/sysconfig/network
    NETWORKING=yes
    HOSTNAME=ost-dev-00.domain.com
    NTPSERVERARGS=iburst

... maka aku berlari hostnameseperti itu ...

    [root@mig-dev-006 ~]# hostname ost-dev-00.domain.com

... dan kemudian saya menjalankan bash dan semuanya tampak baik-baik saja ...

    [root@mig-dev-006 ~]# bash

... tetapi ketika saya me-restart jaringan saya, nama host lama kembali:

    [root@ost-dev-00 ~]# /etc/init.d/network restart
    Shutting down interface eth0:  Device state: 3 (disconnected)
                                                               [  OK  ]
    Shutting down loopback interface:                          [  OK  ]
    Bringing up loopback interface:                            [  OK  ]
    Bringing up interface eth0:  Active connection state: activating
    Active connection path: /org/freedesktop/NetworkManager/ActiveConnection/6
    state: activated
    Connection activated
                                                               [  OK  ]
    [root@ost-dev-00 ~]# bash
    [root@mig-dev-006 ~]# 

... Saya tidak bisa mengetahuinya. Apa yang saya lakukan salah di sini.


1
Sudahkah Anda mengedit /etc/hostnamefile Anda ?
Anthon

Tidak ada /etc/hostnamefile. [root@smp-mig-dev-006 ~]# ls -l /etc/hostnamekeluaranls: cannot access /etc/hostname: No such file or directory
Red Cricket

Mungkin menjadi hal Centos. Apa yang dikatakan halaman manual Anda tentang keabadian hostname somename, sehingga memiliki efek yang bertahan lama? (Jika tidak, mengapa Anda melakukan panggilan itu?)
Anthon

3
Saya pikir /etc/hostnamedalam CentOS 7 tetapi tidak dalam CentOS 6.
Pavel Šimerda

Saya menyadari ini sudah tua, tetapi saya mencium NetworkManager di tempat kerja, baik itu atau Anda mungkin memiliki HOSTNAME = diatur dalam file lain dari jaringan (yaitu, dalam skrip jaringan). File / etc / hostname tidak digunakan dalam CentOS 6 (ini adalah hal systemd; itu berarti CentOS 7 dan lebih tinggi). Periksa isi file / etc / sysconfig / network-scripts / ifcfg-eth0; apa isinya? Catatan: Jika Anda melihat skrip if_post Redhat di skrip jaringan /, Anda akan melihat bahwa set_hostname menjalankan "hostname $ HOSTNAME", di mana HOSTNAME adalah variabel shell yang disetel dalam file jaringan atau file ifcfg-eth0.
Mike S

Jawaban:


67

untuk mengubah nama host secara permanen, Anda perlu mengubahnya di dua tempat:

vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=newHostName

dan: ide yang bagus jika Anda memiliki aplikasi yang perlu menyelesaikan IP nama host)

vi /etc/hosts 
127.0.0.1 newHostName
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

lalu

 rebooting the system

7
Pada akhir dari dua perubahan ini menambahkan hostname newHostName, tidak perlu reboot saya pikir
Edakos

4
Mengedit file / etc / hosts sepertinya tidak diperlukan
jgritty

2
Jawabannya telah diterima, tetapi pertama-tama, /etc/hostsperubahan ada hanya untuk membuat nama host dapat diatasi, bukan untuk mengubahnya, dan /etc/sysconfig/networkterlihat sama seperti di OP. Adakah yang bisa menjelaskan apa sebenarnya yang perlu diubah OP untuk membuatnya bekerja?
Pavel Šimerda

3
Saya pikir jawaban yang benar harus berfungsi sebagai jawaban untuk pertanyaan itu. Mengulang data dari pertanyaan itu baik selama jawabannya mengatakan OP mengonfigurasinya dengan benar tetapi tidak melakukan tindakan yang diperlukan untuk memuat konfigurasi baru (mis. Reboot).
Pavel Šimerda

2
Reboot tidak perlu. Periksa strace -f hostname bla. Kernel mendapatkan pesan segera. / etc / hosts tidak mempengaruhi nama host host, setidaknya dalam CentOS 6.5 (dan 7). Dan jawaban ini salah karena tidak ada perintah hostname yang menginformasikan kernel tentang nama hostnya.
Mike S

65

Solusi untuk CentOS 7 dapat ditemukan di sini :

hostnamectl set-hostname <new hostname>

3
"hostnamectl" adalah satu-satunya solusi yang bekerja untuk saya pada rilis CentOS Linux 7.2.1511
AJN

..dan reboot, dalam kasus saya.
WesternGun

Saya tidak berpikir Anda perlu memulai ulang hanya dengan masuk kembali harus bekerja
FearlessHyena

5
Pertanyaannya adalah tentang CentOS 6.5. CentOS 7 adalah binatang yang sama sekali berbeda dan jawaban ini bukan di sini.
Harald

15

Anda dapat mengubah nama host Anda dengan satu perintah.

  • Perintah: hostname- ini menampilkan nama host lama
  • Perintah: hostname <new name>-Ini menetapkan nama host baru

Contoh

$ hostname mynewhost

Untuk tetap menggunakan nama host baru saat reboot

edit / etc / sysconfig / file jaringan agar terlihat seperti di bawah ini

NETWORKING=yes
HOSTNAME=myhostanme

Untuk bantuan video


Saya percaya ini adalah jawaban yang paling benar. Layak menambahkan running: nama host pria; menunjukkan lebih banyak opsi untuk mengatur cantik, sementara, statis dll.
ekerner

Saya pikir itu tidak cukup untuk gigih di reboot. Anda juga perlu memodifikasi / etc / sysconfig / file jaringan.
Pozinux

6

Terlepas dari jawaban yang sudah disediakan untuk CentOS 6.5,

CentOS 7 juga memiliki alat antarmuka pengguna berbasis teks untuk mengubah nama host ( dan pengaturan jaringan lainnya ), bagian dari Network Manager:

nmtui

mulai antarmuka pengguna ini:

masukkan deskripsi gambar di sini

yang memiliki opsi untuk Set system hostname.

Antarmuka pengguna teks dari NetworkManager diinstal secara default di gambar CentOS-7-x86_64-DVD-1511.iso, install dasar. Jika milik Anda tidak memilikinya, Anda dapat menginstalnya dengan perintah berikut:

yum install NetworkManager-tui

2

Saya harus melakukan ini untuk banyak mesin. Berikut ini adalah skrip python sederhana untuk membantu Anda. Cukup berikan nama host baru sebagai argumen pertama ke skrip.

misalnya: jika Anda memberi nama skrip changeHost.py kemudian jalankan sebagai

changeHost.py [NewHostName]

di mana NewHostName adalah nama host yang Anda inginkan.

Pastikan juga untuk menjalankan skrip ini sebagai root.



#!/usr/bin/env python
import os

from sys import argv
script, newHostName = argv

print "Modifying network file..."
target = open("/etc/sysconfig/network","w")
target.truncate()
target.write("NETWORKING=yes\n")
target.write("HOSTNAME=")
target.write(newHostName)
target.write("\n")
target.close()

print "Modifying hosts file..."
target = open("/etc/hosts","w")
target.truncate()
target.write("127.0.0.1 ")
target.write(newHostName)
target.write(" localhost.localdomain localhosts\n")
target.close()

print "Set new hostname to %r" % newHostName
os.system('/bin/hostname ' + newHostName)

2
Hmm itu naskah yang jelek. Saya ingin tahu apakah Wayang akan menjadi alat yang lebih baik untuk berurusan dengan nama host.
Red Cricket


4
Script ini sekitar 3 kali lebih lama dari yang seharusnya. Python adalah alat yang salah untuk pekerjaan itu. Skrip bash akan jauh lebih pendek, lebih mudah dibaca, dan lebih bisa dipelihara.
Mike S

2

Tidak diperlukan reboot untuk mengubah nama host pada CentOS 6.5.

Perintah berikut menginformasikan kernel dari nama host baru:

# hostname new_hostname

Perintah berikut agar nama host persisten saat reboot:

# sed -i "s/^HOSTNAME=.*/HOSTNAME=new_hostname/g" /etc/sysconfig/network

2

Jika Anda menggunakan Centos 7.x. Masukkan perintah berikut.

nmtui

Ini akan memiliki opsi untuk mengatur nama host sistem . Tekan Enter di atasnya.

Tulis nama host Anda.

Klik Oke.

Sekarang, periksa dengan nama host perintah .

Itu akan memiliki nama host yang disimpan.


1

Sayangnya saya tidak dapat mengubah nama host dengan membuat entri di:

/ etc / sysconfig / network

dan

/ etc / hosts file

Namun saya dapat mengubah nama host dengan mengedit file di bawah ini:

vi /etc/hostname
server01

Mulai ulang dan uji nama host dengan:

hostname

2
Perhatikan komentar pada pernyataan OP yang /etc/hostnameada di CentOS 7, tetapi tidak pada CentOS 6
Fox
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.