域名重定向的解决方案(2)

来源:互联网 发布:windows字体文件 编辑:程序博客网 时间:2024/05/20 05:54
在这里介绍下第二种方案,自己架设DNS,将域名进行重定向到自己架设的局域网网站上。
DNS服务器用的是MaraDNS(官网:http://www.maradns.org/,)
web服务器用的是apache服务器
apache服务器的配置想必大家应该都是很熟悉了,网上有丰富的介绍,在这里我就不再说了,重点介绍下MaraDNS。
官网介绍如下:
MaraDNS is a package that implements the Domain Name Service (DNS), an essential internet service. MaraDNS is open source software; this means that anyone is free to download, use, and modify the program free of charge.
MaraDNS是一套实现了DNS(域名解析服务器),一个基本的互联网服务器。MaraDNS是开源软件,这就意味着任何人都可以免费下载、使用、修改程序。在这里,再一次感谢作者!!感谢他给我们免费提供了这么好的一个软件!!

在这里我只是简单介绍下,实现我们的需求,其他强大的功能有兴趣的朋友可以继续研究。这里有一篇老外写的文章,http://blog.mixu.net/2009/10/14/how-to-setup-a-lan-dns-server-using-maradns-under-windows-7/,英文不错的朋友可以看下,如果觉得英文看着还是不理解的,可以跟着我的思路来完成配置。

1.计算机连到路由器的LAN口上,打开路由器的无线功能,进入路由器的配置界面进行配置(在这里路由器的IP地址是192.168.1.1),进入DHCP服务器的静态地址分配,将DNS服务器和apache服务器的IP地址固定下来,避免被路由器的DHCP动态分配,由于我将DNS服务器和apache服务器都架设在自己的计算机上,所以只需要固定自己的计算机的IP地址即可,即192.168.1.5,注意,固定的时候需要填写计算机的MAC地址。

2.进入官网进行下载,http://www.maradns.org/download.html。
由于我是在windows环境下进行安装的,所以选择maradns-2-0-06-win32.zip,解压到指定目录下。

3.配置MaraDNS。
刚开始你是没有secret.txt文件的,你需要运行MkSecretTxt.exe,就会自动创建一个secret.txt,打开secret.txt,你会看到一些乱码(我打开是这样的),安装官网介绍,删除之后,在里面随便写一些字符即可,不知道为什么,没看到原因。
打开一级配置文件mararc,修改文件如下:
ipv4_bind_addresses = "192.168.1.5"//DNS服务器的IP地址
#recursive_acl = "192.168.1.0/24"//局域网的网域
timestamp_type = 2
random_seed_file = "secret.txt"

csv2 = {}
csv2["com."] = "db.lan.txt"//com是DNS要解析的顶级域名,.是结束符,db.lan.txt是相对于的二级配置文件。

自己创建文件db.lan.txt,打开添加内容如下:
*.%       192.168.1.5 ~//*是通配符,%是替换符,192.168.1.5是web服务器的地址,我是自己的计算机上都架设了web服务器和DNS服务器,所以IP地址相同,你可以分开。*.%的意思就是所有最后结尾是com的域名都只解析出IP地址192.168.1.5。

当然你也可以这样写,

csv2["com."] = "db.lan.txt"
csv2["cn."] = "db.lan.txt"
csv2["net."] = "db.lan.txt"
csv2["org."] = "db.lan.txt"
csv2["edu."] = "db.lan.txt"

这样的话,也就是结尾是com、cn、net、org、edu的域名最后都只解析出IP地址192.168.1.5.
虽然这些已经包含了国内大多数的域名,或者你可以继续添加,但与我们之前想的,所有域名都指向同一个IP地址还是有点差别,官网有这方面的介绍,应该是有解决方法的,由于时间关系我还没有吃透,如果有兴趣大家可以继续研究,非常欢迎有朋友可以和我们分享,谢谢!!

单击run_maradns.bat,既可以运行,如果没报错,控制台没有退出的话,应该就是没有问题了,别忘了期待apache服务器,在这个局域网上的计算机或者拿出任意WIFI设备,连上WIFI,输入任意网址(由于配置原因,在这里只能输入结尾是com.cn.net.org.edu的网址),都只能打开IP地址是192.168.1.5的网站。

在这里给大家一个小思路,由于一般192.168.1.5(apache服务器IP地址)打开的都是apache的默认页面,所以为了实现打开的是我们网站的效果,在apache默认页面里添加<meta http-equiv="refresh" content="0;url=http://192.168.1.5/myweb">,让其进行跳转到你的网站页面即可,这样对你的apache上的文件结构也不需要进行改变。
并且你也可以将apache的404页面添加上同样的语句,<meta http-equiv="refresh" content="0;url=http://192.168.1.5/myweb">,这样哪怕你输错域名,apache服务器上没有这样的文件存在,也会重定向到你的网站上去。

当然还有第三种思路,就是将第三方固件,例如DD-MRT,tomato等,或者路由器操作系统,例如routerOS等都可以实现相应的功能,不过难度系数会有点大,并且有刷砖的风险,大家可以视情况而定。

有任何疑问大家都可以提出,只要我能回答的绝不保留,如果我有什么地方说的不对的,也希望大家指正,谢谢!!