16hot的博客
百度空间 | 百度首页 
               
 
文章列表
 
2008-12-13 05:15
版本说明:
继2.0,2.1,2.2三个版本的推出,我们将在内部已经测试了将近半年的健康检测模块部分的功能集成在2.3版本里。这次发布的2.3-RELEASE版本,是集成健康检测、负载均衡后的第一个正式版本。在这个版本里引入地址池管理概念。

地 址池管理,是通过管理地址池里的IP地址,达到添加一个记录,指向多个IP的效果。以前如果有10台WEB服务器,需要通过DNS轮询的话,就需要添加 10条A记录。有地址池管理后,只需要在地址池里添加10个IP地址,然后在域名管理里添加一条A记录。并且这个地址池还可以重复使用。

健康检测功能,是针对在实易智能DNS系统管理的域名的记录IP地址进行健康检测。当根据添加地址池的IP地址时设定的检测方式进行检测后发现该IP主机异常(宕机、服务停止)时,会根据设定采取的措施来处理,或者停用,或者替换为新的IP。

未来的负载均衡功能,会根据接口获取目标主机的负载,跟设定的权值比较。当负载值大于或等于权值时,采取指定的停用或替换措施。

通过这两个功能,可以克服传统DNS系统无法判断记录指向的主机是否正常运行,负载是否承载的了的问题。


新功能:
1、支持IPV6协议
2、支持A6、AAAA记录
3. 增加健康检查模块
4. 增加地址池管理功能
5、全面支持5种健康检测方法:ping、snmp、URL、服务端口和服务接口



修复BUG:
1、修正快速搜索域名时,没有只搜索第一个字母的问题
2、修正快速批量修改记录时记录类型判断
3、修正高级修改记录时,对记录类型的判断
4、修正重复防火墙记录的警告提示问题


其他:
1、完善创建域名的相关提示信息
2、完善首页产品指引信息
3、调整升级IMG文件的MD5校验码获取方式
4、完善地址池管理
5、完善健康检测服务端程序
6、完善普通用户修改密码功能
7、更改“区域”为“线路”



下载地址:

http://fedns.isyi.com/download/index.shtml#2.3

使用手册:
在线阅读或者下载阅读:
http://fedns.isyi.com/docs/index.shtml
 
2008-12-08 06:53
实易嵌入式智能DNS系统 2.3.0-RC1版
日期: 2008-12-08 06:37:30 来源: 实易时代

新功能:


修复BUG:
1、解修正高级修改记录时,对记录类型的判断

升级:



其他:
1、完善普通用户修改密码功能
2、更改“区域”为“线路”
3、


下载地址:

http://fedns.isyi.com/download/index.shtml#2.3

使用手册:
在线阅读或者下载阅读:
http://fedns.isyi.com/docs/index.shtml
 
2008-11-21 18:36

  实易智能DNS产品是一套面向互联网企业、中大型网站的智能DNS、域名管理及广域负载均衡(GLSB)解决方案。具有安全性、开放性、扩展性、模块化、标准化、可移植性等特征。

实易智能DNS产品提供有线路管理、域名管理、地址池管理、域名查询统计、监控及报警、多用户管理、操作日志等功能。全部通过中文WEB管理界面操作,简单易用,是为互联网企业量身定做的智能DNS管理产品。


十大特色功能

  1. 支持IPV4/IPV6协议
  2. 支持多种纪录类型(A,A6,AAAA,CNAME,MX,NS,PTR,TXT)
  3. 支持广域负载均衡(GLSB),监控及报警
  4. 提供完全中文WEB界面操作管理,友好易用
  5. 支持多级管理员,不同的管理员可以分配不同的权限
  6. 支持多线路解析(默认电信、网通、教育网线路,千多个IP段)
  7. 支持完善的查询统计、系统日志和操作日志纪录
  8. 支持路由管理,允许多条ISP线路接入
  9. 支持多种监控功能(WEB方式的系统负载、流量监控和SNMP)
  10. 提供防火墙功能,可保证服务器自身的安全
新功能:
1、支持IPV6协议
2、支持A6、AAAA记录



修复BUG:
1、解决快速搜索域名时,没有只搜索第一个字母的问题
2、修正快速批量修改记录时记录类型判断

升级:



其他:
1、完善创建域名的相关提示信息
2、完善首页产品指引信息
3、调整升级IMG文件的MD5校验码获取方式


下载地址:

http://fedns.isyi.com/download/index.shtml#2.3

使用手册:
在线阅读或者下载阅读:
http://fedns.isyi.com/docs/index.shtml
 
2008-08-22 13:03
版本说明:


继2.0,2.1,2.2三个版本的推出,我们将在内部已经测试了将近半年的健康检测模块部分的功能集成在 2.3版本里。这次发布的2.3-alpha1版本,是集成健康检测后的第一个提供给用户一起测试的版本,也是在这个版本里引入地址池管理概念。另外会在 未来的2.3-alpha2版本继续将负载均衡功能集成进来。

地址池管理,是通过管理地址池里的IP地址,达到添加一个记录,指向多个IP的效果。以前如果有10台WEB服务器,需要通过DNS轮询的话,就需要 添加10条A记录。有地址池管理后,只需要在地址池里添加10个IP地址,然后在域名管理里添加一条A记录。并且这个地址池还可以重复使用。

