Tôi muốn thay đổi tên máy chủ hệ điều hành nhưng tôi không muốn khởi động lại.
Tôi đã chỉnh sửa /etc/hostname
nhưng nó yêu cầu khởi động lại để được thực hiện. Làm thế nào để tránh điều này?
Tôi muốn thay đổi tên máy chủ hệ điều hành nhưng tôi không muốn khởi động lại.
Tôi đã chỉnh sửa /etc/hostname
nhưng nó yêu cầu khởi động lại để được thực hiện. Làm thế nào để tránh điều này?
Câu trả lời:
Dễ thôi. Chỉ cần nhấp vào biểu tượng Bánh răng (nằm ở góc trên bên phải màn hình), mở màn hình "Giới thiệu về máy tính này" (nằm ở biểu tượng Bánh răng) và chỉnh sửa "Tên thiết bị".
Hoặc, trong một thiết bị đầu cuối, sử dụng lệnh sau:
sudo hostname your-new-name
Điều này sẽ đặt tên máy chủ thành tên mới của bạn cho đến khi bạn khởi động lại. Xem man hostname
và làm cách nào để thay đổi tên máy tính? để biết thêm thông tin. Không sử dụng _
tên của bạn.
Ghi chú
Sau khi khởi động lại, những thay đổi của bạn /etc/hostname
sẽ được sử dụng, vì vậy (như bạn đã nói trong câu hỏi), bạn vẫn nên sử dụng
sudo -H gedit /etc/hostname
(hoặc một số trình soạn thảo khác) để tệp đó chứa tên máy chủ.
Để kiểm tra xem tập tin có được thiết lập chính xác không, hãy chạy:
sudo service hostname start
Bạn cũng nên chỉnh sửa /etc/hosts
và thay đổi dòng có nội dung:
127.0.1.1 your-old-hostname
để bây giờ nó chứa tên máy chủ mới của bạn. (Điều này là bắt buộc nếu không nhiều lệnh sẽ ngừng hoạt động.)
/etc/hosts
(xem câu trả lời khác)
hostname
sẽ khiến tên mới có hiệu lực ngay lập tức, nhưng nó không phải là "vĩnh viễn" trừ khi bạn cũng thay đổi /etc/hostname
và /etc/hosts
, vì đó là những tệp sẽ được đọc sau khi khởi động lại hoặc gặp sự cố, tất nhiên, bạn có thể không mong đợi trước thời hạn.
Các hostnamectl
lệnh là một phần của quá trình cài đặt mặc định trên cả hai máy tính để bàn và các phiên bản Server.
Nó kết hợp thiết lập tên máy chủ thông qua hostname
lệnh và chỉnh sửa /etc/hostname
. Cũng như đặt tên máy chủ tĩnh, nó có thể đặt tên máy chủ "đẹp", không được sử dụng trong Ubuntu. Thật không may, chỉnh sửa /etc/hosts
vẫn phải được thực hiện riêng.
hostnamectl set-hostname new-hostname
Lệnh này là một phần của systemd-services
gói (kể từ Ubuntu 14.04, cũng bao gồm các lệnh timedatectl
và localectl
). Khi Ubuntu chuyển sang systemd
, công cụ này là tương lai.
hostnamectl
không tồn tại. Đoán một số hương vị của Ubuntu chưa sử dụng systemd.
Thay đổi tên máy chủ hoặc tên máy tính trong Ubuntu mà không cần khởi động lại
Chỉnh sửa / etc / tên máy chủ và thay đổi giá trị mới,
nano /etc/hostname
Chỉnh sửa / etc / hosts và thay đổi dòng 127.0.1.1 cũ thành tên máy chủ mới của bạn
127.0.0.1 localhost
127.0.1.1 ubuntu.local ubuntu # change to your new hostname/fqdn
Lưu ý : tôi đã đọc nó trên một diễn đàn> Chỉnh sửa / etc / hosts và thay đổi dòng 127.0.1.1 cũ thành tên máy chủ mới của bạn (nếu bạn không làm điều này, bạn sẽ không thể sử dụng sudo nữa. Nếu bạn đã làm xong , nhấn ESC trên menu grub, chọn recovery và chỉnh sửa tệp máy chủ của bạn để cài đặt chính xác)
Bây giờ sau khi khởi động lại, tên máy chủ của bạn sẽ là tên mới bạn chọn
Để thay đổi mà không cần khởi động lại , bạn chỉ có thể sử dụng hostname.sh sau khi chỉnh sửa / etc / hostname. Bạn phải giữ cả tên máy chủ của mình trong / etc / hosts (127.0.0.1 newhost oldhost) cho đến khi bạn thực hiện lệnh bên dưới:
sudo service hostname start
Lưu ý : Lệnh trên để thực hiện thay đổi. Tên máy chủ lưu trong tệp này (/ etc / hostname) sẽ được giữ nguyên khi khởi động lại hệ thống (và sẽ được đặt bằng cùng một dịch vụ).
sudo: unable to resolve host old-hostname
. Về phần đó, giải pháp @jesperado hoạt động tốt.
/etc/hosts
, mọi thứ sẽ bắt đầu thất bại vào ngày 12.04.2 LTS, bao gồm w
lệnh, Apache /sbin/reboot
và nhiều thứ khác. Đảm bảo cập nhật/etc/hosts
127.0.0.1
cho localhost
và 127.0.1.1
cho một tên máy chủ tùy chỉnh. Đúng? Sau đó, đến cuối câu trả lời của bạn, cho một hành động không có rebot , bạn tham khảo /etc/hosts
và 127.0.0.1 newhost oldhost
. Vì vậy, không cần một 127.0.1.1
địa chỉ?
sudo nano /etc/hosts
để thay đổi có hiệu lực; không có sudo, chỉ nano /etc/hosts
không lưu thay đổi
Tên mặc định được đặt khi bạn cài đặt Ubuntu. Bạn có thể dễ dàng thay đổi nó thành bất cứ điều gì bạn muốn trong cả Desktop & Server bằng cách chỉnh sửa các tập tin máy chủ và tên máy chủ. Dưới đây là cách thực hiện:
sudo hostname NEW_NAME_HERE
Điều này sẽ thay đổi tên máy chủ cho đến khi khởi động lại tiếp theo. Thay đổi sẽ không được nhìn thấy ngay lập tức trong thiết bị đầu cuối hiện tại của bạn. Bắt đầu một thiết bị đầu cuối mới để xem tên máy chủ mới.
Để thay đổi tên vĩnh viễn, hãy chạy lệnh để chỉnh sửa các tệp máy chủ:
sudo -H gedit /etc/hostname
và sudo -H gedit /etc/hosts
Đối với máy chủ Ubuntu mà không có một giao diện đồ họa, chạy sudo vi /etc/hostname
và sudo vi /etc/hosts
và chỉnh sửa chúng từng cái một. Trong cả hai tệp, thay đổi tên thành những gì bạn muốn và lưu chúng.
Cuối cùng, khởi động lại máy tính của bạn để áp dụng các thay đổi.
Đây là một kịch bản thay đổi tên máy chủ theo cách quy định. Nó đảm bảo rằng không chỉ sudo
các ứng dụng X11 tiếp tục hoạt động mà không cần khởi động lại.
Sử dụng: 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}')"
su $SUDO_USER -c "xauth add $(xauth list | sed 's/^.*\//'"$NEW_HOSTNAME"'\//g' | awk 'NR==1 {sub($1,"\"&\""); print}')"
làm gì? Chỉ tò mò thôi.
xauth list
) và thay thế tên máy chủ cũ bằng tên máy chủ mới ( sed
). Sau đó awk
đặt dấu ngoặc kép xung quanh đối số đầu tiên xauth add
vì xauth
định dạng đầu vào và đầu ra không đối xứng.
Không khởi động lại:
/etc/hostname
/etc/hosts
phù hợpsudo sysctl kernel.hostname=mynew.local.host
Kiểm tra tên máy chủ hiện tại của bạn với hostname -f
sudo: unable to resolve host oldname
, sysctl: setting key "kernel.hostname": Read-only file system
. Có lẽ vì là một CT bên trong Proxmox.
Trong khi các cách tiếp cận trên ( hostnamectl
, etc/hostname
v.v.) hoạt động để thay đổi tên máy chủ ngay lập tức, với sự ra đời của cloud-init - có thể kiểm soát cài đặt của tên máy chủ - có nhiều thứ khác. Vì vậy, nó sẽ không dính sau khi khởi động lại nếu cài đặt cloud-init. Nếu bạn muốn thay đổi ở lại sau khi khởi động lại thì bạn sẽ cần chỉnh sửa các tệp cấu hình đám mây-init , tắt mô-đun bộ / cập nhật tên máy chủ của đám mây-init :
sudo sed 's/preserve_hostname: false/preserve_hostname: true/' /etc/cloud/cloud.cfg
hoặc vô hiệu hóa hoàn toàn init-init:
sudo touch /etc/cloud/cloud-init.disabled
/etc/cloud/cloud.cfg
. Tên gói là gì? Chỉ là cloud-init
?
/etc/hostname
bằng tên máy chủ mong muốn (bạn có thể chỉnh sửa bằng sudo nano /etc/hostname
)/etc/hosts
, thay thế mục bên cạnh 127.0. 1 .1 với tên máy chủ mong muốn (bạn có thể chỉnh sửa bằng sudo nano /etc/hosts
)sudo service hostname restart; sudo service networking restart
# 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.
Tôi hiện không có Ubuntu 18 vì vậy tôi không thể kiểm tra nó cho đến cuối tuần.
Điều này là không có khởi động lại và không có bất kỳ sử dụng thiết bị đầu cuối.
Mở thiết bị đầu cuối. Xem cho chính mình.
(Đối với các phiên bản cũ hơn, hộp văn bản không thể chỉnh sửa.)
Câu trả lời cổ điển cho câu hỏi của người đăng ban đầu là, khi bạn đã chỉnh sửa /etc/hostname
, bạn áp dụng nó mà không cần khởi động lại bằng cách chạy tên máy chủ (1) với tùy chọn -F
( --file
) làm gốc:
sudo hostname -F /etc/hostname
Việc xử lý tên máy chủ (5) với /etc/hostname
và chương trình đã nói giống nhau trong Debian và các dẫn xuất của nó trong hơn hai mươi năm nay và gói cung cấp nó đã được gắn thẻ thiết yếu và bắt buộc , và IIRC, các tập lệnh init đã sử dụng cùng một thứ cho hàng thập kỷ ( /etc/init/hostname.conf
vẫn chứa nó), vì vậy tôi phải nói rằng tôi thực sự bối rối về việc không ai đã đề cập đến điều này rồi :)
sudo hostname your-new-name
sudo /etc/init.d/networking restart
Điều đó nên làm công việc tôi nghĩ
Tôi đã đọc câu trả lời, nhưng tôi nghĩ Có lẽ bạn đang tìm kiếm điều này:
Chỉ cần thực hiện hai lệnh này sau khi chỉnh sửa /etc/hostname
tập tin.
$ sudo service hostname restart
$ exec bash
Đó là tất cả. Không cần phải khởi động lại. Cũng đảm bảo bạn cũng thay đổi tên trong /etc/hosts
tệp.
/etc/hosts
(tôi đã xác nhận vào ngày 14.04).
Giải pháp dựa trên câu trả lời từ DigitalOcean Comunity.
Chỉnh sửa tập tin máy chủ .
$ sudo nano /etc/hosts
Thay oldname với cái mới.
127.0.0.1 localhost newname
Thiết lập tên máy chủ mới.
$ sudo hostnamectl set-hostname newname