Câu hỏi Làm cách nào để thay đổi tên máy chủ mà không cần khởi động lại?


Tôi muốn thay đổi tên máy chủ của 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 triển khai. Làm thế nào để tránh điều này?


456
2017-12-14 08:56


gốc


Cảnh báo: sẽ không hoạt động với Ubuntu 18+ đang chạy cloud-init theo mặc định, điều khiển tên máy chủ khi khởi động. - nslntmnx


Các 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 của 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

Thao tác 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 được dùng _ trong tên của bạn.

chú thích

Sau khi khởi động lại các thay đổi của bạn trong /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 đã được thiết lập đúng chưa, 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:

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.)


593
2017-12-14 10:27



tôi không muốn khởi động lại - Deepak Rajput
Tôi biết. đó là lý do tại sao bạn nên sử dụng lệnh 'tên máy chủ'. Tôi chỉ muốn làm rõ, rằng lệnh 'hostname' chỉ thay đổi tên máy cho đến khi bạn khởi động lại / crash / etc. Sau đó nó sẽ đọc tên từ tập tin một lần nữa. - jasperado
Phụ thuộc. Nếu bạn đã nhập lệnh, bạn không cần phải khởi động lại. Tên máy chủ đã được thay đổi. Nhưng chỉ UNTIL khởi động lại tiếp theo của bạn. - jasperado
Lưu ý rằng bạn cũng phải thay đổi /etc/hosts (xem câu trả lời khác) - JB.
Tóm lại, mặc dù hostname sẽ khiến tên mới có hiệu lực ngay lập tức, 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 một sự cố, tất nhiên, bạn có thể không mong đợi trước thời hạn. - Tim Parenti


Ubuntu 13.04 trở đi

Các hostnamectl lệnh là một phần của cài đặt mặc định trên cả hai phiên bản Máy tính để bàn và Máy chủ.

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ư thiết lập tên máy chủ tĩnh, nó có thể thiết lập tên máy chủ "khá", 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 biệt.

hostnamectl set-hostname new-hostname

Lệnh này là một phần của systemd-services gói (trong đó, như của Ubuntu 14.04, cũng bao gồm timedatectl và localectl lệnh). Khi Ubuntu di chuyển sang systemd, công cụ này là tương lai.


250
2017-08-27 21:03



Lưu ý rằng tính năng này không khả dụng ở mọi nơi. Chỉ cần nhìn vào cài đặt Ubuntu 14.04 LTS ARM-7 của tôi, và hostnamectl không tồn tại. Đoán một số hương vị của Ubuntu không sử dụng systemd được nêu ra. - Stéphane
@ Stéphane các lệnh là một phần của bộ systemd, nhưng chúng có sẵn một cách độc lập. Trong trường hợp này, 13.04-14.10 không sử dụng systemd là init, bởi lệnh có sẵn. - muru
@ H2ONaCl biến shell được thiết lập khi khởi động, chỉ cần mở một shell khác và biến hostname là tốt. Đối với sudo, lỗi về độ phân giải tên máy chủ không bao giờ thực sự ngăn cản tôi làm bất cứ điều gì. - muru
@ H2ONaCl ah, nhưng variablle HOSTNAME không phải là tiêu chuẩn - dấu gạch ngang IIRC và ksh không có nó, zsh sử dụng HOST, do đó, theo như biến shell đi, đó là đáy của đống. - muru
Vẫn hoạt động trong Ubuntu 18.04 LTS. - donlucacorleone


Không khởi động lại

Thay đổi tên máy chủ hoặc tên máy tính trong ubuntu không khởi động lại

Chỉnh sửa / etc / tên máy chủ và thay đổi thành 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

chú thích : tôi đã đọc nó trên 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 đã thực hiện nó, nhấn ESC trên menu grub, chọn khôi phục và chỉnh sửa tệp lưu trữ của bạn về 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áy chủ mới bạn đã chọn

Không khởi động lại

Thay đổi mà không cần khởi động lại, bạn chỉ có thể sử dụng tên máy chủ.sh sau khi bạn chỉnh sửa / etc / tên máy chủ. Bạn phải giữ cả hai tên máy chủ lưu trữ của bạn trong / etc / hosts (127.0.0.1 newhost oldhost) cho đến khi bạn thực hiện lệnh dưới đây:

sudo service hostname start

chú thích : Lệnh trên để thực hiện thay đổi đang hoạt động. 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ách sử dụng cùng một dịch vụ).


58
2018-02-13 20:16



