二级域名IP映射是DNS解析和服务器配置共同作用的结果,只要在域名服务商处添加A记录指向目标IP,并在服务器上绑定该域名,多数情况下几分钟到24小时内即可生效。
二级域名IP映射怎么设置?三步完成A记录绑定
二级域名IP映射的真正含义,是把sub.example.com这样的子域名解析到一台服务器的公网IP,让访问者请求这个二级域名时,能直接到达你指定的那台机器,整个过程不复杂,但每一步都不能跳。
第一步:确认目标IP和服务器环境
先确认你要绑定的服务器公网IP是静态IP还是动态IP,动态IP每次重拨都会变,用A记录映射不管用,需要搭配DDNS服务,或者是改用内网穿透方案,多数情况下,正经站点都建议用固定公网IP,不然DNS缓存里存着旧IP,用户访问会时好时坏。
同时确认服务器的80端口或443端口已经在防火墙和安全组里放行,如果端口没放开,就算解析对了,网站照样打不开。
第二步:在DNS管理后台添加A记录
登录你的域名DNS管理平台,找到域名解析设置,添加一条记录:
- 主机记录:填二级域名的前缀,比如你想让
blog.example.com生效,就填blog - 记录类型:选择
A - 记录值:填服务器公网IP
- TTL:保持默认,或者设置为600秒,方便后续排错
这里最容易犯的错是把主机记录填成完整域名,DNS平台里的主机记录只需要前缀,不是完整URL,行业共识认为,A记录是二级域名映射最直接的方式,不依赖其他域名,稳定性也最好。
第三步:服务器端绑定该二级域名
DNS解析只是把名字指向IP,最终放行访问还得靠服务器上的Web服务,以Nginx为例,需要在配置里新增一个server块,server_name写成你的二级域名,
root指向对应目录,Apache则是在虚拟主机配置里绑定ServerName。
配置完成后执行nginx -t检查语法,然后systemctl reload nginx让配置生效,此时在浏览器输入二级域名,应该能正常打开对应站点。
二级域名IP映射不生效怎么办?按顺序排查
解析不生效时,别急着删记录重加,按下面的顺序排查,基本能定位到真正原因。
先查本地DNS缓存
本地电脑的DNS缓存会把旧解析结果保存一段时间,Windows下打开命令行执行ipconfig/flushdns,刷新后再试,macOS和Linux也有对应的清缓存命令,也可以直接重启网络连接。
接着执行nslookup sub.example.com,看返回的IP是否和你设置的A记录一致,如果返回的IP还是旧地址,说明全球DNS同步还没完成或本地DNS服务器还没更新,TTL设置越短,生效速度越快。
再查服务器防火墙和安全组
DNS解析已经正确,但网站还是打不开,问题往往出在服务器端,先检查云服务商的安全组入站规则,确认80和443端口允许公网访问,本机防火墙也要查看,CentOS和Ubuntu的命令不太一样,但核心逻辑是一样的:先放行端口,再重载防火墙。
在服务器本机执行curl -I http://sub.example.com,如果返回HTTP状态码,说明Web服务本身正常,如果本机能通、外网不能通,那就基本锁定在安全组或防火墙设置上。
最后查Web服务配置和HTTPS证书
有些情况是解析已经生效,但访问提示“无法连接”或“网页无法正常运作”,这时要看nginx -t有没有报错,看站点目录是否存在,看PHP或后端进程有没有启动。
如果二级域名启用HTTPS,还要确认证书里包含这个二级域名,或者使用泛域名证书,买家接入CDN后,还要在CDN后台回源地址填正确,否则会出现证书不匹配或重定向循环,业内专家指出,这类问题不需要动DNS,调整Web服务配置就能解决。
二级域名解析失败是什么原因?常见错误清单
相当一部分二级域名解析失败的问题,原因都集中在这几类:
- 主机记录填了完整的
sub.example.com,而不是前缀sub - A记录值多了一个空格,或者IP写错一位
- 服务器机房在国内但域名没有完成ICP备案,导致访问被拦截
- 同一个主机记录下同时存在CNAME和A记录,DNS平台会拒绝配置
- 二级域名前缀和服务器站点绑定的
server_name不一致 - 旧DNS缓存还没过期,TTL设置太长
如果你的平台已经提示解析已有记录,最好先确认不是重复添加,CNAME和A记录共存的情况在一些平台会直接提示冲突,但有些不提示,只保留其中一条,结果就是你想要的效果没有出现。
二级域名解析到不同服务器端口:配置上有什么区别
很多人问:我想让二级域名访问服务器上的8080端口,是不是在DNS里填端口?答案是DNS不负责端口,A记录只能映射IP,不能映射端口,浏览器访问sub.example.com时默认走80端口,访问https://sub.example.com时默认走443端口。
如果服务跑在8080或其他端口,你可以在Web服务层做反向代理,例如Nginx配置:
server {
listen 80;
server_name sub.example.com;
location / {
proxy_pass http://127.0.0.1:8080;
}
}
这样用户访问二级域名时,Nginx把请求转给本机8080端口的程序,用户网址里不需要加冒号,另一种做法是直接放行8080端口,但用户必须手动输入sub.example.com:8080,体验差,而且端口经常被扫描攻击。
A记录和CNAME的选择也需要区分,下表列出两者的核心差异:
| 功能 | A记录 | CNAME |
|---|---|---|
| 指向目标 | 直接指向IP | 指向另一个域名 |
| IP变动时的维护 | 每次改A记录 | 只需改目标域名 |
| 是否支持根域名 | 支持 | 部分平台不支持 |
| 使用场景 | 有固定服务器IP | 接CDN或托管在第三方平台 |
如果二级域名要接CDN,大部分时候用CNAME更省事;但CDN服务商要求回源IP时,后端仍然需要有对应的A记录。
二级域名IP映射能否正确生效,核心在于A记录和服务器绑定这两件事都做对,先确认IP,再添加解析,最后绑定站点,按这个顺序操作,大多数问题都不会出现,如果还是不通,从本地缓存、安全组、Web服务三层依次检查。
二级域名IP映射相关问题解答
二级域名IP映射多久能生效?
生效时间取决于DNS平台的TTL值,以及各地运营商DNS服务器的刷新速度,常见平台的默认TTL是600秒或3600秒,多数情况下几小时内全球生效,如果之前设置过超长TTL,最长可能要等待24小时才能完全同步。
二级域名IP映射可以带端口号吗?
不可以,DNS只负责域名到IP的解析,不参与端口信息,访问sub.example.com只能匹配80或443端口,想让二级域名对应非默认端口,需要反向代理或端口转发,端口号不会出现在A记录里。
二级域名IP映射后网站打不开,但ping得通,怎么办?
ping得通说明DNS解析正常,问题在服务器端,检查重点放在安全组是否放行对应端口、Web服务进程是否在运行、server_name是否和当前二级域名匹配、站点目录是否存在,如果服务器本机curl返回正常而外网访问失败,优先排查防火墙和安全组。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/764922.html





