在 Ubuntu 中“隐藏 hostname”通常有以下几种理解和做法,取决于你想要的“隐藏”程度:
如果你只是不想在终端里看到 user@hostname,可以修改 shell 提示符。
.bashrc(Bash 用户)nano ~/.bashrc
找到类似:
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
改为:
PS1='\u:\w\$ '
保存后执行:
source ~/.bashrc
修改 ~/.zshrc 中的 PROMPT 或 PS1,去掉 %m 或 %M。
编辑:
sudo nano /etc/dhcp/dhclient.conf
注释或删除:
send host-name = gethostname();
改为:
# send host-name = gethostname();
重启网络:
sudo systemctl restart networking
/etc/hostnamesudo hostnamectl set-hostname localhost
或编辑:
sudo nano /etc/hostname
改成:
localhost
⚠️ 注意:完全为空可能导致系统异常。
nano ~/.ssh/config
添加:
Host *
UserKnownHostsFile /dev/null
StrictHostKeyChecking no
但这不会隐藏服务端 hostname,只影响客户端体验。
SSH 本身会暴露主机名给客户端(如 ssh 登录后提示)。
/etc/hosts确保:
127.0.0.1 localhost
不要写真实 hostname。
sudo systemctl stop avahi-daemon
sudo systemctl disable avahi-daemon
sudo hostnamectl set-hostname ""
⚠️ 可能导致部分服务报错。
| 目的 | 方法 |
|---|---|
| 终端不显示 | 改 .bashrc |
| 网络不发送 | 改 dhclient.conf |
| 系统级隐藏 | 改 /etc/hostname |
| 局域网隐藏 | 关 Avahi |
如果你能说明**“隐藏 hostname 是给谁看”**(终端 / 局域网 / SSH / 服务器),我可以给你更精确方案。