Cách thay đổi vĩnh viễn tên máy chủ trong Fedora 21


35

Tôi đã nghe nói rằng việc thay đổi tên máy chủ trong các phiên bản mới của fedora được thực hiện bằng hostnamectllệnh. Ngoài ra, gần đây tôi (và thành công) đã thay đổi tên máy chủ của mình trên Arch Linux bằng phương pháp này. Tuy nhiên, khi chạy:

[root@localhost ~]# hostnamectl set-hostname --static paragon.localdomain
[root@localhost ~]# hostnamectl set-hostname --transient paragon.localdomain
[root@localhost ~]# hostnamectl set-hostname --pretty paragon.localdomain

Các thay đổi không được bảo tồn sau khi khởi động lại (trái với tuyên bố của nhiều người rằng nó thực hiện). Chuyện gì thế?

  • Tôi thực sự không muốn chỉnh sửa /etc/hostnamebằng tay.

Tôi cũng nên lưu ý rằng đây là một fedora hoàn toàn chứng khoán. Tôi thậm chí còn không thể cài đặt các ứng dụng cốt lõi của mình.


Đây có thông tin tương tự về vấn đề này cũng như: ask.fedoraproject.org/en/question/37413/... & này: dbaora.com/install-fedora-20
SLM

Thật vậy, đây là một trong những nguồn của tôi. Tuy nhiên, không có giải pháp nào tôi có thể trích xuất từ ​​trang đó hoạt động ...
PythonNut

Làm thế nào gần đây bạn đã cài đặt / thiết lập hệ thống này? Có vấn đề đã được trình bày kể từ khi cài đặt? Ngoài ra có bất kỳ lỗi w / những hostnamectllệnh đó? Liên kết đến lỗi bugzilla mà đôi khi được đăng có vẻ như là người dẫn tốt nhất của bạn.
slm

Tôi đã cài đặt vào ngày 10/1/14 và kể từ đó các hostnamectllệnh không hoạt động, nhưng bây giờ chúng đã hoạt động.
PythonNut

Lỗi liên quan đến giải pháp được chấp nhận chỉ là một thời điểm không may cho bạn. Họ đã sửa nó ngược dòng và nó sẽ hoạt động theo cách của người dùng trong tương lai.
slm

Câu trả lời:


39

Lệnh để đặt tên máy chủ là chắc chắn , hostnamectl.

root ~ # hostnamectl set-hostname --static "YOUR-HOSTNAME-HERE"

Đây là một nguồn bổ sung mô tả chức năng này nhiều hơn một chút, có tiêu đề: Đặt chính xác tên máy chủ - Fedora 20 trên Amazon EC2 .

Ngoài ra, trang man cho hostnamectl:

HOSTNAMECTL(1)                    hostnamectl                   HOSTNAMECTL(1)

NAME
       hostnamectl - Control the system hostname

SYNOPSIS
       hostnamectl [OPTIONS...] {COMMAND}

DESCRIPTION
       hostnamectl may be used to query and change the system hostname and
       related settings.

       This tool distinguishes three different hostnames: the high-level
       "pretty" hostname which might include all kinds of special characters
       (e.g. "Lennart's Laptop"), the static hostname which is used to
       initialize the kernel hostname at boot (e.g. "lennarts-laptop"), and
       the transient hostname which is a default received from network
       configuration. If a static hostname is set, and is valid (something
       other than localhost), then the transient hostname is not used.

       Note that the pretty hostname has little restrictions on the characters
       used, while the static and transient hostnames are limited to the
       usually accepted characters of Internet domain names.

       The static hostname is stored in /etc/hostname, see hostname(5) for
       more information. The pretty hostname, chassis type, and icon name are
       stored in /etc/machine-info, see machine-info(5).

       Use systemd-firstboot(1) to initialize the system host name for mounted
       (but not booted) system images.

Có một lỗi trong Fedora 21, trong đó SELinux ngăn chặn truy cập hostnamectl, được tìm thấy ở đây, có tiêu đề: Bug 1133368 - SELinux đang ngăn chặn systemd-hostnam truy cập 'unlink' trên tên máy chủ tệp .

Lỗi này dường như có liên quan. Có một vấn đề với bối cảnh SELinux không được áp dụng đúng cho tệp /etc/hostnamekhi cài đặt. Biểu hiện này trong công cụ hostnamectlkhông thể thao tác với tệp /etc/hostname. Cùng một chủ đề cung cấp cách giải quyết này:

$sudo restorecon -v /etc/hostname

LƯU Ý: Các bản vá đó đã được áp dụng cho Anaconda (công cụ cài đặt) để vấn đề này sẽ biến mất trong tương lai cho người dùng mới.


3

Nguyên nhân có thể cho việc này là khách hàng dhcp của bạn. Nếu bạn đang sử dụng dhcpcd, điều phổ biến, giải pháp là thêm dòng sau vào /etc/dhcpcd.conf:

nohook hostname

Điều này ngăn dhcpcd gọi ra kịch bản thay đổi tên máy chủ hệ thống của bạn.

Theo mặc định, dhcpcd chạy tất cả các hook hiện tại /lib/dhcpcd/dhcpcd-run-hooks(đường dẫn có thể khác nhau trên hệ thống của bạn). Sử dụng nohookvô hiệu hóa những người cụ thể.


1
Đối với cả cài đặt 21 và da thô của tôi, /etc/dhcpd.confkhông tồn tại. Ngoài ra, systemctl status dhcpcdtrả vềnot-found (Reason: No such file or directory)
PythonNut
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.