免费注册 查看新帖 |

Chinaunix

广告
  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 12368 | 回复: 22
打印 上一主题 下一主题

[DNS] 如何自己架设动态dns服务器 [复制链接]

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
1 [报告]
发表于 2004-05-16 00:55 |只看该作者

如何自己架设动态dns服务器

http://www.study-area.org/tips/ddns.htm

不過,若要用 web 來更新,那 cgi 你要自己寫了。

论坛徽章:
0
2 [报告]
发表于 2004-05-17 08:48 |只看该作者

如何自己架设动态dns服务器

动态DNS解析自己动手做
阅读本文需要你参考这个文章http://www.chinaunix.net/jh/4/74349.html
安装动态DNS解析,你首先需要下列软件:
第一,DNS服务器后台软件,推荐使用bind9(bind9以前的版本不支持动态dns更新.),平台各种平台都可以,本文是使用windows 2000+bind9.(因为关于unix类操作系统中的文章相对比较多,所以本文就不再详细说明如何在unix系统中实现动态dns更新.本文仅仅涉及将bind9移植到windows平台中.),为了实现这个功能,你首先需要去http://www.isc.org(或http://www.bind.com(中下载相应的windows平台中的bind9好像最新的版本是9.2.3).下载下来之后解压安装就可以了,默认路径是c:\winnt\system32\dns中.
第二:配置named.conf文件,下文只仅仅涉及了一部分动态dns需要的一些部分,其他的大家可以参照网上的配置资料.
//named configure by jackywong
options {
directory "c:\winnt\system32\dns\etc\named";
version "testdns.com";
};

key "www" { //此key要使用dnssec-keygen –a hmac-md5 –b 128 HOST www生成
algorithm hmac-md5;
secret "WJEBMfFgU09zg3qGvUS3iw=="; //secret中的密码是生成的Kwww*.key中的那串东西.
};
.
.
.
zone “testdns.com” {
type master;
file “db.testdns.com”;
update-policy{
grant www name www.testdns.com. A; //与上面的key的名字对应就可以了
grant mail name mail.testdns.com. A;
grant sub subdomain testdns.com.. ANY; //身成的key可以更新testdns.com的所有子域
};
};



关于上面的这些可以看这片文章.
http://www.chinaunix.net/jh/4/74349.html

下面主要说明如何在windows中获得你的IP地址,之后上传更新.由于windows下默认的查看电脑IP地址的方法只有一种,那就是使用ipconfig,之后会分行显示很多信息,windows这样做看似比较直观,但对于如果你想通过命令行来获得你的iP地址,这样就会变得比较难了,因为特征子串比较难以获得.说到这里就应该抱怨一下”微软”了.微软自称很多东西可以在命令行方式进行,其实呢?你想在命令行下进行的东西,他都不能做.经过详细的查找终于在微软提供的resource kit中找到了一个类西grep的处理工具叫qgrep,呵呵这个工具实在是太有用了,可惜只有这一个.
不多说废话了,为了取得本机的IP地址,我们需要下列工具,大家可以在网上查找一下,应该可以很方便的找到.
Netwox515.exe 和netwib515.dll 我们使用这个工具来显示ip地址.使用这个工具你将会得到类似下面的特征串.
C:\>;netwox 1 -i
nu ip /netmask ppp point_to_point_with
1 127.0.0.1 /255.0.0.0 0
7 192.168.1.1 /255.255.255.0 0
7 192.168.88.52 /255.255.255.0 0
9 192.168.1.253 /255.255.255.0 0
呵呵,这个工具还有很强大的功能,搞网络的同志们一定要弄一个哦.
Sh.exe,一个模拟运行在windows中的shell,使用它,你就可以完成cmd无法完成的处理类unix的脚本了.(批处理对与脚本来说实在是太弱智了.)
Grep.exe这个工具就不用说了吧,大家应该都知道,如果不知道的话,呵呵,快去看看资料吧.
Cat.exe,也是一个大名鼎鼎的工具.标准的unix中全部都提供这个东东.
Cut.exe,同样也是很多unix系统的标配.
Sed.exe.用来处理文本流,功能真的是太强大了.(可惜windows从来没有提供类似这个工具,正是因为没有它,才使windows的批处理象一个畸形的东东,就使加上vbs,js都比不上这个功能强大.).

有了上面的几个东东,我们就可以开始动手写一个脚本,来获取本机的公网ip了.首先明确一点,我仅仅选择了一个比较简单的切入点,那就是凡是利用windows的拨号网络来拨号的adsl获得的公网ip均有以下特征,(目前我所知道的只有一种不是利用拨号网络来进行拨号,那就是enternet300系列.这种如何获得公网ip可能需要大家自己研究了,J).我们使用ipconfig就会看到,凡是使用拨号网络进行拨号的你所获得的ip均是255.255.255.255.不信可以看看.有了这个我们就可以非常方便的进行出处理了.下面开始写这个脚本:
#!c:/winnt/sh.exe //告诉sh.exe,以下的内容是脚本

