Làm cách nào để thay đổi tên máy chủ trên CentOS 6.5?


49

Tôi dường như không thể thay đổi tên máy chủ trên máy chủ CentOS 6.5 của mình. Tôi đang làm theo các hướng dẫn tôi tìm thấy ở đây: http://www.rackspace.com/ledgeledge_center/article/centos-hostname-change

Tôi đặt /etc/hostsnhư thế ...

    [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

... sau đó tôi làm cho /etc/sysconfig/networktập tin của mình như vậy ...

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

... sau đó tôi chạy hostnamenhư vậy ...

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

... và sau đó tôi chạy bash và tất cả có vẻ tốt ...

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

... nhưng khi tôi khởi động lại mạng, tên máy chủ cũ sẽ quay trở lại:

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

... Tôi không thể tìm ra nó. Tôi làm gì sai ở đây.


1
Bạn đã chỉnh sửa /etc/hostnametập tin của bạn ?
Anthon

Không có một /etc/hostnametập tin. [root@smp-mig-dev-006 ~]# ls -l /etc/hostnameđầu rals: cannot access /etc/hostname: No such file or directory
Red Cricket

Có thể là một điều Centos. Manpage của bạn nói gì với bạn về sự lâu dài của hostname somenamenó, rằng nó có ảnh hưởng lâu dài không? (nếu không tại sao bạn thực hiện cuộc gọi đó?)
Anthon

3
Tôi nghĩ /etc/hostnamelà ở CentOS 7 nhưng không phải ở CentOS 6.
Pavel imerda

Tôi nhận ra điều này đã cũ, nhưng tôi ngửi thấy NetworkManager tại nơi làm việc, hoặc là bạn có thể có HOSTNAME = được đặt trong một tệp khác ngoài mạng (ví dụ: trong các tập lệnh mạng). Tệp / etc / hostname không được sử dụng trong CentOS 6 (đây là một thứ hệ thống; có nghĩa là CentOS 7 trở lên). Kiểm tra nội dung của tệp / etc / sysconfig / network-scripts / ifcfg-eth0; có cái gì bên trong? Lưu ý: Nếu bạn xem tập lệnh if_post của Redhat trong tập lệnh mạng /, bạn sẽ thấy set_hostname chỉ đơn giản chạy "tên máy chủ $ HOSTNAME", trong đó HOSTNAME là biến shell được đặt trong tệp mạng hoặc tệp ifcfg-eth0.
Mike S

Câu trả lời:


67

để thay đổi tên máy chủ vĩnh viễn, bạn cần thay đổi nó ở hai nơi:

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

và: một ý tưởng tốt nếu bạn có bất kỳ ứng dụng nào cần phân giải IP của tên máy chủ)

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

và sau đó

 rebooting the system

7
hostname newHostNameTôi nghĩ rằng vào cuối của hai thay đổi này , không cần thiết phải khởi động lại
Edakos

4
Chỉnh sửa tệp / etc / hosts dường như không bắt buộc
jgritty

2
Câu trả lời đã được chấp nhận, nhưng trước tiên, /etc/hoststhay đổi chỉ có ở đó để làm cho tên máy chủ có thể phân giải được, không thay đổi nó và /etc/sysconfig/networktrông giống như trong OP. Bất cứ ai có thể giải thích chính xác những gì OP cần thay đổi để làm cho nó hoạt động?
Pavel imerda

3
Tôi nghĩ rằng một câu trả lời đúng nên làm việc như một câu trả lời cho câu hỏi. Lặp lại dữ liệu từ câu hỏi là tốt miễn là câu trả lời cho biết OP đã cấu hình đúng nhưng không thực hiện các hành động cần thiết để tải cấu hình mới (ví dụ: khởi động lại).
Pavel imerda

2
Khởi động lại không cần thiết. Kiểm tra strace -f tên máy chủ blah. Nhân nhận được tin nhắn ngay lập tức. / etc / hosts không ảnh hưởng đến tên máy chủ của máy chủ, trong CentOS 6.5 (và 7) ít nhất. Và câu trả lời này không chính xác ở chỗ nó thiếu lệnh tên máy chủ, thông báo cho kernel của tên máy chủ lưu trữ.
Mike S

65

Một giải pháp cho CentOS 7 có thể được tìm thấy ở đây :

hostnamectl set-hostname <new hostname>

3
"hostnamectl" là giải pháp hoạt động duy nhất cho tôi trên phiên bản CentOS Linux 7.2.1511
AJN

