在 Debian 里“隐藏域名”要看你具体指的是哪一层。常见有下面几种场景,我分别说明,你可以对号入座。
场景:
你有一个服务运行在 service.example.com,但希望用户访问 www.example.com/app 时看不到真实域名。
server {
listen 80;
server_name www.example.com;
location /app/ {
proxy_pass http://service.example.com/;
proxy_set_header Host service.example.com;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
✅ 效果:
浏览器地址栏始终显示 www.example.com/app,不会暴露 service.example.com
场景:
服务器有多个域名,只想暴露一个,不让别人知道其他域名。
server {
listen 80 default_server;
server_name _;
return 444; # 无响应断开
}
✅ 效果:
用 IP 或其他未配置域名访问时,不会返回真实站点。
场景:
你用 curl 访问服务器,不希望对方看到真实域名。
curl http://1.2.3.4 -H "Host: hidden.example.com"
⚠️ 注意:
场景:
HTTPS 请求中,域名在 SNI 里是明文传输的。
虽然不是“隐藏域名”,但常被一起做。
server_tokens off;
# /etc/ssh/sshd_config
DebianBanner no
场景:
不想让别人通过 DNS 查到你的真实服务器 IP。
例如 bash / history 里不显示:
curl -s "https://example.com" >/dev/null
或:
export HISTIGNORE="*example.com*"
| 目的 | 推荐方式 |
|---|---|
| 浏览器不显示真实域名 | 反向代理 |
| 防止 IP 访问暴露站点 | default_server |
| HTTPS 隐藏域名 | CDN / ECH |
| 防止扫描 | 关闭 banner |
| DNS 隐藏 | CDN / 内网解析 |
如果你能具体说一句,比如:
“我想让访问者看不到
api.xxx.com这个域名”
或
“我想让 Debian 服务器不暴露域名”
我可以给你精确到配置文件级别的方案。