在 Linux 中,“隐藏 hostname”通常有以下几种常见需求场景,不同场景做法不同:
如果你只是不想在终端里看到 @hostname:
编辑 ~/.bashrc:
PS1='\u:\w\$ '
(去掉 \h 或 \H)
生效:
source ~/.bashrc
编辑 ~/.zshrc:
PROMPT='%n:%~%# '
sudo hostnamectl set-hostname fake-name
或临时:
sudo hostname fake-name
⚠️ 重启后可能恢复(取决于发行版)
很多服务(SSH、SMTP、HTTP)会暴露 hostname:
编辑 /etc/ssh/sshd_config:
DebianBanner no
或:
HostKeyAlias something
不要使用 $hostname 作为 Server 头。
avahi-daemon(mDNS):sudo systemctl disable --now avahi-daemon
/etc/hosts 中暴露真实名在 Docker 中:
docker run --hostname hidden-host
如果你能说明具体场景(终端?SSH?局域网?服务器?),我可以给更精确方案。