netwox 1 –i |grep 255.255.255.255 >; c:/ip //把获得的有255.255.255.255的行输处到 c:/ip这个文件中
sed -e 's|/255.255.255.255| |g' c:/ip >;c:/swapip //处理c:/ip这个文本流,把其中的/255.255.255.255替换为多个空格,并把结果输出到 c:/swapip中
new_ip=`cat c:/swapip |cut -c4-18` //把刚才得到的文件截取从4-18的字符,为何这么做,大家可以自己想想,可获得的ip为n.n.n.n到nnn.nnn.nnn.nnn,上面那样做就是为了保证通用性.把获得ip赋值给new_ip.
cat c:/snd |sed -e "s|ipadd|$new_ip|g" >;c:/up.txt //处理c:/snd文件,把里面的ipadd替换成为new_ip的值.

c:/winnt/system32/dns/bin/nsupdate -k c:/winnt/system32/dns/bin/Ksc.+157+48890.key -v c:/up.txt //更新dns记录,里面的nsupdate执行文件是bind9中的,如果没有可以下载一个bind9,之后拷贝到相应的目录中去.


作完这些,基本的东西就已经搞定了,接下来就是怎么作定时器和如何使用上面编写的shell脚本了.定时器windows提供了一个替代品,虽说功能不是很强大,但作一些日常的工作也就够了(使用windows的计划任务,必须保证你已经启动task schedule,并且它的启动方式是自动.).做一个批处理.auto.bat,里面的内容很简单.
Sh c:/你刚才编写的脚本的名称.(一定要注意\在unix系统代表转义字符,千万不能在脚本中的路径中使用这个字符,全部用/替换.)
之后就做一个计划任务,让这个脚本,每隔10分钟运行一次.呵呵就大功告成了.

上面的脚本适合以下对象,客户端是windows系统,服务器什么平台没有什么要求..本文算是对http://www.chinaunix.net/jh/4/74349.html的一个补充吧.

论坛徽章:
0
3 [报告]
发表于 2004-05-17 12:04 |只看该作者

如何自己架设动态dns服务器

很好!但能不能把在WIN2000下的从开始安装到安装成功的整个过程和脚本都写出来呀?急盼!

论坛徽章:
0
4 [报告]
发表于 2004-05-17 13:01 |只看该作者

如何自己架设动态dns服务器

你参照我文档中提到的那篇文档,对着做就可以了,很简单的.关于更新脚本我也在文章中写出来了,你整理一下,把里面的注释去掉就可以了.如果你是使用windows的拨号网络,我上面的脚本就有通用性.有什么问题你可以发邮件给我.postmaster@panva.com.cn.

论坛徽章:
0
5 [报告]
发表于 2004-05-17 13:28 |只看该作者

如何自己架设动态dns服务器

我现在是这样的
我想在别人的WIN2000服务器上安装一个BIND9,因他们学校那的是固定IP,但他们的服务器和客户都是通过防火墙NAT出去的。而我现在上网也是通过ADSL MODEM自动拔号共享上网的,所以我没法用你的脚本取得公网IP的。不知能不能通过PING一个免费的动态域名得知MODEM取到的公网IP,然后再去服务器上更新,就不知这样要怎样实现了。

论坛徽章:
0
6 [报告]
发表于 2004-05-17 13:54 |只看该作者

如何自己架设动态dns服务器

关于前一个问题我想可能就比较麻烦了,因为你必须在它的防火墙上把53端口映射到安装bind的那个电脑上.这个东西恐怕只有网络的管理员才能做.或者如果你知道他们防火墙密码的话,应该也是没有问题的.
关于取IP的方法,其实有很多种的,不过我想最简单的可能就是你说的那种了.申请一个免费的动态域名,之后安装一个客户端挂在网上.之后通过Ping取取得IP地址是肯定行的通的.你最好做一个试验试试.具体取法如下:
ping your free domain >;c:/ip
sed -e 's|Reply from ||g' c:/ip >;c:/swapip
sed -e 's|: bytes|                 |g' c:/swapip>;c:/ip
new_ip=`cat c:/ip |cut -c1-18`
这样的获得的应该就是你的公网Ip了.不过我觉得这样做的通用性不是很好.呵呵,我只是为了解决你的问题.

论坛徽章:
0
7 [报告]
发表于 2004-05-17 13:55 |只看该作者

如何自己架设动态dns服务器

sed -e 's|: bytes| |g' c:/swapip>;c:/ip
这句里面的空格要足量,否则,取ip的时候有可能取到字符

论坛徽章:
0
8 [报告]
发表于 2004-05-17 14:17 |只看该作者

如何自己架设动态dns服务器

多谢散步的风,我先试试先,如有什么问题我再请教你,多谢支持!
我朋友是学校的网管,所以要做端口映射没问题。如能成功,那都可以让他给大家提供服务了。

论坛徽章:
0
9 [报告]
发表于 2004-05-17 14:28 |只看该作者

如何自己架设动态dns服务器

呵呵,那感情好了.

论坛徽章:
0
10 [报告]
发表于 2004-05-17 16:53 |只看该作者

如何自己架设动态dns服务器

有没有已编译好的FOR WIN2000的BIND9呢?因为要在别人服务器上装太多相关软件不太好的!安装BIND9太麻烦了!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP