虚拟域名的配置和设置方法
目 录 2、Internet 上有哪些域名?...........................................................................
目 录 2、Internet 上有哪些域名?..........................................................................................1
3、域名的形式..............................................................................................................2
4、域名级别的划分.......................................................................................................2
5、多个域名对应一个IP 的虚拟域名设置.....................................................................3
第一步:泛域名的解析..........................................................................................4
第二步:利用程序来完成虚拟域名的解析.............................................................5
附录一:域名与IP 一一对应的虚拟域名配置...............................................................7
附录二:一个IP 地址对应多个独立域名的配置..........................................................11
1、设不同的TCP 端口号.....................................................................................11
2、设不同的主机头名..........................................................................................11
虚拟域名的配置和设计方法
用过网易的my.126.com 域名转向服务的朋友们一定都对它的强大功能非常感兴趣吧?只要申请了自己的虚拟域名,如icech.126.com ,以后无论自己的真实网址如何变化,访问者都能使用这个虚拟域名准确访问到自己的网站。以前我都以为这种域名是一种域名服务,因为工作上的需要,我们也要使用这种域名形式,但是应该怎么做呢?开始找了很多书籍和资料,发现做一个所谓的“二级域名”其实很简单。
为什么我说“二级域名”是“所谓的”呢?因为按照正规的叫法这是完全错误的。下面就让我来普及一下域名知识吧:
1、什么是域名?
从技术上讲,域名只是一个Internet 中用于解决地址对应问题的一种方法。可以说只是一个技术名词。但是,由于Internet 已经成为了全世界人的Internet ,域名也自然地成为了一个社会科学名词。
2、Internet 上有哪些域名?
国际通用域名之类别域名:
AC -适用于科研机构(怎么现在不见这个域名呢?);
作者:icech 第 1 页 共 12 页 2002-5-24
,COM -适用于工、商、金融等企业;
NET -适用于互联网络、接入网络的信息中心(NIC)和运行中心(NOC);
ORG -适用于各种非盈利性的组织;
由于历史原因,下列域名限美国专用:
EDU -适用于教育机构;
GOV -适用于美国政府部门,国内机构不能注册;
MIL -适用于美国的军事机构,国内的机构不能注册;
国际域名之国家名称:根据ISO 标准定义。
中国顶级域名之类别域名:
AC.CN -适用于科研机构(好像现在也不能随便申请吧?);
COM.CN -适用于工、商、金融等企业;
EDU.CN -适用于教育机构;
NET.CN -适用于互联网络、接入网络的信息中心(NIC)和运行中心(NOC);
ORG..CN -适用于各种非盈利性的组织;
3、域名的形式
一般我们能够接触的域名有两种:国际域名和国内域名。 国际域名的形式为:主机名. 公司名. 通用域名(COM、NET 或ORG) 例如:,其实实际意义上的域名为snepc.com ,加上www 就是直接指向某个主机了。
国内域名:主机名. 公司名. 通用域名(COM、NET 或ORG).CN (中国为CN ,其他国家或地区另有定义)
例如:,这个域名为dianli.com.cn
4、域名级别的划分(这是我自己理解的,不具有权威性!)
域名的级别是从后向前划分的
如国际域名(snepc.com )来说,com 为第一级(顶级),snepc 为第二级,第二级允许个人或者团体进行注册。
作者:icech 第 2 页 共 12 页 2002-5-24
,国内域名属于CNNIC 管理,所以要求比较严格,一般来说个人是不能申请注册国内域名的,就dianli.com.cn 来说,cn 为第一级(顶级),在顶级上划分下面的二级域名,对于中国来说,二级域名包括两种方式:类别域名和行政区域名。
“类别域名”6个,分别为:
AC —适用于科研机构;COM —适用于工、商、金融等企业;EDU —适用于教育机构;GOV —适用于政府部门;NET —适用于互联网络、接入网络的信息中心(NIC)和运行中心(NOC);ORG —适用于各种非盈利性的组织。
“行政区域名”34个,适用于我国的各省、自治区、直辖市,分别为:
BJ —北京市; SH —上海市;TJ —天津市; CQ —重庆市;HE —河北省; SX —山西省;LN —辽宁省; NM —内蒙古自治区;JL —吉林省; HL —黑龙江省;JS —江苏省; ZJ —浙江省;AH —安徽省; FJ —福建省;JX —江西省; SD —山东省;HA —河南省; HB —湖北省;HN —湖南省; GD —广东省;HI —海南省; GX —广西壮族自治区;SC —四川省; GZ —贵州省;YN —云南省; XZ —西藏自治区;SN —陕西省; XJ —新疆维吾尔自治区;QH —青海省; NX —宁夏回族自治区;GS —甘肃省; TW —台湾;HK —香港; MO —澳门。现在多了个重庆不知道加没加上J
我们只能申请的就是三级域名了L ,但是没关系的,我们一般才不会用什么国内域名呢!又贵又不好申请,我的两个国际域名(icech.com 和weste.net )才70元一个,哈哈。
所以如果我们设置news.dianli.com.cn 就成了四级域名了。
总之不管他是多少级域名,统称为虚拟域名没问题的。
5、多个域名对应一个IP 的虚拟域名设置
其实虚拟域名并不复杂。如果你有一点网络编程的基础,再看完本文,你也可以自己实现虚拟域名服务,过一把ISP 的瘾。
我们都知道信息的资源地址一般是以域名形式给出的,而客户机是通过DNS 的解析获得主机的IP 地址后进行信息传递的。从域名到DNS 到IP 再到主机这个过程我就不罗嗦了,因为实在是懒得敲字了。
而我们要完成的虚拟域名是这样子的:例如我有一个国际域名icech.com ,但是我想要几个虚拟的域名news.icech.com 、love.icech.com 等等,但是服务商却没有提供这项服务啊,怎么办?常言道“自己的事情自己做”哦,这句不经典,“把自己的事情做好”这句经典了作者:icech 第 3 页 共 12 页 2002-5-24
,吧!不懂?那就说明你不懂政治!
说到现在我还是没有把真经说出来,哈哈,不是我不说是我实在很高兴,我能一下在把话说完。不好还有半个小时下班,看样子我是写不完了,进入正题!
制作一个形如news.icech.com 的域名本来十分简单的,有些朋友会说,这还不EASY ?在DNS 上一配置不就OK 了?完全正确,在DNS 上进行配置确实能够实现这种效果,而且远比我下面讲述的方法要好得多,但是为什么我还要小题大做呢?原因是这样的。
在茫茫的宇宙中,我们地球无时无刻不在转动着,在无穷尽的地球上,有一种东西(或者说是资源)叫域名,另一种资源叫IP 地址,由于初期设计的原因,我们的域名资源是无穷无尽的,而且可以再生的,就像河流和树木,但是我们的IP 地址确实有限的,是宝贵的,是不能随便浪费的,就像石油和煤炭。
一般来说一个域名或者几个域名对应一个IP 地址,但是一个IP 地址只能对应一个主机,也就是说,在一般意义上,一个IP 只能对应一个网站。如果我们有很多的形如news.icech.com 的域名要找一个IP 地址去对应的话,资源的浪费是不言而喻的。
就是说,我们现在对应的关系是:
一个或者多个域名——>一个IP 地址——>一个主机
我们要转换成:
多个域名——>一个IP 地址——>多个主机或者URL 地址
就是这么简单的道理。但是却让我想了N 天,原因是什么呢?呜呜,妈妈说这是我从小不用功学习结果。
不废话了,我要开始了。
第一步:泛域名的解析
首先我要给大家讲一个故事:故事的内容是“泛域名”。从前啊,有个小朋友叫做“泛域名”,泛域名是谁家的小孩呢?知道DOS 伯伯吗?唉~~对了,泛域名就是DOS 伯伯的表兄的外甥的朋友,DOS 有个儿子叫做“通配符”,比如你在计算机中查找一个文件,你打上ice*.*,它就会把什么icech.sys 呀,icech.old 呀,icecream.eat 等文件统统查找出来。
“泛域名”就是这个样子的,就像“*.icech.com”。那么泛域名有什么功用呢?这么说吧,你在DNS 中建立一个名为“*.icech.com”的泛域名,那么所有就像www.icech.com 、news.icech.com 、love.icech.com 等等格式的域名都不用建立就会自动生效,他们都会指向作者:icech 第 4 页 共 12 页 2002-5-24
,建立此泛域名时指向的IP 地址。如果你申请了一个域名,通过这样的测试,你就会知道你申请的域名是不是泛域名了。不过一般的申请域名的时候如果我做特殊要求,ISP 接入商是不提供此项服务的,如果你想解析一下,“呵呵,哈哈,掏钱来”!
建立泛域名的大致步骤是:
1、进入DNS ,选“正向查找区域”,单击右键,新建“区域”,输入“icech.com ”(你写你自己的域名啊,不要乱用我的域名)
2、选中“icech.com ”,单击右键,新建“域”,输入“*”
3、选中“*”,新建“主机”,主机名保持为空,输入相应的IP 地址就OK 了。
简单!EASY !你又该说了,悟空,不要大吵大嚷的嘛!小心吓了那些花花草草的。后面的才是关键呢。
第二步:利用程序来完成虚拟域名的解析
假设我们希望设置一个news.icech.com 的域名,当我们在浏览器中输入“news.icech.com ”的域名时,他会转向它的真实地址。一般流程肯定就是,它会首先找到DNS 服务器,并且进行域名与IP 地址的转换,这里因为我们已经设置了泛域名,news.icech.com 就会直接指向icech.com 指向的IP ,这之间我们不能做什么其他的设置来改变这一流程。那么我们所要做的就是在这个IP 地址所对应主机的默认WEB 页面上做文章,让不同的子域名进行URL 重定向,转到它们所希望的URL 网址上去。
1、设置icech.com 所在主机所默认的WEB 服务的默认文档为index.asp 、index.php 或者index.cgi 等动态页面,而不能是静态的index.htm 页面。
2、通过ASP 、PHP 或者CGI 程序来进行URL 的重定向功能
(1)index.php
$domain=$SERVER_NAME; //取得用户所访问的域名全称
$domain=eregi_replace('.icech.com', '', $domain); //截取域名全称,获取用户所要访问的三级域名,获取所访问的域名全称,可以直接使用PHP 系统变量$SERVER_NAME或者$HTTP_HOST,注意引用系统内部变量必须大写。事实上PHP 系统内部已经对用户浏览器发送的访问请求头信息进行了全面的分析,并分割成、保存成相应的系统变量,以方便程序使用。第二个语句使用正则替换,查找“.icech.com ”并替换成空字符,这样就获得了三作者:icech 第 5 页 共 12 页 2002-5-24
,级域名。
通常,一个大型的虚拟域名服务都是将用户子域名和其对应URL 放在数据库里,这样,用户可以随时注册新的三级域名和更改域名对应的URL ,那么下面的工作就是从数据库中检索出该三级域名对应的URL (数据库检索程序略)。
...... //根据三级域名检索数据库,并得到变量$url,其中存放了该域名对应的URL 地址
Header("Location: $url"); //系统重定向,使用户浏览器转向相应URL
获得了对应URL 地址之后,我们可以使用PHP 的header 函数给用户浏览器发送一个重定向信息,让用户转移到相应的URL 地址,这样一个完整的虚拟域名服务过程就结束了。这里我们需要注意的是header 函数之前,不能对浏览器有任何输出,否则会产生错误,另外重定向操作中的URL 地址应该表述完整,例如:http://www.weste.net/index.htm 广告窗口的弹出:
常见的虚拟域名服务通常会有弹出广告窗口,是怎么实现的呢?为了能统一控制,必须在重定向用户浏览器之前弹出这个广告框,那么重定向操作就不能简单地使用header 函数了,因为这个函数要求使用前不能对浏览器有任何输出。要实现它,我们必须改变方法:
...... //根据三级域名检索数据库,并得到变量$url,其中存放了该域名对应的URL 地址
echo '';
//输出一段javascript 代码,用以打开一个广告窗口,显示广告页adv.htm
echo '';
//使用HTML 的meta 语句来实现系统重定向,让用户浏览器转向相应URL 。
(2)index.asp
< name=request.querystring("name") > ‘这样来获取用户所访问的域名全称
trim(name) ‘用trim 函数来截取域名全称,获取用户所要访问的三级域名
与数据库对比,如果与数据库所设置的虚拟域名相同,则直接用response.redirect 转向http://www.weste.net/index.htm页面,否则设定另外转向页面。
具体的设计原则就是这些了,其他的就十分简单了,虚拟域名最重要的在于一个思路,这和我们平时编写程序一样,一个功能的实现并不一定要很高深的技术,成功的关键在于“开动你的头脑”!
作者:icech 第 6 页 共 12 页 2002-5-24
,附录一:域名与IP 一一对应的虚拟域名配置(就是我说的一个域名对应一个IP 地址的那种)
1、打开DNS
2、找到主机名(一般是这台计算机的名字)
3、首先建立“区域”
在“正向搜索区域”单击右键“新建区域”,选择“标准主要

