域名转向这个说法,不同人指代的操作并不一样。有人只是把域名解析指向一台服务器IP,访问域名等同于访问这台服务器。还有人希望访问A域名时,浏览器自动跳转至B网址。两项操作配置逻辑完全不同,配置出错轻则网站打不开,重则跳转循环。
先说指向IP,也就是基础A记录。登录域名注册商或者解析管理平台,阿里云、腾讯云、Cloudflare、Namecheap都可以,找到域名解析或者DNS管理菜单,点击添加记录。记录类型选择A,主机记录填写@,@代表不带www的主域名。记录值填写服务器公网IP,TTL保持默认或者设置为600秒。保存这条记录之后,再新增一条,主机记录改成www。两条记录添加完成,主域名和带www域名都会指向目标服务器。服务器使用IPv6网络,记录类型更换为AAAA,其余配置不变。

这里有个很多新手容易出错的细节。记录值只填写IP地址,不要附带端口、http://前缀或是斜杠,只保留数字和点组成的IP。端口属于服务器层面配置,解析不处理端口。A记录只能填写IP,CNAME记录只能填写另一个域名,不要把IP填入CNAME记录值,无法生效。
如果使用Cloudflare做解析,添加A记录之后留意云朵图标。橙色云朵代表流量经过Cloudflare代理和CDN,服务器真实IP隐藏;但服务器SSL配置不完善的情况下,容易出现重定向循环。灰色云朵代表仅DNS解析,流量直接访问IP,不经过Cloudflare代理。两种模式按需选择,想要隐藏源站IP开启代理,直连访问就关闭代理。
保存记录之后不要反复刷新浏览器。DNS生效需要时间,一般几分钟到数小时,取决于TTL和各地运营商缓存。验证是否生效,电脑打开命令行执行ping 域名,核对返回IP是否和填写的一致。也可以执行nslookup 域名,Windows和Linux系统都支持。返回IP匹配,说明解析生效。ping不通,但nslookup返回正确IP,大概率是服务器没有开启ICMP响应,或是安全组没有放行,不属于解析层面问题。
服务器端还有几项内容需要确认。安全组或者防火墙放行80、443端口,就算解析配置正确,端口不放行浏览器依旧无法访问网站。Nginx、Apache这类Web服务正常运行,监听对应端口。服务器绑定域名,Nginx配置里server_name需要填写域名,不然请求到达服务器,无法匹配站点,返回默认页面或者404。
另一种域名转向是URL转发,也就是域名跳转。举例,注册abc.com,希望访问abc.com自动跳转abc.net。这种场景不用A记录,在解析后台查找URL转发、显性URL/隐性URL功能。显性转发,浏览器地址栏更新为目标网址;隐性转发,地址栏保留原域名,页面内容加载目标站点。转发类型一般选择301永久跳转或者302临时跳转,301对搜索引擎更友好。填写目标地址保存即可。很多平台URL转发功能,要求域名完成备案,不支持泛解析,大量子域名需要逐条添加。
解析后台没有URL转发功能,或是需要自定义跳转规则,可以直接在服务器配置。Nginx添加return 301 https://目标地址$request_uri;,Apache使用Redirect指令,宝塔面板提供重定向可视化设置。这种方式比DNS层面URL转发灵活,可以按路径、参数跳转,增加条件判断。
最后提醒一个高频踩坑点。域名注册商和DNS服务商可能不是两家。你在A平台购买域名,把NS记录修改指向B平台DNS服务器,解析记录就需要在B平台修改,A平台修改不会生效。查询NS指向,可以查看WHOIS信息。拿不准的话,直接联系域名注册商客服,确认当前解析托管平台。
修改解析记录之后,本地电脑持续无法访问,可以清理本地DNS缓存。Windows执行ipconfig /flushdns,Mac执行sudo dscacheutil -flushcache。手机开启飞行模式再关闭,或者更换网络测试。不要频繁修改解析记录,等待TTL周期结束再排查,频繁改动只会让问题更难定位。