在 Ubuntu 22.04 | 20.04 | 上安装 Ejabberd XMPP 服务器在 Ubuntu 22.04 | 20.04 | 上安装 Ejabberd XMPP 服务器在 Ubuntu 22.04 | 20.04 | 上安装 Ejabberd XMPP 服务器在 Ubuntu 22.04 | 20.04 | 上安装 Ejabberd XMPP 服务器
  • 业务
  • 目标
  • 支持
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容

在 Ubuntu 22.04 | 20.04 | 上安装 Ejabberd XMPP 服务器

发表 admin at 2025年2月28日
类别
  • 未分类
标签

Ejabberd 是一款开源 XMPP 服务器,旨在提高速度和效率。该工具是从头开始构建的,具有容错性、简单的配置和可扩展性。扩展就是向集群添加额外的虚拟机。 Ejabberd 支持验证模块,例如 Mnesia、SQL、LDAP 或通过使用外部脚本进行验证。本文将引导您完成在 Ubuntu 22.04|20.04 上安装 Ejabberd XMPP 服务器所需的步骤。

Ejabberd 使用Mnesia(分布式内部 Erlang 数据库)来保存数据,但也支持其他数据库系统。这包括;

  • SQL 数据库,例如 MySQL 或 PostgreSQL
  • NoSQL 数据库,例如 Riak(也是用 Erlang 编写的)

Ejabberd XMPP 服务器的主要功能

Ejabberd 被设计为模块化,以确保高水平的定制和轻松访问所需的功能。

  • 存储转发(离线消息)
  • 联系人列表(花名册)和出席情况
  • 一对一消息传递
  • 用户状态扩展:个人事件协议 (PEP) 和打字指示器
  • 带有 vCard 的用户配置文件
  • 群聊:MUC(多用户聊天)
  • 使用消息归档管理 (MAM) 进行消息归档
  • 消息传递收据(又名 XEP-184)
  • 隐私设置,通过隐私列表和简单的阻止扩展
  • 上次活动
  • 指标和完整的命令行管理
  • 全功能网络支持,带有 BOSH 和网络套接字
  • 移动设备上消息可靠性的流管理(又名 XEP-0198)
    等等。

在执行安装之前,请设置正确的服务器主机名

sudo hostnamectl set-hostname ejabberd.example.com
sudo hostnamectl set-hostname ejabberd.example.com --static
logout

步骤1:下载ejabberd二进制文件

ejabberd 社区服务器二进制文件适用于 Linux 和 Windows。您可以使用通用安装程序脚本,或特定于操作系统的二进制包,例如 Debian 系列的 .deb 包和 Red Hat 系列 Linux 发行版的 .rpm 。

我们将把 ejabberd Debian 软件包安装到我们的本地系统 – Ubuntu 机器上。

您可能需要检查 ejabberd 下载页面以获取可用的最新版本。截至本文更新,时间为21.07

EJ_VERSION=23.01
wget https://static.process-one.net/ejabberd/downloads/${EJ_VERSION}/ejabberd_${EJ_VERSION}-1_amd64.deb

确认包已下载。

$ ls -lh ejabberd_${EJ_VERSION}-1_amd64.deb
-rw-rw-r--. 1 jkmutai jkmutai 15M Jan 17 18:13 ejabberd_23.01-1_amd64.deb

第2步:安装Ejabberd XMPP服务器

下载软件包后,您可以使用apt软件包管理器来安装它。

sudo apt install ./ejabberd_${EJ_VERSION}-1_amd64.deb

确认在 Ubuntu 22.04/20.04 上成功安装 Ejabberd XMPP 服务器:

.....
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Note, selecting 'ejabberd' instead of './ejabberd_21.07-0_amd64.deb'
The following packages were automatically installed and are no longer required:
  libcamel-1.2-62 libextutils-pkgconfig-perl libgupnp-1.2-0 pkg-config
Use 'sudo apt autoremove' to remove them.
The following NEW packages will be installed:
  ejabberd
0 upgraded, 1 newly installed, 0 to remove and 108 not upgraded.
Need to get 0 B/18.8 MB of archives.
After this operation, 28.7 MB of additional disk space will be used.
Get:1 /home/jkmutai/ejabberd_21.07-0_amd64.deb ejabberd amd64 21.07-0 [18.8 MB]
Selecting previously unselected package ejabberd.
(Reading database ... 141300 files and directories currently installed.)
Preparing to unpack .../ejabberd_21.07-0_amd64.deb ...
Unpacking ejabberd (21.07-0) ...
Setting up ejabberd (21.07-0) ...

