1、简单架设Jabber局域网即时通讯服务器简单架设Jabber-局域网即时通讯服务器简单架设Jabber 局域网即时通讯服务器.txt如果不懂就说出来,如果懂了,就笑笑别说出来。贪婪是最真实的贫穷,满足是最真实的财富。幽默就是一个人想哭的时候还有笑的兴致。作者:北南南北来自:LinuxSir.Org简介:本文主要介绍Jabber即时通讯服务器最简单的架设方法;目的是自己学习一下,长长见识;另外也是为了对此有兴趣的弟兄所准备的,用于和大家交流;本文所架的Jabber Server 是通过Mysql数据库来进行用户认证的;目录 1、什么是jabber server; 1.1、我们能否自己架设jabb
2、er server;1.2、jabber 应用范围; 2、jabber server的简单架设,安装篇; 2.1、Jabber Server 测试架设环境和用户认证环境;2.2、Jabber Server 版本的选择;2.3、为Jabber Server添加一个系统用户,用来管理服务器的启动等;2.4、编译安装Jabber Server所需要的软件环境;2.5、解压编译安装Jabber Server; 3、jabber server的简单配置; 3.1、创建Jabber Server 进程存放目录pid及日志存放目录log;3.2、有关Mysql数据库的操作;3.3、Jabber Server
3、 的配置文件的修改; 3.31、c2s.xml 文件3.32、resolver.xml 文件3.33、router-users.xml 文件3.34、router.xml 文件3.35、s2s.xml 文件3.36、sm.xml 文件 4、Jabber Server 启动和管理; 5、Jabber 客户端的应用; 5.1、Jabber 客户端的选择;5.2、客户机的DNS配置;5.3、Jabber 客户端之一Gaim的使用; 6、一些疑问; 6.1、jabberd2能否和MSN、Yahoo Messager、ICQ等用户对聊功能; 6.2、jabberd2能否支持客户端传文件功能; 6.3、j
4、abberd2能否让支持语音或电话功能; 7、关于本文;8、参考文档;9、相关文档; +正文+1、什么是jabber server;Jabber 是著名的 Linux 即时通讯服务服务器,它是一个自由开源软件。什么是即时通讯服务器呢?就是类似AIM,ICQ,MSN或Yahoo Message 类似的服务器;只是Jabber能让我们自己架即时通讯服务器,可以在Internet上应用,也可以在局域网中应用; Jabber 最有优势的就是他的通信协议。他可以和多种即时通讯对接。比如有第三方插件,能让jabber用户和MSN 、Yahoo Messager、ICQ. 对聊;下面是来自 jabber s
5、erver 能在局域网中应用,当然也一样架一台internet 的jabber server 为您自己的用户服务;服务器端支持几乎所有的操作系统,从Linux、MACOS到Unix类的,同样也支持Windows平台;客户端也是一样,无所不包,无所不有. . 服务器端: Jabber Servers 客户端: Jabber Clients 2、jabber server的简单架设,安装篇;我是在局域网中架设并测试的,而且功能也极为简单、安全性也没有评测(或者说没有安全性),就是简单的注册和相互通讯(聊天); 2.1、Jabber Server 测试架设环境和用户认证环境;Slackware 10
6、.1 ,其实在哪个发行版都是一样的,只要按官方文档上面说的做,一般都会成功;好象没有不成功的呢;我用的是mysql认证,也就是说用户注册和认证数据库调用的;当然jabber 支持多种认证,比如PostgreSQL、Berkeley DB . . 因为我不懂其它的认证方式,我对Mysql 也只是了解一点点;所以我就用了Mysql的方法;另外如果在局域网中架Jabber Server ,得有DNS服务器;也就是说局域网中的机器相互能通过hostname 来访问;如果您不懂什么是DNS,或者不会DNS 的架设。我感觉也没有什么,现在几乎所有的路由器都有这个功能,点几下鼠标就能弄得起来;如果你只一台机
7、器,我看架Jabber Server 也没有必要了;所以本文架设Jabber Server 的前提条件是你懂DNS(至少你有一个路由器,并且能在路由器上指定DNS来解析每台机器的hostname);另外您还要懂一点Mysql服务器的架设和简单的应用; 2.2、Jabber Server 版本的选择; 我用的Jabber Server 的版本是 jabberd-2.0s10.tar.gz ; http:/jabberd.jabberstudio.org/2/#download 2.3、为Jabber Server添加一个系统用户,用来管理服务器的启动等; 一般的说来root超级用户是能对所有服务
8、器程序进行管理的;但这样做有点不安全;所以尽可能的少用root权限来启动一个服务器; rootlocalhost # groupadd jabber 注:添加jabber用户组;rootlocalhost # useradd jabber 注:添加 jabber用户;至于设置不设置jabber用户的密码,您看着办。如果您当前操作的普通用户,想通过su 命令切换到 root用户下,然后再通过 su jabber ,这样就不用密码也行;如果您认为这样切来切换去的有点麻烦,那你就设置一下jabber用户的密码; rootlocalhost # passwd jabber 注:设置jabber 用户的
9、密码;2.4、编译安装Jabber Server所需要的软件环境;在Linux中编译安装Jabber Server 需要编译工具;比如gcc 之类的,如果您没有编译环境, 就要找出自己所用发行版的光盘,把这些安装上; Jabber Server 依赖 openssl ,您也得安装上;在您的Linux发版的安装盘中也应该有;Jabber Server 依赖 Mysql ,因为我们要用Mysql 存储用户资料;这个不可缺少吧;在发行版的光盘也有;libidn 这个软件包也在各大发行版中有;自己找找看;也可以自己编译安装;参考文档:Jabberd 2 Installation and Adminis
10、tration Guide 2.5、解压编译安装Jabber Server;rootlocalhost # tar zxvf jabberd-2.0s10.tar.gzrootlocalhost # cd jabberd-2.0s10rootlocalhost jabberd-2.0s10 # ./configure -enable-ssl -enable-mysql -enable-idn -with-extra-include-path=/usr/include/mysql -with-extra-library-path=/usr/lib/mysql -prefix=/opt/jabbe
11、rd2rootlocalhost jabberd-2.0s10 # makerootlocalhost jabberd-2.0s10 # make install 注意: 在./configure 中要指定您的Mysql的include所在的位置,也要指定 mysql的lib所在的位置;您应该知道这些东西在哪里;我的mysql 的include和 lib分别是/usr/include/mysql和/usr/lib/mysql -prefix 用来指定把jabberd安装在哪个位置上。我是安装到了 /opt/jabberd2目录中;自己看着办吧。这样指定比较方便。当我们不需要jabberd的时候
12、,就直接删除 /opt/jabberd2目录就行了。就是重装也方便;卸载就更方便了; 3、jabber server的简单配置;3.1、创建Jabber Server 进程存放目录pid及日志存放目录logrootlocalhost # mkdir -p /opt/jabberd2/var/jabberd/pidrootlocalhost # mkdir -p /opt/jabberd2/var/jabberd/logrootlocalhost # chown -R jabber:jabber /opt/jabberd2/var说明:改变/opt/jabberd2/var权限,让用户jabbe
13、r可以写数据到/opt/jabberd2/var及下级目录;3.2、有关Mysql数据库的操作;在我们的解压编译的Jabber Server 目录中 jabberd-2.0s10 ,有一个目录tools,里面有一个文件db-setup.mysql,就是创建数据库的脚本;首先我们得启动Mysql 服务器;这个过程省略;然后我们导入 db-setup.mysql;rootlocalhost jabberd-2.0s10 # cd tools rootlocalhost tools # mysql -uroot -p GRANT select,insert,delete,update ON jabb
14、erd2.* to jabberd2beinanlocalhost IDENTIFIED by 123456;注解: 其中jabberd2beinan 是jabberd2数据库的管理员,这个可以自己定义;定义你自己喜欢的;其中123456是用户 jabberd2beinan用户的密码;如果没有问题的话,我们从mysql退出后,就要吧用jabberd2beinan 用户来连接Mysql服务器了;rootlocalhost tools # mysql -ujabberd2beinan -pEnter password: 在这里输入jabberd2数据库管理员jabberd2beinan的密码;my
15、sql show databases; 注:查看数据库;+-+| Database |+-+| jabberd2 | test |+-+2 rows in set (0.00 sec)mysql quit3.3、Jabber Server 的配置文件的修改;以我的安装和配置环境为准,我是安装Jabber Server 在/opt/jabberd2目录中;配置文件在 /opt/jabberd2/etc/目录中;我们需要改的文件,有如下几个; c2s.xml resolver.xml router-users.xml router.xml s2s.xml sm.xml 我只是简单的说一下我的配置,
16、不一定对,但能用得起来;注意:所有192.168.1.4的IP都是我架Jabber Server 这台机器的IP,您要根据自己的情况来进行改动; 3.31、c2s.xml 文件第77行; localhost改为 linuxsir 重要:这个是极为重要的,linuxsir是服务器的hostname,并且能被局域网每台机器都能识别的,也就是我们前面所说要自己做DNS,或通过路由器来做解析;一般路由器都有这个功能;这个需要您自己来弄;第81行;0.0.0.0改为192.168.1.4277和278行,是Mysql服务器认证的;jabberd2secret改为:下面改动是根据您在Mysql数据库jab
17、berd2授权给你所设置的用户名和密码;jabberd2beinan123456 3.32、resolver.xml 文件不做改动,默认就行; 3.33、router-users.xml 文件不做改动;如果您要改动,其它文件也要改。这个文档是简单架设。没有考虑的太多;大多是默认的配置;我的建议是为了安全,你还是改一下用户和密码;也就是下面的; jabberd secret把上面的改一改,最好改的比较安全一点;下面只是一个简单的例子; jabberd1234 654321如果router-users.xml中做了改动其它文件中的如下内容也要改动; 127.0.0.1 5347 jabberd s
18、ecret 也就是要改动上面的中的 jabberd1234 654321 3.34、router.xml 文件不做改动,默认就好; 3.35、s2s.xml 文件第77行; 0.0.0.0改为 192.168.1.43.36、sm.xml 文件第7行;这是服务器hostname的设置,您所用的hostname要在局域网中被识别;这就涉及到DNS;现在路由器大多都有指定DNS的功能;这个需要您自己来弄;我的这台机器在路由器上做了DNS后,被指定解析为linuxsir; localhost改为linuxsir第88、89行;这两行也是连接Mysql数据库服务器;也要改动; jabberd2 sec
19、ret改为 jabberd2beinan 1234564、Jabber Server 启动和管理;我们在前面已经添加了 jabber这个用户,目的就是为了服务的安全性,让这个用户来添加和启动Jabber Server;当然我们要切换到jabber这个用户,然后让jabber这个用户来启动jabberd服务器; rootlocalhost #su jabberjabberlocalhost $ /opt/jabberd2/bin/jabberd -D 这个Debug模式运行,如果有什么错误,就能显示出来;如果不行,你就按几下回车,看看是不是有错误发生。如果没有,就Ctrl+C结束运行,然后转为后
20、台运行; jabberlocalhost $ /opt/jabberd2/bin/jabberd&jabberlocalhost $ ps -aux |grep jabberd jabber 7048 12.3 1.2 5072 3184 pts/0 R 05:33 0:00 perl -w -x /opt/jabberd2/bin/jabberdjabber 7049 2.3 0.5 4656 1452 pts/0 S 05:33 0:00 /opt/jabberd2/bin/router -c /opt/jabberd2/etc/jabberd/router.xmljabber 7050
21、0.6 0.4 4552 1252 pts/0 S 05:33 0:00 /opt/jabberd2/bin/resolver -c /opt/jabberd2/etc/jabberd/resolver.xmljabber 7051 2.0 0.6 4796 1716 pts/0 S 05:33 0:00 /opt/jabberd2/bin/sm -c /opt/jabberd2/etc/jabberd/sm.xmljabber 7052 0.6 0.5 4644 1340 pts/0 S 05:33 0:00 /opt/jabberd2/bin/s2s -c /opt/jabberd2/et
22、c/jabberd/s2s.xmljabber 7053 1.6 0.6 4752 1672 pts/0 S 05:33 0:00 /opt/jabberd2/bin/c2s -c /opt/jabberd2/etc/jabberd/c2s.xmljabber 7055 0.0 0.2 2256 732 pts/0 R+ 05:33 0:00 grep jabberd说明: 第一行是后台运行;第二行是查看是否jabberd已经启动起来了;如果出现类似上面的提示,这表示jabberd已经运行;5、Jabber 客户端的应用; 5.1、Jabber 客户端的选择;对于客户端的选择,您可以用gaim
23、;也可能用其它的,我用的是gaim;请到 Jabber 客户端: Jabber Clients 去找适合自己;如果您想用gaim ,可以到 上去下载;Windows版本和Linux版本都有;如果您用的是Linux,各大发行版都有这个软件包;安装上就行了; 5.2、客户机的DNS配置;如果您是Linux,就得让/etc/resolv.conf 有DNS主机的设置;比如我的设置是 nameserver 192.168.1.1192.168.1.1 这行就是DNS服务器的,我用的是路由器,路由器我配置DNS的时候,用的就是这个地址;如果您是用Windows,也得在网卡设置IP那个界面上,写上这个吧;
24、自己看着办吧; 5.3、Jabber 客户端之一Gaim的使用; Gaim使用就简单了,我们可以通过Gaim来向局域网Jabber Server 申请ID;第一步: 添加帐号;点击帐号=添加=协议:选择 Jabber用户名: 先随便写一个您喜欢的,比如我写是的beinan服务器:也就是我们前面设置的Jabber Server 那台机器的hostname;我的机器是linuxsir;资源:不用管他;密码:自己写一个吧;因为没有注册呢;这个不是重要的;别名:就是昵称,比如大灰狼之类;点击显示主要选项 Jabber 选项可用则使用TLS 这个要选中,其它两个是 强制旧SSL和允许不加密流上的纯文本验
25、证,这两个就不要选中了;l 端口:5222 连接服务器:就是Jabber Server所在机器的IP地址,我这台机器是192.168.1.4 代理类型:不用改变,保持原来的状态就行;使用全局代理设置第二步 注册帐号;这些都添写好了,再点击注册; 然后写上用户名和密码;他会提示注册成功;第三步 修改帐户我们还得从头再来,点击帐户,然后选中您刚才注册的成功的那个帐户;点击修改;就按前面所说的来修改;只是在显示主要选项中的连接服务器改一改就行了。因为这个是空的;要改为你自己服务器的IP地址就行了;我的服务器是192.168.1.4。我就改成了192.168.1.4;至于Windows用户的Gaim的
26、使用同理; 6、一些疑问; 6.1、jabberd2能否和MSN、Yahoo Messager、ICQ等用户对聊功能;能的;但要安装一些插件;在我看来这些插件有点难度。因为我测试过一些插件;但不能解决一些依赖关系;等解决了依赖关系,却不能应用;错误是的。 http:/www.jabber.org/software/components.shtml 6.2、jabberd2能否支持客户端传文件功能;如果是默认安装是不支持的,这也需要第三方插件;目前有三种方法吧;在jabber的主页上说,如果想要实现相互传文件功能,与客户端有关;我测试了好多种,但还是不行。psi据说是能行,我测试后也不行;可能依
27、靠客户端传文件还是有点难度。或许不久就以解决?如果通过服务器端解决呢?也是有可能的,有两种方法;proxy65和定义apache dav模块的办法;apache dav模块据说比较简单。但我没有试过。据有关洋人说,不太安全;proxy65的方法也有难度,他依赖太多的东西,比如python 、zope 、twist、pyopenssl . .多多;虽然也能解决依赖关系,但proxy65还是一样运行不起来;大家还是自己测试吧;写这些东西只不是想让新手走太多的路; 6.3、jabberd2能否让支持语音或电话功能;可能有这个成功案例,我没有仔细看;但通过jabberd2文档,我没有看到,或许有第三方插件能解决;或许有点难度; 7、关于本文本文是最简单的Jabber 即时通讯服务器的架设;没有太多的功能,当然安全机制也没有考虑;高水平的文档并不是我能写的出来的,当然我也在努力写一写高水平的文档,到现在还没有这个能力,所以只能期待高手出现,或者期待自己某一天成为高手;本文面向初学者; 8、参考文档 Jabberd 2 Installation and Administration Guide 9、相关文档
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1