简单架设Jabber局域网即时通讯服务器文档格式.docx
《简单架设Jabber局域网即时通讯服务器文档格式.docx》由会员分享,可在线阅读,更多相关《简单架设Jabber局域网即时通讯服务器文档格式.docx(10页珍藏版)》请在冰豆网上搜索。
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
我是在局域网中架设并测试的,而且功能也极为简单、安全性也没有评测(或者说没有安全性),就是简单的注册和相互通讯(聊天);
Slackware10.1,其实在哪个发行版都是一样的,只要按官方文档上面说的做,一般都会成功;
好象没有不成功的呢;
我用的是mysql认证,也就是说用户注册和认证数据库调用的;
当然jabber支持多种认证,比如PostgreSQL、BerkeleyDB......因为我不懂其它的认证方式,我对Mysql也只是了解一点点;
所以我就用了Mysql的方法;
另外如果在局域网中架JabberServer,得有DNS服务器;
也就是说局域网中的机器相互能通过hostname来访问;
如果您不懂什么是DNS,或者不会DNS的架设。
我感觉也没有什么,现在几乎所有的路由器都有这个功能,点几下鼠标就能弄得起来;
如果你只一台机器,我看架JabberServer也没有必要了;
所以本文架设JabberServer的前提条件是你懂DNS(至少你有一个路由器,并且能在路由器上指定DNS来解析每台机器的hostname);
另外您还要懂一点Mysql服务器的架设和简单的应用;
我用的JabberServer的版本是jabberd-2.0s10.tar.gz;
http:
//jabberd.jabberstudio.org/2/#download
一般的说来root超级用户是能对所有服务器程序进行管理的;
但这样做有点不安全;
所以尽可能的少用root权限来启动一个服务器;
[root@localhost~]#groupaddjabber注:
添加jabber用户组;
[root@localhost~]#useraddjabber注:
添加jabber用户;
至于设置不设置jabber用户的密码,您看着办。
如果您当前操作的普通用户,想通过su命令切换到root用户下,然后再通过sujabber,这样就不用密码也行;
如果您认为这样切来切换去的有点麻烦,那你就设置一下jabber用户的密码;
[root@localhost~]#passwdjabber注:
设置jabber用户的密码;
在Linux中编译安装JabberServer需要编译工具;
比如gcc之类的,如果您没有编译环境,就要找出自己所用发行版的光盘,把这些安装上;
JabberServer依赖openssl,您也得安装上;
在您的Linux发版的安装盘中也应该有;
JabberServer依赖Mysql,因为我们要用Mysql存储用户资料;
这个不可缺少吧;
在发行版的光盘也有;
libidn这个软件包也在各大发行版中有;
自己找找看;
也可以自己编译安装;
参考文档:
《Jabberd2InstallationandAdministrationGuide》
[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.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及下级目录;
在我们的解压编译的JabberServer目录中jabberd-2.0s10,有一个目录tools,里面有一个文件db-setup.mysql,就是创建数据库的脚本;
首先我们得启动Mysql服务器;
这个过程省略;
然后我们导入db-setup.mysql;
[root@localhostjabberd-2.0s10]#cdtools
[root@localhosttools]#mysql-uroot-p<
db-setup.mysql
Enterpassword:
在这里输入Mysql数据库的管理密码
经过上一步,我们就导入了一个jabberd2的数据库;
下一步我们要进行授权;
让jabberd2数据库有一个专门的管理用户;
[root@localhosttools]#mysql-uroot-p
注:
在这里输入Mysql数据库的管理密码
然后我们在mysql数据库中运行下面的一条指令;
mysql>
GRANTselect,insert,delete,updateONjabberd2.*\
tojabberd2beinan@localhostIDENTIFIEDby'
123456'
;
注解:
其中jabberd2beinan是jabberd2数据库的管理员,这个可以自己定义;
定义你自己喜欢的;
其中123456是用户jabberd2beinan用户的密码;
如果没有问题的话,我们从mysql退出后,就要吧用jabberd2beinan用户来连接Mysql服务器了;
[root@localhosttools]#mysql-ujabberd2beinan-p
在这里输入jabberd2数据库管理员jabberd2beinan的密码;
showdatabases;
查看数据库;
+----------+
|Database|
|jabberd2|
|test|
2rowsinset(0.00sec)
quit
以我的安装和配置环境为准,我是安装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行;
<
id>
localhost<
/id>
改为
linuxsir<
重要:
这个是极为重要的,linuxsir是服务器的hostname,并且能被局域网每台机器都能识别的,也就是我们前面所说要自己做DNS,或通过路由器来做解析;
一般路由器都有这个功能;
这个需要您自己来弄;
第81行;
code>
ip>
0.0.0.0<
/ip>
改为
192.168.1.4<
277和278行,是Mysql服务器认证的;
!
--Databaseusernameandpassword-->
user>
jabberd2<
/user>
pass>
secret<
/pass>
改为:
下面改动是根据您在Mysql数据库jabberd2授权给你所设置的用户名和密码;
jabberd2beinan<
123456<
3.32、resolver.xml文件不做改动,默认就行;
3.33、router-users.xml文件不做改动;
如果您要改动,其它文件也要改。
这个文档是简单架设。
没有考虑的太多;
大多是默认的配置;
我的建议是为了安全,你还是改一下用户和密码;
也就是下面的;
<
name>
jabberd<
/name>
secret>
/secret>
把上面的改一改,最好改的比较安全一点;
下面只是一个简单的例子;
jabberd1234<
654321<
如果router-users.xml中做了改动其它文件中的如下内容也要改动;
router>
--IP/porttherouteriswaitingforconnectionson-->
127.0.0.1<
--default:
127.0.0.1-->
port>
5347<
/port>
5347-->
--Username/passwordtoauthenticateas-->
jabberd-->
secret-->
也就是要改动上面的中的
3.34、router.xml文件不做改动,默认就好;
3.35、s2s.xml文件第77行;
3.36、sm.xml文件第7行;
这是服务器hostname的设置,您所用的hostname要在局域网中被识别;
这就涉及到DNS;
现在路由器大多都有指定DNS的功能;
我的这台机器在路由器上做了DNS后,被指定解析为linuxsir;
第88、89行;
这两行也是连接Mysql数据库服务器;
也要改动;
我们在前面已经添加了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:
00/opt/jabberd2/bin/router-c/opt/jabberd2/etc/jabberd/router.xml
jabber70500.60.445521252pts/0S05:
00/opt/jabberd2/bin/resolver-c/opt/jabberd2/etc/jabberd/resolver.xml
jabber70512.00.647961716pts/0S05:
00/opt/jabberd2/bin/sm-c/opt/jabberd2/etc/jabberd/sm.xml
jabber70520.60.546441340pts/0S05:
00/opt/jabberd2/bin/s2s-c/opt/jabberd2/etc/jabberd/s2s.xml
jabber70531.60.647521672pts/0S05:
00/opt/jabberd2/bin/c2s-c/opt/jabberd2/etc/jabberd/c2s.xml
jabber70550.00.22256732pts/0R+05:
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等用户对聊功能;
能的;
但要安装一些插件;
在我看来这些插件有点难度。
因为我测试过一些插件;
但不能解决一些依赖关系;
等解决了依赖关系,却不能应用;
错误是的。
//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、相关文档