健康检测功能,是针对在实易智能DNS系统管理的域名的记录IP地址进行健康检测。当根据添加地址池的IP地址时设定的检测方式进行检测后发现该IP主机异常(宕机、服务停止)时,会根据设定采取的措施来处理,或者停用,或者替换为新的IP。

未来的负载均衡功能,会根据接口获取目标主机的负载,跟设定的权值比较。当负载值大于或等于权值时,采取指定的停用或替换措施。


通过这两个功能,可以克服传统DNS系统无法判断记录指向的主机是否正常运行,负载是否承载的了的问题。


新功能:

1. 增加健康检查模块
2. 增加地址池管理功能


修复BUG:

升级:

其他:

下载地址:

http://fedns.isyi.com/download/index.shtml#2.3

使用手册:
在线阅读或者下载阅读:
http://fedns.isyi.com/docs/index.shtml

[ 本帖最后由 16hotcom 于 2008-8-22 06:25 编辑 ]



2.3-alpha1-pool.png (24.13 KB) 2008-8-22 06:25
地址池IP地址列表
点击在新窗口查看全图            CTRL+鼠标滚轮放大或缩小
 
2008-08-08 17:21

  在2008年8月8日,我们在北京这个奥运城市,发布这个奥运特别版。强烈建议各位用户使用这个版本,如果有使用2.2以前的版本,也强烈建议升级到2.2-RELEASE版本。由于前不久BIND出现重大漏洞,我们这个版本及时升级到最新版本,已经修复漏洞。同时增加了许多新功能特性,使得功能更完备,更易用。

新功能:

  1. 增加PING、DIG常用工具
  2. 增加区域管理中批量删除、修改、启用/禁用、包含/屏蔽IP地址的功能
  3. 增加自定义域名后缀功能
  4. 增加使用cookie、http验证登录
  5. 增加域名查询统计(具体到每个域名的查询统计)
  6. 完善用户管理,可以控制用户只有管理域名或者记录的权限
  7. 增加根据单数字、字母快速查找域名连接

修复BUG:

  1. 修正升级判断时版本信息不一致问题
  2. 修改退出登录后跳转到登录界面
  3. 修正登录失败不记录登录用户名的问题

升级:

  1. BIND 升级到 BIND-9.4.2-P2
  2. SNMP 升级到 UCD-SNMP-4.2.7
  3. PHP 升级到 PHP-5.2.6

其他:

  1. 调整首页,显示更多信息
  2. 修改列表页面,使得每行显示不同的颜色
  3. 允许所有用户组用户看到全部支持的记录类型

官方网站:
http://fedns.isyi.com/index.shtml

下载地址:
http://fedns.isyi.com/download/index.shtml#2.2

使用手册:
在线阅读或者下载阅读:
http://fedns.isyi.com/docs/index.shtml
 
2008-07-20 23:31
实易嵌入式智能DNS系统 2.2.0-BETA1版
日期: 2008-07-20 21:34:37 来源: 实易时代

新功能:

1. 增加PING、DIG常用工具
2. 增加区域管理中批量删除、修改、启用/禁用、包含/屏蔽IP地址的功能
3. 增加自定义域名后缀功能
4. 增加使用cookie、http验证登录
5. 增加域名查询统计
6. 完善用户管理,可以控制用户只有管理域名或者记录的权限

修复BUG:

1. 修正升级判断时版本信息
2. 修改退出登录后跳转到登录界面

升级:

1. BIND 升级到 BIND-9.4.2-P1
2. SNMP 升级到 UCD-SNMP-4.2.7
3. PHP 升级到 PHP-5.2.6

其他:

1. 调整首页,显示更多信息

下载地址:

http://fedns.isyi.com/download/index.shtml#2.2-beta1
使用手册:
在线阅读或者下载阅读:

http://fedns.isyi.com/docs/index.shtml

 
2008-05-18 10:17

新功能:

  1. 增加Whois功能,可以查询域名和IP注册信息
  2. 增加批量删除、修改域名、记录功能
  3. 增加域名、区域管理后确认功能,修改、删除域名、记录、区域后,需要应用确认才能生效
  4. 增加DNS日志错误关键字加亮功能
  5. 增加记录系统启动时间

修复BUG:

升级:

  1. 基础系统升级到FreeBSD6.3
  2. BIND,升级到bind-9.4.2

其他:

  1. 更换WEB界面模板,更漂亮、更易用
  2. 细化DNS统计数据
  3. 增加.mobi域名后缀

下载地址:

http://fedns.isyi.com/download/index.shtml#2.1

使用手册:
在线阅读或者下载阅读:

http://fedns.isyi.com/docs/index.shtml
 
2008-04-05 20:35

新功能:

  1. 增加Whois功能,可以查询域名和IP注册信息
  2. 增加批量删除、修改域名、记录功能
  3. 增加域名、区域管理后确认功能,修改、删除域名、记录、区域后,需要应用确认才能生效
  4. 增加DNS日志错误关键字加亮功能
  5. 增加记录系统启动时间

修复BUG:

升级:

  1. 基础系统升级到FreeBSD6.3
  2. BIND,升级到bind-9.4.2