区域”
下一步,填入“区域名称”,如果你要建立news.icech.com 虚拟域名就在此处写上

“COM ”
下一步会提示系统建立一个com.dns 的新DNS 配置

文件
作者:icech 第 7 页 共 12 页 2002-5-24
,下一步“完成”。这样就建立了一个COM 区域。
4、建立“域”
这时您可以在“正向搜索区域”中看到增加了一个COM 的区域。右键单击“COM ”,增选择“新建域

…”,
填入

新域名

icech
确定。这样又建立了新的域。
作者:icech 第 8 页 共

12 页 2002-5-24
,5、建立“主机”
同样的道理,选择icech ,右键“

新建主机…”
这时要求你填写主机名称

和对应的IP 地址


这样就建立了一个news.icech.com 的虚拟域名,在浏览器输入news.icech.com ,您就作者:icech 第 9 页 共 12 页 2002-5-24
,可以访问相对应的IP 主机了。
6、添加“反向搜索区域”
右键“反向搜索区域”,“新建

区域…”
7、在网络ID 中填入1.208.10(注意:正确IP 地址是10.208.1.88,这里要从10.208.1c 处反过来

填写)
8、这样就创建了

文件10.208.1.in-addr.arpa.dns
点击

“完成”
作者:icech 第 10 页 共 12 页 2002-5-24