博主头像

人間になりたい!!!!!


皖ICP备2025096275号

从零搭建私有 VoIP 服务器: 打造不被监听的专属电话网络

前言

在这个技术日益高速发展的时代, 科技单位对我们的监控也变得越来越变本加厉. 信息安全成为了所有人都应该注重的因素. 电话是我们所有人日常生活中都需要使用的功能. 众所周知, 普通电话是可以很轻易地被运营商监听监控的, 所以在谈论一些要事时, 不适宜用普通电话进行交谈. 为了使自己的电话隐私得到更严密的保护, 本篇文章将会记录博主搭建私有 VoIP 电话系统的全过程, 供有需要的读者进行参考.

什么是 VoIP?

VoIP (Voice over IP), 是一种语音通话协议. 它将实时音频流封装到 IP 协议中, 通过互联网基础设施进行传输. 我们可以对其数据包进行一定程度的加密, 从而达到保护隐私的目的.

搭建规划

博主建立了一张可以在家中, 学校中和一些朋友的网络中互相通信的 VPN 网络. 这套 VoIP 系统需要承载 VPN 内电话流量, 但同时不可以被外网访问. 因此防火墙需要指定在 VPN 内网网段和刚才提到的这些网络的内网网段.

配置需求

  • 可以安装 Debian 12 的服务器 / KVM (客户机至少需要 2G RAM, 20G 硬盘)
  • VPN 网络 (可选)

免责声明

本篇文章仅作技术交流, 请勿使用相关技术进行违规违法行为. 博主已尽到相关警告义务, 所有由读者造成的相关后果与本文, 博主, 本站均无关!


开整

1. 安装 Free PBX

Q. 什么是 Free PBX?
A. Free PBX 是一套开源免费的, 基于 Asterisk 平台的 IP 电话系统管理工具. 具有用户友好的 WebUI 页面. 同时是全球部署最广泛的开源商业通信系统之一, 拥有数百万活跃安装量. 其拥有庞大的开发者群体和社区, 提供丰富的文档支持. 同时功能可根据需求进行模块化定制和扩展, 十分方便.

1.1 使用 ISO 映像安装

  • 前往 Free PBX 下载页 下载最新版的 Free PBX 安装映像
  • 启动映像, 选择第一项直接安装. 选择后会让你花 30s 的时间阅读一份帮助文档, 随后就可以进入安装页面. 整个安装过程是全自动的, 并不需要手动操作什么, 等待安装完成即可.

1.2 手动安装

使用这种方法需要你当前的操作系统为 Debian 12 (bookworm). 如果你和我一样使用 Proxmox VE 作为宿主系统, 那么我这里推荐使用 Debian 12 Cloud Init 映像作为安装映像

  • 使用该指令执行安装脚本

    wget https://github.com/FreePBX/sng_freepbx_debian_install/raw/master/sng_freepbx_debian_install.sh -O /tmp/sng_freepbx_debian_install.sh && bash /tmp/sng_freepbx_debian_install.sh

    执行后, 该脚本会自动安装所有所需要的软件包, 整个过程大约需要半小时, 耐心等待即可.

    可能需要科学上网

2. 配置 Free PBX

2.1 初始化

  • 安装完成后, 直接访问服务器 IP 地址, 端口为默认 80 端口, 打开 WebUI.
  • 按照要求填写管理员用户名, 密码, 邮箱地址等, 然后完成设置.
  • 进入 WebUI 后登录, 会自动跳转到服务器初始化设置页面. 单击 Active 激活服务器.
  • 这里会让你创建 Portal Account (门户账户), 输入邮箱后服务器会自动检查可用性.
  • 在这之后按照 WebUI 指示完成全部配置即可.

2.2 基础配置

2.2.1 防火墙
  • 进入 Connectivity -> Firewall 页面, 设置防火墙
  • 选择 Interfaces 选项卡, 进入接口设置.
    这里会列举出你的服务器上当前可用的所有网络接口. 然后在 Default Zone 中配置默认区域.

    Default Zone名称简介安全性
    Internet互联网允许网络上的所有 SIP 客户端接入, 黑名单除外最低
    Local本地仅允许本地受信任的通讯接入高
    Other其他仅允许其他类型通讯接入高
    Reject拒绝拒绝所有通讯接入最高
    Trusted受信任仅允许受信任的通讯接入高

    这里按需选择接口防火墙配置. 在本文的场景中, 选择 Local 即可.
    配置完成后, 单击右下角 Update Interfaces 即可更新防火墙配置

  • 来到 Networks 选项卡, 配置受信任的网段.
    服务器会自动将本地网段和你用于访问 WebUI 的设备地址加入受信任域, 这里我们可以手动添加. 输入的 IP 地址段须符合 CIDR 规则 (例如 192.168.1.0/24, 10.0.0.0/8 等)
    输入完成后单击右下角的 Save 即可
