使用 SSH 本地转发查看 3CX 数据库

随着 3CX V20 Update 6 alpha 的发布,3CX 也更新了他们的 CDR 数据库格式

但是 3CX 的数据库只允许本机(localhost)访问,为了能够一探究竟,今天我们介绍一个能够查看 3CX 数据库的简单方法:SSH 本地转发

⚠️注意:本文档只适用于没有图形化界面的 Linux 服务器。Windows 和安装了 GUI 的 Debian 可以直接在服务器上安装数据库软件。

SSH 本地转发

我们需要能够通过 SSH 访问到 3CX 服务器。能够使用 SSH 访问 3CX 后,在命令行中执行下面的命令:

ssh -L 5432:localhost:5432 user@3cxserver -p port

上面参数中:

  • 第一个 5432:本地转发端口,如果端口冲突换成其他端口。
  • user:登录 3CX 服务器的用户名称。
  • 3cxserver:3CX 服务器的域名或 IP 地址。
  • port:ssh 端口,默认为 22。

连接上后不要关闭命令行,本地转发就一直存在。

这个时候我们先执行命令查看数据库的密码:

cat /var/lib/3cxpbx/Bin/3CXPhoneSystem.ini

记住最后 [DbAdminREADONLY] 参数下的用户名和密码。用户名为 phonesystem。

image-20250402093706772

登录数据库

这里我们使用 pgadmin4 作为演示,可以替换成其他数据库软件。下载安装后打开,点击 Add New Server。

在 Name 字段为新的连接输入名字,我这里使用 3CX

image-20250402093904896

跳转到 Connection 标签,输入下列参数:

  • Host name/address:输入 127.0.0.1 或 localhost。
  • Port:5432。如果因为端口冲突修改了本地转发端口,填写修改后的端口。
  • Maintenance database:输入 database_single。
  • Username:phonesystem。
  • Password:输入前面查看的 DbAdminREADONLY 密码。
image-20250402094214602

点击 Save 后服务器会自动连接上。

我们依次展开 Database -> Database_single -> Schemas -> public -> Tables。可以看到 3CX 在这里存储的数据表。

image-20250402094439274

比如我们这里找到 3CX 在 V20 Update 6 更新的 cdroutput。右键点击 View/Edit Data -> All Rows

image-20250402094535169

可以看到 3CX CDR 的数据了。想要查看其他数据也是同理。

image-20250402094631359