Linux 主机名(hostname)出现乱码,通常是字符编码不一致或主机名里包含了非 ASCII 字符导致。可以按下面步骤排查和解决:
hostname
echo $LANG
locale
hostname 显示一堆问号/方块LANG 不是 UTF-8基本就是编码问题。
不要使用中文或特殊字符
修改主机名:
sudo hostnamectl set-hostname my-server
或:
sudo vim /etc/hostname
# 改成
my-server
同时修改 /etc/hosts:
127.0.0.1 localhost my-server
重启或重登录:
reboot
sudo locale-gen en_US.UTF-8
sudo update-locale LANG=en_US.UTF-8
或中文环境:
sudo locale-gen zh_CN.UTF-8
sudo update-locale LANG=zh_CN.UTF-8
export LANG=en_US.UTF-8
export LANG=C
hostname
❌ 主机名里写中文
❌ /etc/hostname 用 GBK 编码保存
❌ 终端编码和服务器编码不一致
Linux hostname 乱码,99% 是因为用了中文或非 UTF-8 编码,改成英文 hostname + UTF-8 环境即可解决。
如果你愿意,可以把:
hostname 输出locale 输出发出来,我可以帮你精确定位。