2.2.2 SIP 中继

如果你需要将你的系统接入外部 SIP 系统, 来访问其他全球 VoIP 服务器, 则需要配置中继. 在本文的需求中是不需要的. 但这里为了使得教程更加通用, 还是介绍一下如何配置.

  • 首先向一个 SIP 服务提供商 (如 VoIP.ms, Twilio 等) 购买服务
  • 进入 Connectivity -> Trunks 点击 Add Trunk
  • 根据 SIP 提供商给出的相关信息, 选择相应的类型, 填入数据后保存即可
2.2.3 创建分机 (添加用户)
  • 进入 Connectivity -> Extensions 点击 Quick Create Extension 快速添加分机, 按照指示填写参数

    参数名称含义详解
    Type分机类型这里直接选择 chan_pjsip 即可. 这是 FreePBX 目前推荐且默认的现代 SIP 协议栈, 兼容性更好且支持 IPv6 和更强的加密
    Extension Number分机号码系统内外呼时的号码
    Display Name显示名称该分机来电时显示的名称
    Outbound Caller ID外呼主叫号码拨打外线电话 (其他 SIP 中继号码) 时, 对方看到的来电号码
    Email Address电子邮件该分机关联的邮箱
    参考配置
  • 填写完单击下一步, 然后继续按照要求填写

    参数名称含义详解
    Enable Find Me/Follow Me启用 "查找我"/"跟踪我"多终端联动功能. 当有人拨打你的号码时, 系统可以同时或依次呼叫你的其他分机
    ParkingLot驻留区域通话驻留是指可以将你正在进行的通话暂存到系统的某个编号, 然后去另一部分机上取回继续通话
    Create User Manager User创建用户管理用户是否在 FreePBX 的用户控制面板中创建一个 Web 登录账号
    User Manager Groups用户管理分组给这个用户分配的权限组
    Enable Voicemail启用语音信箱当无人接听或忙线时, 可以给你留言
    Voicemail PIN语音信箱密码用电话拨号盘接听语音留言时, 需要输入 PIN 码
    参考配置
  • 配置完成后单击 Finish. 然后单击用户右侧的编辑按钮, 进入编辑页面
  • 找到用户密码, 将鼠标指针移至编辑框内就会显示密码, 复制并记录. 如需修改也可以现在修改.
  • 全部配置完成后, 返回用户列表页面, 单击右上方红色 Apply Config 按钮提交配置.

3. 配置客户端

SIP 分机拨号客户端有很多种, 这里我们使用 ZoiPer 作为演示. 安卓端可以直接在 Play 商店中下载, 桌面端请移步官网.

  • 打开软件, 在 Username @ PBX/VoIP provider 一栏中, 按照 分机号 @ IP 地址 的格式填写

    例如 10001@192.168.1.24
  • 密码填写刚才记录的用户密码, 然后点击 Login 登录.
  • 接下来两个页面都直接下一步即可, 随后会进入一个测试连接可用性的页面. 博主的环境中测试 SIP UDP 是可用的.

    注意: 如果你正在使用 HTTP Proxy 或透明代理, 可能会无法使用! 请暂时关闭您的代理
  • 进入主页面后, 就可以直接尝试拨打电话了.

至此, 服务端和客户端的基础配置就完成了. FreePBX 的功能十分强大, 十分推荐自行去挖掘一下其他有用的功能. 本文只做基础配置讲解, 暂且不提其他配置. 如果后面有机会, 还会再出一篇进阶配置的文章.


后记

本人并非专业人员, 如有错误会疏漏请直接指出, 感谢您的阅读!

从零搭建私有 VoIP 服务器: 打造不被监听的专属电话网络
https://blog.nanami.tech/archives/369/
本文作者 Madobi Nanami
发布时间 2026-08-13
许可协议 CC BY-NC-SA 4.0
发表新评论