其他:

  1. 更换WEB界面模板,更漂亮、更易用
  2. 细化DNS统计数据
  3. 增加.mobi域名后缀

下载地址:
http://fedns.isyi.com/download/index.shtml#2.1-beta1

使用手册:
在线阅读或者下载阅读: http://fedns.isyi.com/docs/index.shtml
 
2007-12-01 06:27

实易嵌入式智能DNS系统 2.0-RELEASE版 2007-12-01

修复BUG:

  1. 修正导出备份数据报错问题
  2. 修正删除域名不能正确重新加载域名服务的问题

其他:

  1. PHP升级到PHP5最新版本
  2. 免费用户域名记录数变更为256个

下载地址: http://fedns.isyi.com/download/index.shtml

 
2007-10-29 06:48
实易嵌入式智能DNS系统 2.0-PRERELEASE版

新功能:

  1. 增加区域排序和IP屏蔽、取反功能
  2. 增加显示日志行序号功能
  3. 增加路由管理模块(支持双线接入)
  4. 增加恢复默认防火墙规则功能
  5. 加强查找记录功能
  6. 完善注册及升级功能

修复BUG:

  1. 修正添加了安全规则导致不断reload dns服务的bug
  2. 修正修改区域IP地址时,丢失描述的问题
  3. 修正终端启动后不能正确显示版本信息的问题
  4. 修正注册后版本信息

其他:

  1. PHP升级到PHP5最新版本
  2. 操作系统打上最新安全补丁

免费下载地址 :http://fedns.isyi.com/download/index.shtml

 
2007-09-04 22:43
昨天已经在赛尔网络应用最新版本的嵌入式智能DNS系统。
升级后运行稳定。
 
2007-09-04 22:41

新功能:

  1. 增加注册功能
  2. 增加远程升级功能
  3. 增加版本检查功能

修复BUG:

  1. 修复不能为不同区域导出记录的bug
  2. 修复多个网卡流量显示问题
  3. 修复添加域名不能自动生效的bug
  4. 修复激活域名时,不能导出记录的bug

升级:

  1. net-snmp,打新补丁
  2. bind升级到最新版本
  3. sqlite3,升级到最新版本

其他:

  1. 调整版面
  2. 修改部分文字

计划在9月中旬释出RC2版本,10月底释出第一个RELEASE版本。
 
2007-04-27 22:12

既然使用FreeBSD做为工作桌面,那必然会要处理一些word、wps文档(因为我在windows下一直使用wps,所以有很多wps文档)。那么自然得要解决办公软件的问题。我选择了openoffice。

不是我对她有多么的热衷,而是目前在FreeBSD上运行得最好的办公套件,只有openoffice。M$的office当然不能运行,而wps for linux版又只能在linux上运行。而永中office,基于java开发,运行速度很慢,还是算了。

但是毫不违心的说,openoffice完全可以满足我日常的工作需要了。可以打开M$ office2000、XP的文档和wps 2005的文档,有文字、表格、演示的支持。

不过openoffice版本越高,块头越大,编译一次可不是件容易的事情。也许你会说,干嘛还要自己编译啊,下载一个安装不就完了吗? 我只能苦笑,因为在FreeBSD下,不支持linux版本的openoffice。而支持FreeBSD的版本,又只有64位的。我用的笔记本,可不是64位的CPU,只好自己编译了。

当然,用我自己的笔记本,估计编译一个openoffice-2.2得花一周时间。配置实在是有点低,P3-700的CPU,256M的内存,40G的硬盘。用她来编译openoffice,简直会令人疯掉的。

言归正传,笔记本不能编译,不代表没有别的办法啊。按ports编译openoffice时提示的,需要9G的磁盘空间,2G的内存。好, 满足它。我找来一台服务器,志强2.4G的CPU,2G内存,36G SCSI硬盘,配置成跟笔记本一样的系统环境。这下满足了吧?呵呵。在服务器上编译打包,然后下载到笔记本上安装就OK了。


编译环境

硬件环境

CPU: 志强 2.4G
内存:2G
硬盘:36G SCSI

软件环境

系统: FreeBSD  6.2-RELEASE
X-Window:Xorg-6.9.0

编译前准备

更新最新ports

在开始编译之前,我们得将ports升级到最新。

这里介绍下portsnap的方法:

  • 获取最新更新:
# portsnap fetch
  • 升级更新
# portsnap update

这样,就可以让ports升级到最新了。


磁盘空间准备

由于我分区的时候,/usr分区分的比较小,只有分了5G,安装了其他一些软件后,只剩下1G的空间了。将大部分的空间分到/opt下,分了16G,放了些数据后,还有11G的空间。

因此,直接在/usr分区下编译openoffice,是不行的。很快就会告诉你,空间满了,不能继续编译。那怎么办呢?很简单,做一个小手术就可以了。

  • 第一步:将openoffice.org-2移动到/opt分区
# cd /usr/ports/editors/
# mv openoffice.org-2 /opt/usr/
  • 第二步:将/opt的openoffice.org-2连接回来
# ln -s /opt/usr/openoffice.org-2/ /usr/ports/editors/openoffice.org-2
为什么还要连接回来呢?
因为ports编译安装软件的时候,它会依赖ports的目录结构,破坏它的目录结构,很可能会导致其他问题。因此我们得保持原样。


  • 第三步:进入编译目录