..và khởi động lại, trong trường hợp của tôi.
WesternGun

Tôi không nghĩ rằng bạn cần khởi động lại chỉ cần đăng nhập lại nên hoạt động
FearlessHyena

5
Câu hỏi là về CentOS 6.5. CentOS 7 là một con thú hoàn toàn khác và câu trả lời này không thuộc về nơi này.
Harald

15

Bạn có thể thay đổi tên máy chủ của mình bằng một lệnh duy nhất.

  • Lệnh: hostname- điều này sẽ hiển thị tên máy chủ cũ
  • Lệnh: hostname <new name>-đây bộ hostname mới

Thí dụ

$ hostname mynewhost

Để duy trì tên máy chủ mới trong suốt quá trình khởi động lại

chỉnh sửa / etc / sysconfig / tệp mạng để trông giống như bên dưới

NETWORKING=yes
HOSTNAME=myhostanme

Để được trợ giúp video


Tôi tin rằng đây là câu trả lời đúng nhất. Đáng để thêm rằng chạy: man hostname; hiển thị nhiều tùy chọn hơn để cài đặt đẹp, thoáng qua, tĩnh, v.v.
ekerner

Tôi nghĩ rằng nó không đủ để kiên trì khởi động lại. Bạn cũng cần sửa đổi tập tin / etc / sysconfig / mạng.
Pozinux

6

Ngoài các câu trả lời đã được cung cấp cho CentOS 6.5,

CentOS 7 cũng có một công cụ giao diện người dùng dựa trên văn bản để thay đổi tên máy chủ ( và các cài đặt mạng khác ), một phần của Trình quản lý mạng:

nmtui

bắt đầu giao diện người dùng này:

nhập mô tả hình ảnh ở đây

trong đó có một tùy chọn để Set system hostname.

Giao diện người dùng văn bản của NetworkManager được cài đặt theo mặc định trong hình ảnh CentOS-7-x86_64-DVD-1511.iso, cài đặt cơ sở. Nếu bạn không có nó, bạn có thể cài đặt nó bằng lệnh sau:

yum install NetworkManager-tui

2

Tôi đã phải làm điều này cho một loạt các máy móc. Đây là một kịch bản python đơn giản để giúp bạn ra ngoài. Đơn giản chỉ cần cung cấp tên của máy chủ mới làm đối số đầu tiên cho tập lệnh.

ví dụ: nếu bạn đặt tên cho tập lệnh changehost.py thì hãy chạy nó dưới dạng

changeHost.py [NewHostName]

trong đó NewhostName là tên máy chủ mong muốn của bạn.

Cũng đảm bảo chạy tập lệnh này với quyền 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 đó là một kịch bản xấu xí. Tôi tự hỏi nếu Puppet sẽ là một công cụ tốt hơn để xử lý tên máy chủ.
Dế đỏ


4
Kịch bản này dài khoảng 3 lần miễn là cần thiết. Python là công cụ sai cho công việc. Một tập lệnh bash sẽ ngắn hơn nhiều, dễ đọc hơn và dễ bảo trì hơn.
Mike S

2

Không cần khởi động lại để thay đổi tên máy chủ trên CentOS 6.5.

Lệnh sau thông báo cho kernel của tên máy chủ mới:

# hostname new_hostname

Lệnh sau để tên máy chủ được duy trì trong suốt quá trình khởi động lại:

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

2

Nếu bạn đang ở trên Centos 7.x. Chèn lệnh sau.

nmtui

Nó sẽ có một tùy chọn đặt tên máy chủ hệ thống . Nhấn Enter trên đó.

Viết tên máy chủ của bạn.

Nhấn Ok.

Bây giờ, kiểm tra với tên máy chủ lệnh .

Nó sẽ có tên máy chủ lưu của bạn.


1

Thật không may, tôi không thể thay đổi tên máy chủ bằng cách nhập các mục trong:

/ etc / sysconfig / mạng

/ etc / lưu trữ tập tin

Tuy nhiên tôi đã có thể thay đổi tên máy chủ bằng cách chỉnh sửa tệp bên dưới:

vi /etc/hostname
server01

Khởi động lại và kiểm tra tên máy chủ bằng cách:

hostname

2
Lưu ý nhận xét về OP nêu rõ /etc/hostnametrong CentOS 7, nhưng không phải là CentOS 6
Fox
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.