Trên Ubuntu 12.10, phần cuối cùng không hoạt động với thông báo lỗi sau sudo: unable to resolve host old-hostname. Đối với phần đó, giải pháp @jesperado hoạt động tốt. - Frédéric Grosshans
Nếu bạn không cập nhật /etc/hosts, mọi thứ bắt đầu thất bại vào ngày 12.04.2 LTS, bao gồm cả w lệnh, Apache, /sbin/reboot và nhiều hơn nữa. Đảm bảo cập nhật /etc/hosts - Josh
Bạn tham khảo cả hai 127.0.0.1 cho localhost và 127.0.1.1 cho tên máy chủ tùy chỉnh. Đúng? Sau đó, vào cuối câu trả lời của bạn, cho một hành động không có một rebotbạn tham khảo /etc/hosts và 127.0.0.1 newhost oldhost. Vì vậy, không cần cho một 127.0.1.1 địa chỉ nhà? - Nikos Alexandris
không làm việc cho tôi. tôi đã phải sử dụng 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 - conman253
Sự khác biệt giữa khởi động lại và khởi động lại là gì? - storm


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 kỳ thứ gì bạn muốn trong cả Desktop & Server bằng cách chỉnh sửa các tệp host và hostname. Dưới đây là cách thực hiện:

  1. nhấn CtrlAltt trên bàn phím để mở thiết bị đầu cuối. Khi nó mở ra, hãy chạy lệnh dưới đây: 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 hiển thị 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.

  1. Để thay đổi tên vĩnh viễn, hãy chạy lệnh để chỉnh sửa tệp lưu trữ:

    sudo -H gedit /etc/hostname và sudo -H gedit /etc/hosts

Đối với máy chủ Ubuntu không có GUI, hãy chạy sudo vi /etc/hostname và sudo vi /etc/hosts và chỉnh sửa từng cái một. Trong cả hai tệp, hãy đổ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.


42
2017-11-01 22:47





Đây là một kịch bản thay đổi tên máy theo cách được chỉ định. Nó đảm bảo rằng không chỉ sudo mà còn 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}')"

16
2018-03-07 06:30



Dòng cuối cùng trong tập lệnh 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. - Fr0zenFyr
@ Fr0zenFyr: nó có một mã thông báo xác thực X11 hợp lệ (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 bởi vì xauthĐịnh dạng đầu vào và đầu ra không đối xứng. - Lucas
Cảm ơn lời giải thích. Tôi đã luôn khởi động lại để các thay đổi có hiệu lực. +1 - Fr0zenFyr
@trakz: Trên thực tế 127.a.b.c bất kể số lượng, là tất cả localhost theo IETF RFC. (hầu hết mọi người chỉ không biết điều này, nhưng hầu hết mọi người không, chỉnh sửa được phê duyệt) - Fabby


Không khởi động lại:

  1. thay đổi tên máy chủ trong /etc/hostname
  2. cập nhật /etc/hosts phù hợp
  3. sudo sysctl kernel.hostname=mynew.local.host

Kiểm tra tên máy chủ hiện tại của bạn bằng hostname -f


12
2018-03-31 14:46



Với 16.04, sysctl 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. - Pablo Bianchi


Để nhận tên máy chủ hiện tại của bạn:

cat /etc/hostname

Điều này có thể được thay đổi trong bất kỳ trình soạn thảo văn bản nào. Bạn cũng sẽ cần cập nhật mục nhập khác với localhost dựa vào 127.0.0.1 trong / etc / hosts.


7
2017-09-14 01:12



Hoặc chỉ cần chạy lệnh "hostname" từ dòng lệnh. - elomage


  1. Thay thế nội dung của /etc/hostname với tên máy chủ mong muốn (bạn có thể chỉnh sửa bằng sudo nano /etc/hostname)
  2. Trong /etc/hosts, thay thế mục nhập 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)
  3. Thi hành sudo service hostname restart; sudo service networking restart

4
2018-05-08 18:26



Cảnh báo: sẽ không hoạt động với Ubuntu 18+ đang chạy cloud-init theo mặc định, điều khiển tên máy chủ khi khởi động. - nslntmnx
@nslntmnx bạn có chắc chắn về điều này? Tôi thấy trong cloud-config.txt # 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 nên tôi không thể kiểm tra nó cho đến cuối tuần. - George


Ubuntu 16.04

Cái này không có khởi động lại và không sử dụng bất kỳ thiết bị đầu cuối nào.

  • Đi đến Cài đặt hệ thống -> Chi tiết.
  • Nó đây rồi. Bên cạnh Tên thiết bị, có một hộp văn bản.
  • Chỉnh sửa hộp văn bản và cửa sổ đóng.

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.)


4
2018-03-13 18:26





sudo hostname your-new-name
sudo /etc/init.d/networking restart

Điều đó nên làm công việc tôi nghĩ


3
2017-12-20 12:43



Tôi không nghĩ rằng điều này sẽ tồn tại một khởi động lại - Collin Anderson
Cảnh báo: sẽ không hoạt động với Ubuntu 18+ đang chạy cloud-init theo mặc định, điều khiển tên máy chủ khi khởi động. - nslntmnx