# cd openoffice.org-2
# pwd
/opt/usr/openoffice.org-2
提示:
如果你的/usr分区足够大(剩余空间大于9G),那么不需要做这个准备工作。


编译打包

经过前面的准备后,我们可以开始编译打包了。不过,开始之前,切记小心按照我的方法进行。要不然你很可能也会碰到我一样的问题。请看“注意事项”一节。

# nohup make -DWITHOUT_MOZILLA WITH_CCACHE=yes LOCALIZED_LANG=zh-CN package >& /tmp/build-openoffice.log &

执行后,想看编译过程,可以用下面的命令:

# tail -f /tmp/build-openoffice.log

如果不想看,那就可以关掉终端去玩了。只要保证磁盘空间没有问题,网络畅通,ports会帮你把一切搞定的。

安装

等编译打包完后,会在 /opt/usr/openoffice.org-2目录下生成一个zh-openoffice.org-CN-2.2.0.tbz文件。只需要将它下载回来,就可以安装了。

安装前准备

不过,安装之前,先确认下系统里是否已经安装过其他版本的openoffice。

# pkg_info |grep openoffice
openoffice.org-2.1.0 Integrated wordprocessor/dbase/spreadsheet/drawing/chart/br

如果有的话,就先删除它吧。

# pkg_delete openoffice.org-2.1.0

否则的话,会提示一个信息,并且中断安装。

# pkg_add zh-openoffice.org-CN-2.2.0.tbz
pkg_add: package 'zh-openoffice.org-CN-2.2.0' or its older version already installed


安装

# pkg_add zh-openoffice.org-CN-2.2.0.tbz

执行安装后,会开始解包和安装,机器比较慢的话,就得等一会。安装完后,会提示如下信息:

# pkg_add zh-openoffice.org-CN-2.2.0.tbz

OpenOffice.org Build 2.2.0 Personal Install How-To

Written by: Martin Blapp <mbr@freebsd.org>
and Maho Nakata <maho@FreeBSD.org>

OpenOffice.org 2.2.0 will soon been installed in
/usr/local/openoffice.org-2.2.0

1. User installation
--------------------

Just type "openoffice.org-2.2.0" after you have successfully
installed the package. If there is no installed
OO.org dir in your homedir, you'll be prompted to
install some files and choose an installed JDK.
The setup installs a ".openoffice.org2" folder
in your homedir.

2. Starting OO.org
------------------

There are some wrappers installed for faster startup.
Add "/usr/local/bin/" to your PATH and you will be able
to use them.

/usr/local/bin/openoffice.org-2.2.0
/usr/local/bin/openoffice.org-2.2.0-sbase
/usr/local/bin/openoffice.org-2.2.0-scalc
/usr/local/bin/openoffice.org-2.2.0-sdraw
/usr/local/bin/openoffice.org-2.2.0-setofficelang
/usr/local/bin/openoffice.org-2.2.0-smath
/usr/local/bin/openoffice.org-2.2.0-simpress
/usr/local/bin/openoffice.org-2.2.0-spadmin
/usr/local/bin/openoffice.org-2.2.0-swriter

OO.org does need $LANG to be set to a suitable value.

3. If you run into problems
--------------------------------------------------
If you somehow run into problems, please remove the already installed
".openoffice.org2" dir in your homedir. Redo the user
installation and the problems should go away.

我们再来查询一下,确认是否已经安装成功了。

# pkg_info | grep openoffice
zh-openoffice.org-CN-2.2.0 Integrated wordprocessor/dbase/spreadsheet/drawing/chart/br


出现这些提示信息,说明安装成功了。运行 /usr/local/bin/openoffice.org-2.2.0-swriter 试试,是不是出现openoffice的运行窗口了?

接下来,要运行什么,只需要执行这些对应的命令就可以了。

/usr/local/bin/openoffice.org-2.2.0
/usr/local/bin/openoffice.org-2.2.0-sbase
/usr/local/bin/openoffice.org-2.2.0-scalc
/usr/local/bin/openoffice.org-2.2.0-sdraw
/usr/local/bin/openoffice.org-2.2.0-setofficelang
/usr/local/bin/openoffice.org-2.2.0-smath
/usr/local/bin/openoffice.org-2.2.0-simpress
/usr/local/bin/openoffice.org-2.2.0-spadmin
/usr/local/bin/openoffice.org-2.2.0-swriter

注意事项

指定编译语言

在编译的时候,不指定语言,默认只是支持英文的。英文的菜单,英文的说明等。如果要支持中文,需要加入LOCALIZED_LANG=zh-CN参数。这样编译出来的,默认就支持中文了。

在指定语言的时候,一定要注意。

简体中文是“ zh-CN ”。
繁体中文是“ zh-TW ”

开始时,我错写成“zh_CN”了,结果花了10多个小时,最终编译失败,而不得不重新开始。血的教训啊,切记切记!


脱离终端编译

这里是针对远程编译而言。因为编译的时候,会提示大量的编译信息,要不断的向远程终端输出数据,导致效率下降,影响整个编译的时间。

我第一次编译的时候,没有脱离终端,结果花了10多个小时才编译完成。

