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/hostnamenhư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/hostnamenhư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 hostnamevà 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/hostnamesẽ đượ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/hostsvà 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)
hostnamesẽ 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/hostnamevà /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 hostnamectllệ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 hostnamelệ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/hostsvẫ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-servicesgói (kể từ Ubuntu 14.04, cũng bao gồm các lệnh timedatectlvà localectl). Khi Ubuntu chuyển sang systemd, công cụ này là tương lai.
hostnamectlkhô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 wlệnh, Apache /sbin/rebootvà nhiều thứ khác. Đảm bảo cập nhật/etc/hosts
127.0.0.1cho localhostvà 127.0.1.1cho 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/hostsvà 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/hostskhô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/hostnamevà sudo vi /etc/hostsvà 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ỉ sudocá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 addvì 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/hostsphù hợpsudo sysctl kernel.hostname=mynew.local.hostKiể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/hostnamev.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/hostnamebằ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/hostnamevà 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.confvẫ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/hostnametậ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/hoststệ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