xmpp服务器linux,Prosody搭建xmpp服务器

蓬野
2023-12-01

安装

使用centos8安装

yum install prosody

dnf --enablerepo=PowerTools install lua-filesystem

其它版本linux则无需单独安装lua-filesystem依赖。

配置

主配置文件 prosody.cfg.lua 一般不需要修改。

下面写些咱做的修改

在 modules_enabled 中取消启用 version 和 uptime 模块,顺便启动些其他的模块,比如offline。

如果需要允许在客户端上注册的话,把 allow_registration 设置成 true 。

其它配置保持默认即可。

另外一个配置文件就是具体和域名对应的配置文件了,位于/etc/prosody/conf.d目录下

我的配置是:

baidecai.xyz.cfg.lua

VirtualHost "baidecai.xyz"

http_host = "www.baidecai.xyz"

-- enabled = false -- Remove this line to enable this host

-- Prosody will automatically search for a certificate and key

-- in /etc/prosody/certs/ unless a path is manually specified

-- in the config file, see https://prosody.im/doc/certificates

ssl = {

key = "/etc/prosody/cer/baidecai.xyz.key";

certificate = "/etc/prosody/cer/baidecai.xyz.crt";

protocol = "tlsv1_1+";

--- 为客户端到服务器(c2s)和服务器到服务器(s2s)打开认证

verify = { "peer", "peer" };

ciphers = "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";

dhparam = "/etc/prosody/certs/dh-1024.pem"

}

disco_items = {

{ "upload.baidecai.xyz" },

}

Component "upload.baidecai.xyz" "http_upload"

http_upload_file_size_limit = 1024000

http_upload_expire_after = 60 * 60 * 24 * 7

http_upload_path = "/uploaded/files"

http_files_dir = "/uploaded/files"

为了支持聊天中发送文件,我加入了http_upload模块。需要注意的是,这个模块来自社区,并不是prosody自带的,所以需要自己去下载放入prosody的插件目录(在这个问题上,我折腾了好几天才搞定,官方文档没有说清楚),要不然你的xmpp就没法发文件了,及时客户端支持发送操作也会报错。

prosody的插件目录位置可以通过这个命令查看:

prosodyctl about

注意

现在的xmpp client基本都不再支持非SSL登陆了,所以你必须要有一个证书。也就是前文配置中的certificate和key文件,这个很好申请,推荐网址: https://freessl.cn/ 。

dhparam文件生成指令

openssl dhparam -out dh.pem 1024

如果没开启允许客户端注册的话,用 prosodyctl 注册账户

prosodyctl adduser

到此为止,你已经拥有了一个可以加密聊天,可以发文件的xmpp server了。

 类似资料: