FreeSWITCH windows docker 是的你提到的命令只映射了 SIP 信令端口对于一个完整可用的 FreeSWITCH 服务来说通常还需要暴露更多的端口。根据 FreeSWITCH 的官方文档和社区实践除了 5060 UDP 端口还有以下 TCP 和 UDP 端口在特定场景下是必需的。需要额外暴露的端口下表整理了除 5060 (UDP) 外常见的需要暴露的端口及其用途端口协议用途说明5060TCPSIP 信令 (Internal Profile)官方文档显示 SIP 同时支持 TCP 和 UDP因此 TCP 5060 也需要映射。5080TCP UDPSIP 信令 (External Profile)FreeSWITCH 默认的externalprofile 会使用 5080 端口用于处理来自外部或公网的 SIP 请求。8021TCPEvent Socket (ESL)这是非常重要的管理端口。用于fs_cli等客户端连接以执行控制台命令、监控系统状态等。5066TCPWebSocket 信令为 WebRTC 等基于 Web 的客户端提供 SIP over WebSocket 服务。7443TCPWebSocket 信令 (安全)基于 TLS 的安全 WebSocket 信令端口。16384-32768UDPRTP/RTCP 媒体流核心端口范围。用于传输语音、视频等实时媒体数据。这是大范围端口在 Docker 中映射需要特别处理。注不同的 Docker 镜像如chatopera/freeswitch等列出的默认端口范围可能略有不同比如有的镜像使用64535-65535/udp作为媒体端口。如何修改启动命令你可以参考下面的命令将上述关键端口一并映射。请注意大范围 UDP 端口的映射可能会消耗较多内存并导致启动变慢以下是一个示例docker run-d--name freeswitch -p 5060:5060/udp-p 5060:5060/tcp -p 5080:5080/udp-p 5080:5080/tcp -p 8021:8021/tcp -p 5066:5066/tcp -p 7443:7443/tcp -p 16384-32768:16384-32768/udp hangzhou.aliyuncs.com/bytedesk/freeswitch:latest替代方案与建议使用 Host 网络模式对于生产环境或完整功能部署许多经验丰富的用户会采用--nethost模式。这能让容器直接使用宿主机的网络栈避免复杂的端口映射和潜在的性能问题。命令示例docker run-d--name freeswitch--nethost--cap-add SYS_NICE freeswitch/freeswitch检查镜像文档freeswitch/freeswitch这个官方镜像的默认配置和端口可能与其社区衍生版不同。最可靠的方法是查阅该镜像在 Docker Hub 上的具体说明确认其暴露的端口和配置方式。你遇到的这个错误信息Client.Timeout exceeded while awaiting headers是 Docker 从官方仓库拉取镜像时网络连接超时导致的这是在国内很常见的问题。根本原因在于 Docker Hub 的服务器在国外国内网络访问时可能会比较慢或不稳定。别担心解决方法很简单最推荐的就是配置国内镜像加速器。 如何配置镜像加速你可以参考下面的步骤为 Docker 配置一个国内镜像源。获取加速器地址你可以选择使用一些公共的镜像加速服务可能不太稳定或者推荐注册一个阿里云或腾讯云的账号获取一个专属的加速地址这样最稳定通常也是免费的。修改 Docker 配置Windows (Docker Desktop)右键点击系统托盘中的 Docker 图标选择Settings-Docker Engine。在打开的 JSON 配置文件中加入或修改registry-mirrors项。例如填入你获取到的阿里云加速地址{registry-mirrors:[https://你的专属ID.mirror.aliyuncs.com]}如果你还没有专属地址也可以先尝试用下面这个公共的试试看{registry-mirrors:[https://registry.docker-cn.com]}点击Apply Restart按钮让配置生效。再次尝试拉取配置生效后重新执行你之前的docker run命令应该就能成功拉取镜像了。 备选方案如果配置加速器后问题仍然存在可以考虑检查网络确保你的网络连接稳定可以尝试ping registry-1.docker.io看看连通性。使用其他镜像有开发者提供了部署在国内的 FreeSWITCH 镜像也可以尝试直接拉取例如docker pull registry.cn-hangzhou.aliyuncs.com/bytedesk/freeswitch:latest。没问题下面是完整的一行命令Windows PowerShell 中直接粘贴即可docker run-d--name freeswitch-p 5060:5060/udp-p 5060:5060/tcp-p 5080:5080/udp-p 5080:5080/tcp-p 8021:8021/tcp-p 5066:5066/tcp-p 7443:7443/tcp-p 16384-32768:16384-32768/udp registry.cn-hangzhou.aliyuncs.com/bytedesk/freeswitch:latest如果要进入 FreeSWITCH 控制台验证用这个一行命令docker exec-it freeswitch fs_cli如果只想快速体验不想映射那么多端口可以简化为docker run-d--name freeswitch-p 5060:5060/udp-p 5060:5060/tcp-p 8021:8021/tcp-p 16384-32768:16384-32768/udp registry.cn-hangzhou.aliyuncs.com/bytedesk/freeswitch:latest