方法1:使用 hostnamectl 命令(推荐)
1. 查看当前主机名
hostnamectl
# 或
hostname
2. 设置新的主机名
# 永久修改主机名(重启后生效)
sudo hostnamectl set-hostname 新主机名
# 例如:
sudo hostnamectl set-hostname debian-server
方法2:手动编辑配置文件
1. 编辑主机名文件
sudo vim /etc/hostname
删除原有内容,只写入新的主机名,例如:
debian-server
2. 更新 /etc/hosts 文件
sudo vim /etc/hosts
找到包含 127.0.1.1 的行,将其修改为:
127.0.1.1 debian-server
或者确保有一行是这样的:
127.0.0.1 localhost
127.0.1.1 debian-server
方法3:临时修改(重启后失效)
# 临时修改主机名(立即生效,但重启后恢复)
sudo hostname 新主机名
# 或
hostname 新主机名 # 如果没有 sudo
完整示例:将主机名改为 “mydebian”
步骤1:永久修改
# 使用 hostnamectl
sudo hostnamectl set-hostname mydebian
# 如果没有 sudo(作为 root)
hostnamectl set-hostname mydebian
步骤2:更新 hosts 文件
sudo vim /etc/hosts
确保包含:
127.0.0.1 localhost
127.0.1.1 mydebian
# IPv6
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
步骤3:立即生效(可选)
# 重新登录或重启系统
# 或者立即生效(部分系统)
sudo systemctl restart systemd-hostnamed
# 或
sudo service hostname restart
验证修改
# 方法1:检查当前主机名
hostnamectl status
# 或
hostname
# 方法2:查看主机名文件
cat /etc/hostname
# 方法3:查看完整信息
hostnamectl
# 方法4:查看内核主机名
cat /proc/sys/kernel/hostname
批量修改示例
# 1. 设置新的静态主机名
sudo hostnamectl set-hostname my-debian-server
# 2. 更新 /etc/hosts 文件
sudo sed -i "s/127.0.1.1.*$/127.0.1.1\tmy-debian-server/" /etc/hosts
# 3. 立即生效(重新读取配置文件)
sudo systemctl restart systemd-hostnamed
# 4. 验证
hostname
注意事项
-
主机名格式要求:
- 只能包含字母、数字、连字符(-)和点(.)
- 不能以下划线开头或结尾
- 建议使用小写字母
- 长度不超过 253 个字符
-
常见问题:
- 如果修改后不生效,请重启系统
- 确保
/etc/hosts中的映射正确 - 某些服务(如 SSH、Apache)可能需要重启才能识别新主机名
-
特殊字符处理:
# 如果要设置包含空格的名称(不推荐) sudo hostnamectl set-hostname "My Debian Server"
一键修改脚本
#!/bin/bash
# 设置新主机名
NEW_HOSTNAME="debian-server"
# 永久修改
sudo hostnamectl set-hostname $NEW_HOSTNAME
# 更新 hosts 文件
sudo sed -i "/127.0.1.1/c\127.0.1.1\t$NEW_HOSTNAME" /etc/hosts
# 重新加载
sudo systemctl restart systemd-hostnamed
echo "主机名已修改为: $NEW_HOSTNAME"
echo "请重新登录或重启系统使更改完全生效"
总结
最简单的方法:
# 作为 root 用户
hostnamectl set-hostname 新主机名
vim /etc/hosts # 更新 127.0.1.1 那一行
这样修改后,下次登录时命令行提示符就会显示新的主机名了。
评论区