FMO是由BG5ESN开发的模拟转网络盒子,其不使用中心服务器,而是各爱好者自行搭建服务器,通过APRS网关广播。阅读FMO (NFM Over Internet) 语音服务器搭建指南 :: 大船地下室了解到,其使用MQTT Broker作为服务器载体。此处给出基于EMQX相对详细但仍简易的教程。
搭建环境:Linux(博主使用Ubuntu24.04),教程第一章也基于此,若在其它环境下安装,可以点此前往官方文档安装:EMQX 5.0 文档,后续面板配置过程相同。
网络需求:公网IP或内网穿透,访问固定端口,默认通信端口为1883,管理面板端口为18083,注意防火墙设置(不确定对IPv6的兼容性,也欢迎大家测试反馈~)。
服务器硬件需求:需要完整的服务器或主机。性能需求不高,博主在2核心2G内存3M公网带宽的ECS服务器上可以流畅的配置与运行;当然带宽越大,性能越好,允许在线人数越多。(FMO的音质有适用于语音通讯的低码率模式和适合SSTV等的高码率模式,理论上前者2M带宽就能满足数十人在线)。
一 EMQX安装
EMQX的安装不复杂,确保网络畅通,打开终端,依次运行一下命令:
1.配置安装源
curl -s https://assets.emqx.com/scripts/install-emqx-deb.sh | sudo bash
2.安装EMQX
sudo apt-get install emqx
3.运行EMQX
sudo systemctl start emqx
4.检查是否运行成功
sudo systemctl status emqx
如果输出结果类似这样的(主要检查active状态是不是 (running)),那就是安装好且能正常运行了:
● emqx.service - emqx daemon
Loaded: loaded (/usr/lib/systemd/system/emqx.service; enabled; preset: enabled)
Active: active (running)...
5.服务器节点名称修改(可选)
如果想方便后续集群拓展等其它玩法,建议先修改节点名称,因为EMQX的默认节点名都是本地的emqx@127.0.0.1,且节点名称变更后需要重新配置参数,所以在后续配置前修改服务器节点名是个不错的决定。
集群要求各服务器节点名称不能一致,而且最好是emqx@域名 或 emqx@IP 的形式,域名与IP均需要是EMQX服务器的真实地址。节点名的配置需要修改emqx.conf文件。这里展示用终端修改,若有GUI界面当然更方便。
在终端里可以用vim修改文件,运行以下指令:
vim /etc/emqx/emqx.conf
显示文件内容后,用方向键移动光标,找到以下内容:
node {
name = "emqx@127.0.0.1"
cookie = "emqxsecretcookie"
data_dir = "/var/lib/emqx"
}
按下i键,进入编辑模式,配合光标移动,修改emqx@127.0.0.1为emqx@fmo服务器真实地址:
node {
name = "emqx@fmo.tylk.cc服务器地址"
cookie = "emqxsecretcookie"
data_dir = "/var/lib/emqx"
}
修改好后先按esc键,再输入 :wq! 并回车(即强制保存退出),文件就保存好了。
随后运行重启EMQX命令:
sudo systemctl restart emqx
6.检查面板能否正常访问
在浏览器输入你的IP:18083,不出意外会显示EMQX的登录界面,输入默认的用户名admin,密码public即可登录。考虑服务器安全,建议登录后按照提示修改密码。

二 用户名密码配置
1.凭证生成
FMO注册好并开机后,按下菜单键,旋动旋钮找到“凭证”并短按旋钮进入,按照提示长按旋钮会得到一串用户名与密码,这就是FMO访问服务器的凭证。这里我们要将这组凭证导入EMQX服务器。

2.数据源创建
登录EMQX面板,点击左侧菜单中的“访问控制”栏目(找不到可以点一下左下角图标以显示名称),再点击”客户端认证“选项卡,显示如下页面:

点击右上角”创建“按钮,创建认证信息。其中认证方式选择”Password-Based“,数据源选择”内置数据库“,参数配置确定账号类型为”username“,再点击”创建“按钮,完成创建流程。完成后在客户端认证页面会有类似下图的数据源信息。

点击”用户管理“,再点击右侧的”添加“按钮,将刚刚FMO创建的用户名和密码凭证输入,不需要勾选”是否为超级用户“,点击”保存“。

3.测试连接
访问fmo.local登录FMO的后台,在“参数配置——自定义服务器”下填写服务器信息,范围建议填小点,记得点击“设置”按钮;随后在上方“重启APRS服务”中点击“重启服务”,然后在“远程控制”页面中就能找到自己的服务器了,点击加入(注意,若一段时间不连接,FMO将停止广播服务器,具体在参数配置页面有说明)。
点我查看FMO后台配置的详细步骤
点击“参数配置”

下拉页面找到“自定义服务器”栏目,依次填写地址、端口、名称等,测试服务器范围可以填小一些以便于控制。每设置完一项可以点击右边的“设置”,若成功写入FMO,会变成“设置成功”字样。若在设置名称或公告时提示“设置失败”,可以检查有没有使用中文标点,目前不能使用。