安装程序将执行许多操作:

  • 添加ejabberd系统用户进行应用管理
  • 为此系统用户创建主目录 – /opt/ejabberd
  • 启动核心ejabberd服务
$ ls /opt/ejabberd
conf  database  logs

$ getent passwd ejabberd
ejabberd:x:998:998::/opt/ejabberd:/bin/sh

第三步:启动ejabberd服务

安装完成后,您可以在 Ubuntu 22.04|20.04 上启动 ejabberd 服务:

sudo cp $(sudo find / -name ejabberd.service) /etc/systemd/system

重新加载系统:

sudo systemctl daemon-reload

启动服务并使其在启动时启动:

sudo systemctl enable --now ejabberd

确保服务启动时没有任何错误:

$ systemctl status ejabberd
● ejabberd.service - XMPP Server
     Loaded: loaded (/etc/systemd/system/ejabberd.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2020-05-23 11:31:59 CEST; 4s ago
    Process: 1478 ExecStart=/bin/sh -c /opt/ejabberd-21.07/bin/ejabberdctl start && /opt/ejabberd-21.07/bin/ejabberdctl started (code=exited, status=0/>
      Tasks: 23 (limit: 4567)
     Memory: 53.1M
     CGroup: /system.slice/ejabberd.service
             ├─1526 /opt/ejabberd-21.07/bin/epmd -daemon
             ├─1528 /opt/ejabberd-21.07/bin/beam.smp -K true -P 250000 -- -root /opt/ejabberd-21.07 -progname /opt/ejabberd-21.07/bin/erl -- -home /opt>
             ├─1539 erl_child_setup 65536
             └─1567 /opt/ejabberd-21.07/lib/os_mon-2.4.7/priv/bin/memsup

May 23 11:31:56 ubuntu systemd[1]: Starting XMPP Server...
May 23 11:31:59 ubuntu systemd[1]: Started XMPP Server.

将 ejabberdctl 命令位置添加到您的 PATH

找到 ejabberdctl.

$ sudo find / -name ejabberdctl
/opt/ejabberd-21.07/bin/ejabberdctl

将 的路径添加到您的 .bashrc 文件中。

sudo su -
vim ~/.bashrc

设置如下 - 但将 /opt/ejabberd-21.07/bin/ 替换为从 find 命令找到的版本路径:

PATH=$PATH:/opt/ejabberd-21.07/bin/

获取要反映的新路径的文件:

source ~/.bashrc

第 4 步:向 Ejabberd 添加管理员用户

您可以出于管理目的向 ejabberd 添加用户。

句法 :

ejabberdctl register <username> <server_hostname>  <user-password>

就我而言,我将运行以下命令:

# ejabberdctl register computingforgeeks $(hostname) StrongPassword
User [email  successfully registered

在哪里 :

  • computingforgeeks 是要创建的用户的名称。
  • StrongPassword 是与创建的用户关联的密码。

编辑 ejabberd 配置文件,为您创建的 XMPP 帐户授予管理权限。

用户格式:

"username@servername"

编辑acl部分并添加用户。

$ sudo vim /opt/ejabberd/conf/ejabberd.yml
......

acl:
  local:
    user_regexp: ""
  loopback:
    ip:
      - 127.0.0.0/8
      - ::1/128
      - ::FFFF:127.0.0.1/128
  admin:
    user:
      - "admin@ejabberd.example.com"
      - "computingforgeeks@ejabberd.example.com"

在 Ubuntu 上重新启动 Ejabberd 服务:

sudo systemctl restart ejabberd

您可以向任意数量的 XMPP 帐户以及其他 XMPP 服务器中的帐户授予管理权限。

第 5 步:访问 ejabberd 网络管理

应可通过 http://server_ip_address_or_hostname:5280/admin/ 访问网络管理员。

检查端口是否绑定:

# ss -tunelp | grep 5280
tcp    LISTEN  0 5  *:5280   *:* users:(("beam.smp",pid=3124,fd=47)) uid:998 ino:66294 sk:8 v6only:0 <->

如果您有 ufw 防火墙,请允许端口 5280:

sudo ufw allow 5280

在浏览器中打开 ejabberd Web URL。输入之前配置的用户名和密码。

应显示对 Ejabberd Web 控制台的访问。

您已在 Ubuntu 22.04|20.04 上成功安装 Ejabberd XMPP 服务器。

©2015-2025 Norria support@norria.com