#make -DWITHOUT_MOZILLA WITH_CCACHE=yes LOCALIZED_LANG=zh-CN package

脱离终端后,将编译信息写入日志文件,只花了2个多小时就编译完成了。

# nohup make -DWITHOUT_MOZILLA WITH_CCACHE=yes LOCALIZED_LANG=zh-CN package >& /tmp/build-openoffice.log &


这些都是血淋淋的教训啊,大家自己编译的时候,切记。

作者介绍

16hot ( Jonsen Yang、 杨明茂 )
http://16hot.blog.isyi.com
喜欢FreeBSD/Linux,从事多年的Unix/Linux系统管理和PHP开发工作。
 
2007-04-13 10:52

更多原创文章请看 http://wiki.isyi.com

这是一个实际的案例,为国内某大IT公司提供支持的实录。

问题

昨天晚上一位哥们打电话找我,说他们数据库总是访问不了。这个现象已经一天了,几个人还没有找到原因和解决的办法。以致不得不反反复复的重启MySQL数据库。但是重启的效果并不明显,重启10几分钟后问题依然出现。导致前端用户难以正常访问网站。

另外他们还通过google,百度搜索,怀疑是数据库连接设置太少。设定加大并发连接,无效。flush host,无效。

经过详细了解情况后,得出如下信息:

一、系统正常;
二、MySQL本身服务正常(可以在本地用phpmyadmin操作,速度很快);
三、另外一台服务器的WEB端访问MySQL很慢,甚至无法访问;
四、网络拓扑:WEB、数据库分离,并且在不同机房;

排查

根据他反映的情况,开始就怀疑与防火墙有关。因为这个问题,我遇到过,有切身体会。

但是我仍然按照常规步骤,逐一排查故障。这里可以排除网络缘故,网络方面的可能性已经排除。

另外,由于涉及数据私隐,这里仅仅描述排查步骤及排查命令,不提供具体数据和命令执行结果。


  • 检查磁盘空间
# df -h
  • 查看进程状况
# pstree


  • 查看网络连接
# netstat -an


  • 查看系统日志
# tail -f /var/log/messages


  • 查看MySQL日志
# cat xxx.err |less
  • 查看系统设置
# ulimit
# cat /proc/sys/net/ipv4/ip_local_port_range
# cat /proc/sys/net/ipv4/ip_conntrack_max

经过这几个步骤的检查下来,大致可以确定问题所在。因为前面的排查,并没有发现异常的地方。而系统设置确是RedHat AS 4的默认值。而这些默认值,对于比较大的服务来说,是不能满足的。 因此,再结合问题的症状,可以断定问题就在于系统设置上。

处理

经过上面的排查后,已经断定为系统设置上的问题。 因此通过修改这三个设置,来观测效果。

# ulimit -HSn 65535
# echo 10000 65000 > /proc/sys/net/ipv4/ip_local_port_range
# echo '81920000' > /proc/sys/net/ipv4/ip_conntrack_max

这些设置,已经在很多生产环境里应用,因此可以放心使用。

解决

应用了上面的三个设置后,经过一个多小时,问题不再出现。 由此更可以断定,问题就是系统默认设置导致问题。

为了使得下次重启服务器后,这些设置仍然有效。通过修改 /etc/rc.local 来实现。

# vi /etc/rc.local
#增加如下三行代码
ulimit -HSn 65535
echo 10000 65000 > /proc/sys/net/ipv4/ip_local_port_range
echo '81920000' > /proc/sys/net/ipv4/ip_conntrack_max

在第二天,再联系这位哥们了解情况。 问题已经彻底解决,运行了一天多,没有再出现问题。


总结

这些放行版操作系统,都是通用性的。为了满足通用,会不同程度的牺牲系统的性能。 因此,作为系统管理员,一个很重要的工作,就是根据自己不同的业务,不同的应用,对系统进行优化。

 
2007-03-29 13:39

更多原创文章请看 http://wiki.isyi.com

应用说明

正如很多人知道的那样,Rsync可是开源同步软件中的老大哥。很多人(当然也包括我自己)都在使用它来进行同步、备份工作。它的功能强大,应用灵活,就不多说了。如果对Rsync前世今生很感兴趣,那么一会看看简介,然后到他们官方网站好好看看。

虽然Rsync很强大,但是它并没有直接支持加密传输。也就是说,它是直接明文传输的,对于一些安全要求高的数据,那就不太保险了。不信?你可以用抓包工具试试看。

如果要传输保密文件,那怎么办?放心,Rsync提供了ssh通道功能。也就是通过ssh安全通道来传输,传输过程中,数据是经过ssh加密的。不信?你还是可以抓包看看。

这就是我们要进行的工作了,配置一个具有ssh安全通道的,安全级别高的同步体系。

加密传输

我们利用SSH来达到安全通道的目的。SSH 的 RSA 和 DSA 认证协议的基础是一对专门生成的密钥,分别叫做 专用密钥和 公用密钥(简称 私钥和公钥,下面我们都使用简称)。使用这些基于密钥的认证系统的优势在于:在许多情况下,有可能不必手工输入密码就能建立起安全的连接。

尽管基于密钥的认证协议相当安全,但是如果不注意保护,把私钥泄露了,那么别人也就可以登录到有公钥的服务器。那就很不安全了。

因此居于安全考虑,我们进行的同步配置,是居于普通用户来进行备份的。

同步方向

在这里采用的,不是常见的C/S模式,即源服务器运行rsync --daemon模式,备份服务器主动同步。 而是采用SSH通道模式,不需要配置rsync --daemon。从源服务器直接同步到备份服务器。

环境说明

我配置的是A、B 两台主机,A主机做为源服务器,B主机作为客户端。

硬件环境

两台服务器的配置一样,硬件配置如下:

单志强2.4G CPU
2G 内存
36G SCSI硬盘
1G inter网卡

网络环境

两台服务器在同一个机房,但是不同网段。IP地址分别设置如下:

A服务器的IP地址:
192.168.8.8
B服务器的IP地址:
192.168.11.11


系统环境

操作系统:

A、B两台服务器均安装了FreeBSD 6.2-RELEASE-p2(通过make world升级到最新)。

SSH是系统自带的版本:

# ssh -V
OpenSSH_4.5p1 FreeBSD-20061110, OpenSSL 0.9.7e-p1 25 Oct 2004

软件简介

由于我们是在unix/linux下使用SSH和RSYNC,因此仅仅介绍SSH和RSYNC,而不介绍系统以及其他软件。

SSH的简介

SSH是英文Secure Shell的简写形式。通过使用SSH,你可以把所有传输的数据进行加密,这样"中间人"这种攻击方式就不可能实现了,而且也能够防止DNS欺骗和IP欺 骗。使用SSH,还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。SSH有很多功能,它既可以代替Telnet,又可以为 FTP、Pop、甚至为PPP提供一个安全的"通道"。

最初的SSH是由芬兰的一家公司开发的。但是因为受版权和加密算法的限制,现在很多人都转而使用OpenSSH。OpenSSH是SSH 的替代软件包,而且是免费的,可以预计将来会有越来越多的人使用它而不是SSH。目前所发行的开源UNIX/Linux,默认都会带有OpenSSH(一 些可能需要你额外的安装一下)。

如果你喜欢的话,也可以安装SSH,他虽然有限制,但是对于非商业用户,是可以免费使用的。

 相关链接如下:
http://openssh.org
http://ssh.com/products/ssh_secure_shell/

RSYNC的简介

在RSYNC的官方网站上,对于RSYNC的介绍非常简单。

rsync 是一个开放源码的快速的文件同步工具,是在GUN的GPL2协议下发布的。
所以任何人都可以免费的使用设置修改和再发行它。rsync的作者是 Wayne Davison。
 相关链接如下:
http://rsync.samba.org/

软件安装

SSH的安装

由于系统会自带有SSH,我们就直接使用系统自带的SSH,而不再单独安装。

我会另外写一个SSH安装配置的专题文章。

RSYNC的安装

我是在FreeBSD上进行的安装配置,因此同时给出利用FreeBSD的ports安装和手工安装两种方式。其中手工安装方式,也可以在Linux下进行。

ports方式安装

在开始ports安装之前,先做一次ports更新。这样做的目的是让ports保持最新,并且让通过ports安装的软件是最新的。

 用CVSUP更新:
# cvsup -L2 -g /opt/etc/ports-supfile
 你需要根据自己的ports-supfile文件路径来指定。

进入rsync的ports目录:

 # cd /usr/ports/net/rsync/

查看软件版本信息:

# cat distinfo
MD5 (rsync-2.6.9.tar.gz) = 996d8d8831dbca17910094e56dcb5942
SHA256 (rsync-2.6.9.tar.gz) = ca437301becd890e73300bc69a39189ff1564baa761948ff149b3dd7bde633f9
SIZE (rsync-2.6.9.tar.gz) = 811841

由此我们可以得知rsync的版本是 2.6.9,也就是目前最新的发行版本。

选择配置:

 # make config
[ ] POPT_PORT Use popt from devel/popt instead of bundled one
[X] TIMELIMIT Time limit patch
[X] FLAGSP File system flags support patch, adds --flags
[ ] ACLSP ACL support patch, adds --acls
[X] SSH Use SSH instead of RSH

在出现选项界面里,通过移动上下键和空格键,选择SSH,也就是用SSH替换RSH。其他的默认就可以了。

完成安装:

# make install clean

很简单吧?使用ports的好处就是,安装太方便了。只要执行 make install 它会自动下载,编译,安装。clean 是告诉ports,安装完后,清楚源码文件和其他过程文件。

手工安装

*下载安装包

下载页面:

 http://rsync.samba.org/ftp/rsync/ 

具体下载链接:

 http://rsync.samba.org/ftp/rsync/rsync-2.6.9.tar.gz 

*解压和配置

 # tar -zxvf rsync-2.6.9.tar.gz
# cd rsync-2.6.9
# ./configure --disable-debug --with-rsh=ssh
 说明:
由于 --with-rsh=默认就是ssh,所以也可以不显式指定这个配置项;
还可以通过 --prefix=/path 来指定安装目录,默认则安装到/usr/local/bin目录;
关闭调试模式 --disable-debug;
也可以通过 ./configure --help 查看更多选项,再根据自己的需要来设定。

*编译和安装

 # make
# make install