随后上翻到“APRS网络设置”栏目,填写APRS PASSCORD(基于呼号计算,点这里跳转到在线计算器)并点击“设置”保存参数,其余信息按需填写。
然后点击下方“重启服务”。

返回FMO控制面板主页,点击“远程控制”,选择自己的中继:


页面上会提示当前已接入台站,FMO本体上也会显示信息,此时可进行后续配置。
在EMQX面板中,选择左侧菜单栏里的“监控”,再点击“客户端”选项卡,记录自己FMO的客户端ID,用于后续安全配置。

FMO无法连接?请点我~
如果FMO无法连接到服务器,但可以在aprs网络上看到,请检查一下FMO提供的用户名和密码凭证是否正确输入到面板,可以使用MQTTX之类的测试客户端进行连接测试。在MQTTX中,点击左侧+号新建连接,然后参考下图填写。

若用户名密码等信息正确,点击“连接”后会提示连接成功。
如果FMO无法连接也无法广播服务器,请先进行上述测试,若无法连接,请检查服务器防火墙策略是否允许1883端口,以及服务器本身是否存在端口被其它程序占用的情况。若可以连接且参数配置正确,请检查您的网络是否可以流畅的与FMO使用的aprs网络通讯,因为部分网络DNS污染,可能出现各种奇怪的情况。
三 服务器安全配置
参考FMO(NFM Over Internet)语音服务器安全设置指南 :: 大船地下室,我们需要对服务器的安全进行配置以确保管理员的有效性。
1.基本操作
点击左侧菜单中的“访问控制”栏目,再点击”客户端授权“选项卡,显示如下页面:

点击右上角“创建”,选择“内置数据库”,点击“下一步”,最大规则数可不改动,点击“创建”,页面会显示如下条目:

点击右侧“权限管理”按钮,进行后续配置。
2.管理员设置
保持在“客户端ID”栏目下,点击右侧”添加“按钮,参考下图:

在弹出的对话框中,客户端ID一栏填写FMO名称,在上一步骤中已经获取。一般格式为”FMO-BG6HFD-XXX-XXX“;点击右侧”添加“字样,参考下方表格设定权限。
| 操作 | 权限 | 主题 |
| 发布和订阅时 | 允许 | FMO/REGU/MUTELIST |
| 发布和订阅时 | 允许 | FMO/REGU/SERVER_REMOTE_CONTROL |
| 发布和订阅时 | 允许 | FMO/SERVER_INFO |
| 发布和订阅时 | 允许 | FMO/PROFILE |
填写完成样式参考下图,点击右下角”添加“按钮,完成管理员规则创建。如想设置多个管理员,重复以上管理员设置的步骤即可。

若当前FMO有管理员权限,FMO的菜单会有变化,参考下图:

上图也展示了管理员的一些功能:
服务器广播——设置是否在aprs上广播服务器,以便于其它爱好者发现,若24小时内无语音活动,广播会被暂停;
服务器遥毙——可以设置一键停止服务器,用于特殊情况下能够快速关闭服务器;
编解码器设置——可以设置高压缩比或高保真,高压缩比适用于纯语音通信,占用带宽小,单机带宽需求约1.5k每秒;高保真音质更好,且适用于APRS\SSTV\DTFM等音频数传协议,占用带宽大,单机带宽需求8k字节每秒。
3.用户组设置
点击切换到“所有用户”栏目,参考下图:

点击右侧”添加“按钮,在弹出的对话框中,参考下方表格填写各操作对应权限和主题,每填写完一条就点击右下角的“添加”。随后再次点击右侧”添加“按钮填写下一条,填写方式参考下图:

| 操作 | 权限 | 主题 |
| 发布时 | 拒绝 | FMO/REGU/MUTELIST |
| 发布时 | 拒绝 | FMO/REGU/SERVER_REMOTE_CONTROL |
| 发布时 | 拒绝 | FMO/SERVER_INFO |
| 发布时 | 拒绝 | FMO/PROFILE |
| 订阅时 | 允许 | FMO/REGU/MUTELIST |
| 订阅时 | 允许 | FMO/REGU/SERVER_REMOTE_CONTROL |
| 订阅时 | 允许 | FMO/SERVER_INFO |
| 订阅时 | 允许 | FMO/PROFILE |
| 发布和订阅时 | 允许 | FMO/LATE/# |
| 发布和订阅时 | 允许 | FMO/RAW |
| 发布和订阅时 | 允许 | FMO/TELE |
| 发布和订阅时 | 允许 | FMO/QSO/# |
完成所有规则填写,参考如下图:

用户组只需要设置一次,权限策略适用于除管理员外的所有用户。这里的所有用户不包括管理员,故不用担心设置所有用户权限后管理员权限是否会丢失。
此时我们就完成了服务器配置,可以正常使用了。建议正常情况下保留1883端口即可,面板端口按需开放。
学习了。不错。学会了,FMO去那里领?
加老板娘微信排队购,,,咳咳,是BG5ESN啊,那从产线上薅一台吧٩(ˊᗜˋ*)و
火钳刘明
|´・ω・)ノ