Skip to main content
黑话筒

域名设置中的NS, CNAME, A, MX, URL转发解释

自从我98年申请第一个域名以来, 我就没搞懂域名设置里面这些东西是做什么用的. 只知道输入我的域名能打开我的网站就可以了.

但是最近申请了一个空间, 该空间要求我把域名的NS记录指向他们指定的服务器, 而新网的MyDNS又不能修改二级域名的NS记录, 所以我就研究了一下这几种类型的记录. Google了一下, 除了CNAME之外, 其他几种记录的意思我搞清楚了.

  1. NS, 即Name Server, 用来做域名解析用的服务器, 该服务器中会存储某个域名或子域名该解析成什么ip地址.
  2. A, 即Address记录, 用来记录一个域名和一个IP地址的直接关系, 这里只是一个简单的映射. 比如我设定iworm.net的A记录为202.102.220.220, 那么当DNS服务器找到我的NS服务器的时候, NS就会直接把这个IP地址返回, 完成解析.
  3. MX, 即Mail eXchange记录, 用来做邮件交换的. 可以设定iworm.net的邮件服务器地址是什么. 就是说有人访问iworm.net, 他得到的ip地址是202.102.220.220, 但是如果他发邮件给xx@iworm.net, 邮件服务器去获取这个域名的IP的时候, 会得到MX记录中指定的地址, 而不是202.102.220.220
  4. CNAME, 是一个域名的别名. 比如我设定iworm.net的A记录为202.102.220.220, 我为iworm.net设定一个CNAME为blog.iworm.net, 则我输入iworm.net或者blog.iworm.net都会访问到我的网站.

但是CNAME随着现在虚拟主机的使用而行为变了. 现在的虚拟主机是这样工作的, 很多域名最终都会指向同一个IP地址, 这个IP所对应的主机会根据用户输入的域名来判断该让你访问它上面的什么站点. 域名不同, 访问的站点也不同(首先要在服务器上做一个域名的绑定).

关于CNAME, 我举个例子: 我的主页空间要求我把域名的ns记录指向ns1.byet.org, 但是我的域名服务商不提供修改iworm.net域名NS记录的功能, 所以我这么做: 新建一个主机头为host-01的子域名, 然后把该域名的NS服务器指向ns1.byet.org, 接着, 我为host-01.iworm.net添加一个CNAME为iworm.net的别名, 然后我的空间绑定iworm.net域名, 于是我输入iworm.net就访问到了我的空间.

  1. URL转发, 可以使一个域名或子域名重定向到一个已有的URL上. 比如blog.iworm.net我做个URL转发到http://www.163.com/iworm/aaa.html, 这样当访问blog.iworm.net的时候就会跳转到http://www.163.com/iworm/aaa.html

值得注意的是, URL转发很简单, 但是有些域名服务商不用规范的http 301做转发, 而用javascript或者meta refresh做转发, 这对于搜索引擎来说是不友好的. 搜索引擎会认为这种网页是具有spam行为的.


以上这几种地址是有优先级的: NS>A>CNAME>URL转发

介绍两个工具:

  1. 看域名解析情况的在线工具Dig
  2. 检查URL转向是不使用Http 301转向实现Search Engine Friendly Redirect Checker Tool

如果各位仍然看不懂我写的, 可以继续看看这些文章, 希望您能明白.

什么是A记录?什么是别名记录(CNAME)?什么是MX记录?什么是NS记录?

域名知识:A记录,MX记录,CNAME记录

域名解析 A记录 MX记录 CNAME记录 TTL

名词解释: 域名解析 泛域名解析 A记录 MX记录 CNAME记录 TTL

What is CNAME?

Domain name system(Wikipedia), 要用代理, 或者试试看这个地址