至此,没有出现什么错误的话,整个手工安装过程就完毕了。

ssh的配置

在这里的配置,当然不是指如何配置SSH服务啦。而是指配置用来SSH登录相关的帐户的公钥、私钥。

注意: 备份服务器必须运行sshd服务。

创建帐户

在A、B两台服务器上各创建一个普通帐户,不需要设置密码。

在FreeBSD下创建帐户:

# pw user add -d /home/mybackup -n mybackup

在Linux下创建帐户:

# useradd -d /home/mybackup mybackup

生成公钥和私钥

这些操作是在同步源服务器,就是有需要做备份数据的服务器。这里是指A主机。

首先,切换到mybackup帐户以及该帐户的用户目录下:

# su mybackup
$ cd ~
$ pwd
/home/mybackup
$ mkdir .ssh
$ cd .ssh
$ pwd
/usr/home/mybackup/.ssh


生成公钥、私钥:

$ ssh-keygen -t dsa -b 1024
Generating public/private dsa key pair.
Enter file in which to save the key (/home/mybackup/.ssh/id_dsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/mybackup/.ssh/id_dsa.
Your public key has been saved in /home/mybackup/.ssh/id_dsa.pub.
The key fingerprint is:
20:7c:c3:b4:69:a7:e1:af:f3:e3:ae:e7:9d:0a:b6:69 mybackup@slave.isyi.com
注意:
当提示 Enter passphrase (empty for no passphrase): 时,不要输入,直接回车;并且提示 Enter same passphrase again: 时,也直接回车。


这时候,我们就会得到公钥、私钥两个文件在.ssh目录下。我们查看一下:

$ ls -al .ssh
total 8
drwxr-xr-x 2 mybackup mybackup 512 Mar 22 17:48 .
drwxr-xr-x 3 mybackup mybackup 512 Mar 22 17:46 ..
-rw------- 1 mybackup mybackup 672 Mar 22 17:48 id_dsa
-rw-r--r-- 1 mybackup mybackup 613 Mar 22 17:48 id_dsa.pub

其中 id_dsa 是密钥文件,id_dsa.pub 顾名思义,是公钥文件啦。

拷贝到客户端

因为我们之前生成的公钥、密钥,都是在源服务器上操作。而客户端(做备份的服务器)上,需要有刚才生成的公钥,才能不提示输入密码,直接登录ssh。

使用scp来远程拷贝:

$ scp /home/mybackup/.ssh/id_dsa.pub root@192.168.11.11:/home/mybackup/.ssh/authorized_keys

如果用户名、密码和文件路径没有错误,在按提示输入192.168.11.11的root密码后,很快就会把id_dsa.pub文件拷贝过去了。

测试登录

将公钥拷贝到客户端后,我们来测试下能不能在源服务器上不用输入密码ssh登录客户端服务器。

$ ssh -l mybackup 192.168.11.11

或者:

$ ssh mybackup@192.168.11.11

如果没有提示输入密码,就登录到192.168.11.11 服务器,那恭喜你,说明配置成功了。

Rsync的配置

事实上,我们在利用SSH通道来运行RSYNC时,是不需要配置一个Rsync服务器的。在这里我们指的配置,是有两方面,一是运行rsync的参数,一是运行同步控制的脚本。

Rsync的常用参数

rsync 常用的运行参数说明:

-v, –verbose 详细模式输出
-c, –checksum 打开校验开关,强制对文件传输进行校验
-a, –archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD
-r, –recursive 对子目录以递归模式处理
-p, --perms 保持文件权限
-o, --owner 保持文件属主信息
-g, --group 保持文件属组信息
-e, --rsh=COMMAND 指定替代rsh的shell程序
--delete 删除那些DST中SRC没有的文件
--progress 显示备份过程
-t, --times 保持文件时间信息
-z, --compress 对备份的文件在传输时进行压缩处理
--stats 给出某些文件的传输状态

测试rsync同步,将A主机的/opt/etc同步到B主机的/tmp/myetc目录下:

$ rsync -vzrtopg --progress --stats --delete -e ssh /opt/etc mybackup@192.168.11.11:/tmp/myetc

然后到B主机的/tmp/myetc目录下看看,是不是发现一个etc目录,并且这个etc目录下面的文件,跟A主机的/opt/etc目录下面的文件一样。

控制脚本

因为往往备份的目录是相对固定的,如果每次备份都要输入那么长一串,会不会觉得很麻烦呢? 那我们写一个脚本来工作,并且利用crontab来定时定点的执行同步工作。

控制脚本代码如下:

#!/bin/sh
# rsyncer.sh
# author Jonsen Yang( 16hot )
# home http://www.isyi.com http://16hot.blog.isyi.com
# date 2007-03-20
#

LOCAL_DIR="/opt/etc" ;
REMOTE_USER="mybackup" ;
REMOTE_HOST="192.168.11.11" ;
REMOTE_DIR="/tmp/myetc" ;

RSYNC_CMD="/usr/local/bin/rsync" ;
RSYNC_LOG="/opt/var/log/rsync.log" ;

RSYNC_RUN="${RSYNC_CMD} -vzrtopg --progress --stats --delete -e ssh ${LOCAL_DIR} ${REMOTE_USER}@${REMOTE_HOST}:${REMOTE_DIR}";

${RSYNC_RUN} >> ${RSYNC_LOG} 2>&1;

# end rsyncer.sh


将 rsyncer.sh 脚本保存到 /opt/bin(或者你自己的工作目录)目录下,还要注意保证设置好mybackup用户可以执行的属性。

$ chmod +x /opt/bin/rsyncer.sh

另外,要注意 /opt/var/log/rsync.log 也必须是mybackup帐户可以读写才行。

运行

经过上面的步骤后,可谓万事俱备,只欠运行了。 其实也很简单,我们只需要设置crontab,定时执行备份脚本进行备份就可以了。

$ crontab -e
0 3 * * * /opt/bin/rsyncer.sh

这样,每天凌晨3点,就会自动执行 /opt/bin/rsyncer.sh 进行备份了。

结束语

在开源软件里,很多很多很好用而且分文不收的软件。我们合理的利用这些软件,可以为我们带来很多很多好处。比如,节省成本,提高工作效率等等。

因此,多学习开源软件,是很好的。


作者: Jonsen Yang( 16hot、 杨明茂 )

附录

RSYNC 参数详解

-v, –verbose 详细模式输出
-q, –quiet 精简输出模式
-c, –checksum 打开校验开关,强制对文件传输进行校验
-a, –archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD
-r, –recursive 对子目录以递归模式处理
-R, –relative 使用相对路径信息
-b, --backup 创建备份,也就是对于目的已经存在有同样的文件名时,将老的文件重新命名为~filename。可以使用--suffix选项来指定不同的备份文件前缀。
--backup-dir 将备份文件(如~filename)存放在在目录下。
-suffix=SUFFIX 定义备份文件前缀
-u, --update 仅仅进行更新,也就是跳过所有已经存在于DST,并且文件时间晚于要备份的文件。(不覆盖更新的文件)
-l, --links 保留软链结
-L, --copy-links 想对待常规文件一样处理软链结
--copy-unsafe-links 仅仅拷贝指向SRC路径目录树以外的链结
--safe-links 忽略指向SRC路径目录树以外的链结
-H, --hard-links 保留硬链结
-p, --perms 保持文件权限
-o, --owner 保持文件属主信息
-g, --group 保持文件属组信息
-D, --devices 保持设备文件信息
-t, --times 保持文件时间信息
-S, --sparse 对稀疏文件进行特殊处理以节省DST的空间
-n, --dry-run现实哪些文件将被传输
-W, --whole-file 拷贝文件,不进行增量检测
-x, --one-file-system 不要跨越文件系统边界
-B, --block-size=SIZE 检验算法使用的块尺寸,默认是700字节
-e, --rsh=COMMAND 指定替代rsh的shell程序
--rsync-path=PATH 指定远程服务器上的rsync命令所在路径信息
-C, --cvs-exclude 使用和CVS一样的方法自动忽略文件,用来排除那些不希望传输的文件
--existing 仅仅更新那些已经存在于DST的文件,而不备份那些新创建的文件
--delete 删除那些DST中SRC没有的文件
--delete-excluded 同样删除接收端那些被该选项指定排除的文件
--delete-after 传输结束以后再删除
--ignore-errors 及时出现IO错误也进行删除
--max-delete=NUM 最多删除NUM个文件
--partial 保留那些因故没有完全传输的文件,以是加快随后的再次传输
--force 强制删除目录,即使不为空
--numeric-ids 不将数字的用户和组ID匹配为用户名和组名
--timeout=TIME IP超时时间,单位为秒
-I, --ignore-times 不跳过那些有同样的时间和长度的文件
--size-only 当决定是否要备份文件时,仅仅察看文件大小而不考虑文件时间
--modify-window=NUM 决定文件是否时间相同时使用的时间戳窗口,默认为0
-T --temp-dir=DIR 在DIR中创建临时文件
--compare-dest=DIR 同样比较DIR中的文件来决定是否需要备份
-P 等同于 --partial
--progress 显示备份过程
-z, --compress 对备份的文件在传输时进行压缩处理
--exclude=PATTERN 指定排除不需要传输的文件模式
--include=PATTERN 指定不排除而需要传输的文件模式
--exclude-from=FILE 排除FILE中指定模式的文件
--include-from=FILE 不排除FILE指定模式匹配的文件
--version 打印版本信息
--address 绑定到特定的地址
--config=FILE 指定其他的配置文件,不使用默认的rsyncd.conf文件
--port=PORT 指定其他的rsync服务端口
--blocking-io 对远程shell使用阻塞IO
--stats 给出某些文件的传输状态
--progress 在传输时现实传输过程
--log-format=FORMAT 指定日志文件格式
--password-file=FILE 从FILE中得到密码
--bwlimit=KBPS 限制I/O带宽,KBytes per second
-h, --help 显示帮助信息
 
     
 
 
个人档案
 
16hot

上次登录:
28天前
加为好友
 
   
 
最新照片
 
   
 
最近访客
 
 

明年这个时间

我贷款

yaji_ya

zhoubujin

2maollm

ldtrain

xxxppk

楼兰天边云
     
 
其它
 
已有人次访问本空间
 
订阅RSS  什么是RSS?

您也想拥有这样的空间?请点此申请。
     


©2009 Baidu