域名绑定后打不开,90%是dns未同步或nginx未加载配置:先用dig +short确认解析ip是否正确,再用curl -i判断连接状态(connection refused/502/404),并检查cdn是否为dns only模式、nginx配置文件是否存在且语法正确、站点状态是否为“已启动”。

域名在宝塔里绑了但打不开,90% 的情况不是配置写错了,而是 DNS 解析还没同步到本地或服务器,或者 Nginx 根本没加载对应配置。
用 dig 和 curl -I 确认解析是否真正生效
别只信本地 ping 或浏览器访问结果——它们可能被缓存或代理干扰。直接在服务器上执行:
-
dig your-domain.com +short:看返回的 IP 是不是你服务器的公网 IP;全球节点未全量更新时,+short结果为空或错误 IP 就说明 DNS 没到位 -
curl -I http://your-domain.com:如果返回Connection refused,说明请求根本没到 Nginx(DNS 或防火墙问题);返回502 Bad Gateway则是后端挂了;返回404才是 Nginx 没匹配到站点 - 注意 CDN 干扰:如果用了 Cloudflare、腾讯云 CDN,必须确认状态是「DNS only」(灰色云),否则流量不进宝塔,
dig查到的可能是 CDN 节点 IP
检查 Nginx 虚拟主机配置是否生成并启用
宝塔添加站点后,会在 /www/server/panel/vhost/nginx/ 下生成对应域名的 .conf 文件,但文件存在 ≠ 生效:
- 运行
nginx -t:语法错误会直接报错,比如server_name后少分号、路径里有中文、SSL 证书路径不存在 - 确认配置文件名和域名严格一致:比如绑的是
api.example.com,配置文件必须叫api.example.com.conf,不能是api.conf或example.com.conf - 检查站点状态:在宝塔「网站」列表里,对应站点右侧必须是绿色「已启动」,灰色「已停止」等于 Nginx 根本没加载这个配置
- 手动重载比点面板按钮更可靠:
bt 1或nginx -s reload,避免面板 UI 假死导致配置未提交
二级域名绑定时 server_name 和根目录容易填反
这是新手高频翻车点:宝塔界面看似简单,但字段语义和实际 Nginx 行为不完全对等:
-
域名栏必须填完整域名,如admin.example.com,不能只填admin;多个域名要换行或逗号分隔,不能空格 -
根目录必须是真实存在的绝对路径,且以/www/wwwroot/xxx开头;常见错误是写成/www/wwwroot/admin.example.com,但实际目录是/www/wwwroot/admin,导致 Nginx 找不到index.php - 如果想让
api.example.com和admin.example.com共用一个代码库,不要新建两个站点,而是在已有站点的「域名管理」里追加,否则会生成两套冲突配置 - HTTPS 下出
ERR_SSL_PROTOCOL_ERROR?大概率是 Let's Encrypt 证书没覆盖该二级域名——进站点「SSL」→「申请证书」→ 在「其他域名」栏手动补上,别依赖自动包含
本地 /etc/hosts 修改后浏览器仍不生效
改完 /etc/hosts(Linux/macOS)或 C:\Windows\System32\drivers\etc\hosts(Windows)只是第一步,很多用户卡在这一步:
- Chrome 必须手动清 DNS 缓存:地址栏输入
chrome://net-internals/#dns→ 点「Clear host cache」 - Firefox 需在
about:config中搜索network.dnsCacheExpiration,设为0临时禁用缓存 - 代理工具(Clash、Surge、SwitchyOmega)默认绕过
hosts,切到「Direct」模式再试 - 安全软件(火绒、腾讯电脑管家)会劫持
hosts,临时关闭测试;macOS 还需执行sudo killall -HUP mDNSResponder
真正难排查的,往往不是“哪步没做”,而是“哪步做了但没生效”——比如 DNS 已改对,可 curl 还连不上,这时得盯住 /www/wwwlogs/your-domain.error.log 里的第一行错误,它比面板提示诚实得多。











