CentOS 6.5でホスト名を変更するには?


49

CentOS 6.5ホストのホスト名を変更できないようです。ここで見つけた指示に従います:http : //www.rackspace.com/knowledge_center/article/centos-hostname-change

私の/etc/hostsように設定します...

    [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

...次に、そのように/etc/sysconfig/networkファイルを作成します...

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

...そして、私はそのhostnameように走ります...

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

...そして、bashを実行すると、すべてがうまくいくようです...

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

...しかし、ネットワークを再起動すると、古いホスト名が返されます。

    [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 ~]# 

...わかりません。ここで私は何を間違えていますか。


1
/etc/hostnameファイルを編集しましたか?
アントン14

/etc/hostnameファイルはありません。[root@smp-mig-dev-006 ~]# ls -l /etc/hostname出力ls: cannot access /etc/hostname: No such file or directory
レッドクリケット14

Centosのものかもしれません。あなたのマンページhostname somenameは、永続的な効果があることの永続性について何を教えていますか?(そうでなければ、なぜあなたはその電話をしますか?)
アントン14

3
私が思うに/etc/hostnameCentOSの7でなく、CentOSの6である
パベルŠimerda

私はこれが古いことを知っていますが、私は職場でNetworkManagerの匂いを嗅ぎます。それは、ネットワーク以外のファイル(つまり、ネットワークスクリプト)にHOSTNAME =が設定されている可能性があります。/ etc / hostnameファイルはCentOS 6では使用されません(これはsystemdのものです。つまり、CentOS 7以降を意味します)。/ etc / sysconfig / network-scripts / ifcfg-eth0ファイルの内容を確認してください。何が入っているの?注:network-scripts /にあるRedhatのif_postスクリプトを見ると、set_hostnameは単に「hostname $ HOSTNAME」を実行していることがわかります。ここで、HOSTNAMEはネットワークファイルまたはifcfg-eth0ファイルで設定されたシェル変数です。
マイクS

回答:


67

ホスト名を永続的に変更するには、次の2つの場所で変更する必要があります。

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

および:ホスト名のIPを解決する必要のあるアプリケーションがある場合は良い考えです)

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

その後

 rebooting the system

7
この二つの変更は、追加の終わりにhostname newHostName、私が思うに再起動する必要はありません
Edakos

4
/ etc / hostsファイルを編集する必要がしていないようです
jgritty

2
答えは受け入れられましたが、まず、/etc/hosts変更はホスト名を解決可能にするためだけであり、変更するためではなく/etc/sysconfig/network、OPと同じように見えます。OPを機能させるためにOPを変更するために正確に必要なことは誰でも説明できますか
パベルシメルダ

3
正解は質問に対する答えとして機能するはずです。OPが正しく設定したが、新しい設定を読み込むために必要なアクション(再起動など)を実行しなかったという答えが返ってくる限り、質問からデータを繰り返すことは適切です。
パベルシメルダ

2
再起動する必要はありません。strace -f hostname blahを確認します。カーネルはすぐにメッセージを受け取ります。/ etc / hostsは、少なくともCentOS 6.5(および7)ではホストのホスト名に影響しません。そして、ホスト名をカーネルに通知するhostnameコマンドが欠落しているという点で、この答えは間違っています。
マイクS

65

CentOS 7のソリューションは次の場所にあります

hostnamectl set-hostname <new hostname>

3
「hostnamectl」は、CentOS Linuxリリース7.2.1511
AJN

..そして私の場合は再起動します。
WesternGun

私はあなただけで動作するはずでrelogging再起動する必要はないと思う
FearlessHyena

5
問題はCentOS 6.5についてです。CentOS 7は完全に異なる獣であり、この答えはここに属していません。
ハラルド

15

単一のコマンドでホスト名を変更できます。

  • コマンド:hostname-これは古いホスト名を表示します
  • コマンド:hostname <new name>-thisは新しいホスト名を設定します

$ hostname mynewhost

再起動後も新しいホスト名を保持するため

/ etc / sysconfig / networkファイルを以下のように編集し ます

NETWORKING=yes
HOSTNAME=myhostanme

ビデオのヘルプについて


これが最も正しい答えだと思います。その実行を追加する価値がある:man hostname; pretty、transient、staticなどを設定するためのより多くのオプションを示しています
ekerner

再起動時に持続するだけでは不十分だと思います。/ etc / sysconfig / networkファイルも変更する必要があります。
ポジヌックス

6

CentOS 6.5で既に提供されている回答とは別に、

CentOS 7には、ネットワークマネージャーの一部であるホスト名およびその他のネットワーク設定を変更するためのテキストベースのユーザーインターフェイスツールもあります

nmtui

このユーザーインターフェイスを起動します。

ここに画像の説明を入力してください

これにはオプションがありますSet system hostname

NetworkManagerのテキストユーザーインターフェイスは、デフォルトでCentOS-7-x86_64-DVD-1511.isoイメージのベースインストールにインストールされます。持っていない場合は、次のコマンドでインストールできます。

yum install NetworkManager-tui

2

たくさんのマシンのためにこれをしなければなりませんでした。ここにあなたを助けるための簡単なpythonスクリプトがあります。スクリプトの最初の引数として新しいホストの名前を指定するだけです。

たとえば、スクリプトにchangeHost.pyという名前を付けた場合、次のように実行します。

changeHost.py [NewHostName]

ここで、NewHostNameは目的のホスト名です。

また、このスクリプトを必ずルートとして実行してください。



#!/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
うーん、それはいスクリプトです。Puppetがホスト名を処理するためのより良いツールになるのだろうか。
レッドクリケット


4
このスクリプトは、必要な長さの約3倍です。Pythonは、この仕事にとって間違ったツールです。bashスクリプトは、はるかに短く、読みやすく、保守しやすくなります。
マイクS

2

CentOS 6.5でホスト名を変更するために再起動する必要はありません。

次のコマンドは、新しいホスト名をカーネルに通知します。

# hostname new_hostname

次のコマンドにより、ホスト名は再起動後も持続します。

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

2

Centos 7.xを使用している場合。次のコマンドを挿入します。

nmtui

システムのホスト名設定するオプションがあります。Enterを押します。

ホスト名を書きます。

OKをクリックします。

次に、コマンドhostnameで確認します。

保存されたホスト名があります。


1

残念ながら、次のエントリを作成してホスト名を変更することはできませんでした。

/ etc / sysconfig / network

そして

/ etc / hostsファイル

ただし、以下のファイルを編集することでホスト名を変更できました。

vi /etc/hostname
server01

再起動してホスト名をテストします:

hostname

2
それは述べOPにコメント注意/etc/hostnameCentOSの7に存在しますが、ないCentOSの6
フォックス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.