简单架设Jabber局域网即时通讯服务器.docx
《简单架设Jabber局域网即时通讯服务器.docx》由会员分享,可在线阅读,更多相关《简单架设Jabber局域网即时通讯服务器.docx(10页珍藏版)》请在冰豆网上搜索。
简单架设Jabber局域网即时通讯服务器
简单架设Jabber-局域网即时通讯服务器
简单架设Jabber局域网即时通讯服务器.txt如果不懂就说出来,如果懂了,就笑笑别说出来。
贪婪是最真实的贫穷,满足是最真实的财富。
幽默就是一个人想哭的时候还有笑的兴致。
作者:
北南南北
来自:
LinuxSir.Org
简介:
本文主要介绍Jabber即时通讯服务器最简单的架设方法;目的是自己学习一下,长长见识;另外也是为了对此有兴趣的弟兄所准备的,用于和大家交流;本文所架的JabberServer是通过Mysql数据库来进行用户认证的;目录1、什么是jabberserver;
1.1、我们能否自己架设jabberserver;
1.2、jabber应用范围;
2、jabberserver的简单架设,安装篇;
2.1、JabberServer测试架设环境和用户认证环境;
2.2、JabberServer版本的选择;
2.3、为JabberServer添加一个系统用户,用来管理服务器的启动等;
2.4、编译安装JabberServer所需要的软件环境;
2.5、解压编译安装JabberServer;
3、jabberserver的简单配置;
3.1、创建JabberServer进程存放目录pid及日志存放目录log;
3.2、有关Mysql数据库的操作;
3.3、JabberServer的配置文件的修改;
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、JabberServer启动和管理;5、Jabber客户端的应用;
5.1、Jabber客户端的选择;
5.2、客户机的DNS配置;
5.3、Jabber客户端之一Gaim的使用;
6、一些疑问;
6.1、jabberd2能否和MSN、YahooMessager、ICQ等用户对聊功能;
6.2、jabberd2能否支持客户端传文件功能;
6.3、jabberd2能否让支持语音或电话功能;
7、关于本文;
8、参考文档;
9、相关文档;
+++++++++++++++++++++++++++++++++++++++++++++++++
正文
+++++++++++++++++++++++++++++++++++++++++++++++++
1、什么是jabberserver;
Jabber是著名的Linux即时通讯服务服务器,它是一个自由开源软件。
什么是即时通讯服务器呢?
就是类似AIM,ICQ,MSN或YahooMessage类似的服务器;只是Jabber能让我们自己架即时通讯服务器,可以在Internet上应用,也可以在局域网中应用;Jabber最有优势的就是他的通信协议。
他可以和多种即时通讯对接。
比如有第三方插件,能让jabber用户和MSN、YahooMessager、ICQ.....对聊;下面是来自
jabberserver能在局域网中应用,当然也一样架一台internet的jabberserver为您自己的用户服务;服务器端支持几乎所有的操作系统,从Linux、MACOS到Unix类的,同样也支持Windows平台;客户端也是一样,无所不包,无所不有......服务器端:
JabberServers客户端:
JabberClients
2、jabberserver的简单架设,安装篇;
我是在局域网中架设并测试的,而且功能也极为简单、安全性也没有评测(或者说没有安全性),就是简单的注册和相互通讯(聊天);
2.1、JabberServer测试架设环境和用户认证环境;
Slackware10.1,其实在哪个发行版都是一样的,只要按官方文档上面说的做,一般都会成功;好象没有不成功的呢;我用的是mysql认证,也就是说用户注册和认证数据库调用的;当然jabber支持多种认证,比如PostgreSQL、BerkeleyDB......因为我不懂其它的认证方式,我对Mysql也只是了解一点点;所以我就用了Mysql的方法;另外如果在局域网中架JabberServer,得有DNS服务器;也就是说局域网中的机器相互能通过hostname来访问;如果您不懂什么是DNS,或者不会DNS的架设。
我感觉也没有什么,现在几乎所有的路由器都有这个功能,点几下鼠标就能弄得起来;如果你只一台机器,我看架JabberServer也没有必要了;所以本文架设JabberServer的前提条件是你懂DNS(至少你有一个路由器,并且能在路由器上指定DNS来解析每台机器的hostname);另外您还要懂一点Mysql服务器的架设和简单的应用;
2.2、JabberServer版本的选择;
我用的JabberServer的版本是jabberd-2.0s10.tar.gz;http:
//jabberd.jabberstudio.org/2/#download
2.3、为JabberServer添加一个系统用户,用来管理服务器的启动等;
一般的说来root超级用户是能对所有服务器程序进行管理的;但这样做有点不安全;所以尽可能的少用root权限来启动一个服务器;
[root@localhost~]#groupaddjabber注:
添加jabber用户组;
[root@localhost~]#useraddjabber注:
添加jabber用户;
至于设置不设置jabber用户的密码,您看着办。
如果您当前操作的普通用户,想通过su命令切换到root用户下,然后再通过sujabber,这样就不用密码也行;如果您认为这样切来切换去的有点麻烦,那你就设置一下jabber用户的密码;
[root@localhost~]#passwdjabber注:
设置jabber用户的密码;
2.4、编译安装JabberServer所需要的软件环境;
在Linux中编译安装JabberServer需要编译工具;比如gcc之类的,如果您没有编译环境,就要找出自己所用发行版的光盘,把这些安装上;JabberServer依赖openssl,您也得安装上;在您的Linux发版的安装盘中也应该有;
JabberServer依赖Mysql,因为我们要用Mysql存储用户资料;这个不可缺少吧;在发行版的光盘也有;
libidn这个软件包也在各大发行版中有;自己找找看;也可以自己编译安装;参考文档:
《Jabberd2InstallationandAdministrationGuide》
2.5、解压编译安装JabberServer;
[root@localhost~]#tarzxvfjabberd-2.0s10.tar.gz
[root@localhost~]#cdjabberd-2.0s10
[root@localhostjabberd-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/jabberd2
[root@localhostjabberd-2.0s10]#make
[root@localhostjabberd-2.0s10]#makeinstall
注意:
在./configure中要指定您的Mysql的include所在的位置,也要指定mysql的lib所在的位置;您应该知道这些东西在哪里;我的mysql的include和lib分别是/usr/include/mysql和/usr/lib/mysql--prefix用来指定把jabberd安装在哪个位置上。
我是安装到了/opt/jabberd2目录中;自己看着办吧。
这样指定比较方便。
当我们不需要jabberd的时候,就直接删除/opt/jabberd2目录就行了。
就是重装也方便;卸载就更方便了;
3、jabberserver的简单配置;
3.1、创建JabberServer进程存放目录pid及日志存放目录log
[root@localhost~]#mkdir-p/opt/jabberd2/var/jabberd/pid
[root@localhost~]#mkdir-p/opt/jabberd2/var/jabberd/log
[root@localhost~]#chown-Rjabber:
jabber/opt/jabberd2/var
说明:
改变/opt/jabberd2/var权限,让用户jabber可以写数据到/opt/jabberd2/var及下级目录;
3.2、有关Mysql数据库的操作;
在我们的解压编译的JabberServer目录中jabberd-2.0s10,有一个目录tools,里面有一个文件db-setup.mysql,就是创建数据库的脚本;首先我们得启动Mysql服务器;这个过程省略;然后我们导入db-setup.mysql;
[root@localhostjabberd-2.0s10]#cdtools
[root@localhosttools]#mysql-uroot-pEnterpassword:
在这里输入Mysql数据库的管理密码
经过上一步,我们就导入了一个jabberd2的数据库;下一步我们要进行授权;让jabberd2数据库有一个专门的管理用户;
[root@localhosttools]#mysql-uroot-p
Enterpassword:
注:
在这里输入Mysql数据库的管理密码
然后我们在mysql数据库中运行下面的一条指令;
mysql>GRANTselect,insert,delete,updateONjabberd2.*\
tojabberd2beinan@localhostIDENTIFIEDby'123456';
注解:
其中jabberd2beinan是jabberd2数据库的管理员,这个可以自己定义;定义你自己喜欢的;其中123456是用户jabberd2beinan用户的密码;如果没有问题的话,我们从mysql退出后,就要吧用jabberd2beinan用户来连接Mysql服务器了;
[root@localhosttools]#mysql-ujabberd2beinan-p
Enterpassword:
在这里输入jabberd2数据库管理员jabberd2beinan的密码;
mysql>showdatabases;注:
查看数据库;
+----------+
|Database|
+----------+
|jabberd2|
|test|
+----------+
2rowsinset(0.00sec)
mysql>quit
3.3、JabberServer的配置文件的修改;以我的安装和配置环境为准,我是安装JabberServer在/opt/jabberd2目录中;配置文件在/opt/jabberd2/etc/目录中;我们需要改的文件,有如下几个;c2s.xmlresolver.xmlrouter-users.xmlrouter.xmls2s.xmlsm.xml我只是简单的说一下我的配置,不一定对,但能用得起来;注意:
所有192.168.1.4的IP都是我架JabberServer这台机器的IP,您要根据自己的情况来进行改动;3.31、c2s.xml文件第77行;
localhost
改为
linuxsir
重要:
这个是极为重要的,linuxsir是服务器的hostname,并且能被局域网每台机器都能识别的,也就是我们前面所说要自己做DNS,或通过路由器来做解析;一般路由器都有这个功能;这个需要您自己来弄;
第81行;
0.0.0.0
改为
192.168.1.4
277和278行,是Mysql服务器认证的;
--Databaseusernameandpassword-->
jabberd2
secret
改为:
下面改动是根据您在Mysql数据库jabberd2授权给你所设置的用户名和密码;
--Databaseusernameandpassword-->
jabberd2beinan
123456
3.32、resolver.xml文件不做改动,默认就行;
3.33、router-users.xml文件不做改动;如果您要改动,其它文件也要改。
这个文档是简单架设。
没有考虑的太多;大多是默认的配置;我的建议是为了安全,你还是改一下用户和密码;也就是下面的;
jabberd
secret
把上面的改一改,最好改的比较安全一点;下面只是一个简单的例子;
jabberd1234
654321
如果router-users.xml中做了改动其它文件中的如下内容也要改动;
--IP/porttherouteriswaitingforconnectionson-->
127.0.0.1
--default:
127.0.0.1-->
5347
--default:
5347-->
--Username/passwordtoauthenticateas-->
jabberd
--default:
jabberd-->
secret
--default:
secret-->
也就是要改动上面的中的
--Username/passwordtoauthenticateas-->
jabberd1234
--default:
jabberd-->
654321
--default:
secret-->
3.34、router.xml文件不做改动,默认就好;3.35、s2s.xml文件第77行;
0.0.0.0
改为
192.168.1.4
3.36、sm.xml文件第7行;这是服务器hostname的设置,您所用的hostname要在局域网中被识别;这就涉及到DNS;现在路由器大多都有指定DNS的功能;这个需要您自己来弄;我的这台机器在路由器上做了DNS后,被指定解析为linuxsir;
localhost
改为
linuxsir
第88、89行;这两行也是连接Mysql数据库服务器;也要改动;
jabberd2
secret
改为
jabberd2beinan
123456
4、JabberServer启动和管理;我们在前面已经添加了jabber这个用户,目的就是为了服务的安全性,让这个用户来添加和启动JabberServer;当然我们要切换到jabber这个用户,然后让jabber这个用户来启动jabberd服务器;
[root@localhost~]#sujabber
[jabber@localhost~]$/opt/jabberd2/bin/jabberd-D
这个Debug模式运行,如果有什么错误,就能显示出来;如果不行,你就按几下回车,看看是不是有错误发生。
如果没有,就Ctrl+C结束运行,然后转为后台运行;
[jabber@localhost~]$/opt/jabberd2/bin/jabberd&
[jabber@localhost~]$ps-aux|grepjabberd
jabber704812.31.250723184pts/0R05:
330:
00perl-w-x/opt/jabberd2/bin/jabberd
jabber70492.30.546561452pts/0S05:
330:
00/opt/jabberd2/bin/router-c/opt/jabberd2/etc/jabberd/router.xml
jabber70500.60.445521252pts/0S05:
330:
00/opt/jabberd2/bin/resolver-c/opt/jabberd2/etc/jabberd/resolver.xml
jabber70512.00.647961716pts/0S05:
330:
00/opt/jabberd2/bin/sm-c/opt/jabberd2/etc/jabberd/sm.xml
jabber70520.60.546441340pts/0S05:
330:
00/opt/jabberd2/bin/s2s-c/opt/jabberd2/etc/jabberd/s2s.xml
jabber70531.60.647521672pts/0S05:
330:
00/opt/jabberd2/bin/c2s-c/opt/jabberd2/etc/jabberd/c2s.xml
jabber70550.00.22256732pts/0R+05:
330:
00grepjabberd
说明:
第一行是后台运行;第二行是查看是否jabberd已经启动起来了;如果出现类似上面的提示,这表示jabberd已经运行;
5、Jabber客户端的应用;5.1、Jabber客户端的选择;对于客户端的选择,您可以用gaim;也可能用其它的,我用的是gaim;请到Jabber客户端:
JabberClients去找适合自己;如果您想用gaim,可以到上去下载;Windows版本和Linux版本都有;如果您用的是Linux,各大发行版都有这个软件包;安装上就行了;5.2、客户机的DNS配置;如果您是Linux,就得让/etc/resolv.conf有DNS主机的设置;比如我的设置是
nameserver192.168.1.1
192.168.1.1这行就是DNS服务器的,我用的是路由器,路由器我配置DNS的时候,用的就是这个地址;如果您是用Windows,也得在网卡设置IP那个界面上,写上这个吧;自己看着办吧;5.3、Jabber客户端之一Gaim的使用;Gaim使用就简单了,我们可以通过Gaim来向局域网JabberServer申请ID;第一步:
添加帐号;点击[帐号]=>添加=》协议:
选择Jabber
用户名:
先随便写一个您喜欢的,比如我写是的beinan
服务器:
也就是我们前面设置的JabberServer那台机器的hostname;我的机器是linuxsir;
资源:
不用管他;
密码:
自己写一个吧;因为没有注册呢;这个不是重要的;
别名:
就是昵称,比如大灰狼之类;点击[显示主要选项]Jabber选项可用则使用TLS这个要选中,其它两个是[强制旧SSL]和[允许不加密流上的纯文本验证],这两个就不要选中了;l端口:
5222连接服务器:
就是JabberServer所在机器的IP地址,我这台机器是192.168.1.4代理类型:
不用改变,保持原来的状态就行;[使用全局代理设置]第二步注册帐号;这些都添写好了,再点击[注册];然后写上用户名和密码;他会提示注册成功;第三步修改帐户我们还得从头再来,点击[帐户],然后选中您刚才注册的成功的那个帐户;点击修改;就按前面所说的来修改;只是在[显示主要选项]中的连接服务器改一改就行了。
因为这个是空的;要改为你自己服务器的IP地址就行了;我的服务器是192.168.1.4。
我就改成了192.168.1.4;至于Windows用户的Gaim的使用同理;6、一些疑问;6.1、jabberd2能否和MSN、YahooMessager、ICQ等用户对聊功能;能的;但要安装一些插件;在我看来这些插件有点难度。
因为我测试过一些插件;但不能解决一些依赖关系;等解决了依赖关系,却不能应用;错误是的。
http:
//www.jabber.org/software/components.shtml6.2、jabberd2能否支持客户端传文件功能;如果是默认安装是不支持的,这也需要第三方插件;目前有三种方法吧;在jabber的主页上说,如果想要实现相互传文件功能,与客户端有关;我测试了好多种,但还是不行。
psi据说是能行,我测试后也不行;可能依靠客户端传文件还是有点难度。
或许不久就以解决?
如果通过服务器端解决呢?
也是有可能的,有两种方法;proxy65和定义apachedav模块的办法;apachedav模块据说比较简单。
但我没有试过。
据有关洋人说,不太安全;proxy65的方法也有难度,他依赖太多的东西,比如python、zope、twist、pyopenssl......多多;虽然也能解决依赖关系,但proxy65还是一样运行不起来;大家还是自己测试吧;写这些东西只不是想让新手走太多的路;6.3、jabberd2能否让支持语音或电话功能;可能有这个成功案例,我没有仔细看;但通过jabberd2文档,我没有看到,或许有第三方插件能解决;或许有点难度;7、关于本文本文是最简单的Jabber即时通讯服务器的架设;没有太多的功能,当然安全机制也没有考虑;高水平的文档并不是我能写的出来的,当然我也在努力写一写高水平的文档,到现在还没有这个能力,所以只能期待高手出现,或者期待自己某一天成为高手;本文面向初学者;8、参考文档《Jabberd2InstallationandAdministrationGuide》9、相关文档