Files
VibeCoding/WebRTCSignalServer/README.md

3.7 KiB
Raw Blame History

WebRTC 信令服务器 · TURN 部署指南

本项目使用 coturn 作为 TURN/STUN 中继服务器,用于解决 WebRTC 在对称型 NAT / 防火墙等复杂网络环境下的连通性问题。

当客户端无法直接进行 P2P 连接时,媒体流量将通过 TURN 服务器进行中继转发。


目录


环境说明

项目 说明
操作系统 Ubuntu / Debian 系(本文以 apt 包管理为例)
软件 coturnTurnServer
默认监听端口 3478 (UDP/TCP)
中继端口范围 49152 - 65535 (UDP)

一、安装 coturn

sudo apt update
sudo apt install coturn -y

安装完成后,建议先备份默认配置文件:

sudo cp /etc/turnserver.conf /etc/turnserver.conf.bak

二、配置 TURN 服务

使用编辑器打开配置文件:

sudo vim /etc/turnserver.conf

将以下内容写入(或按需修改)配置文件:

# ===== 监听设置 =====
listening-ip=0.0.0.0
listening-port=3478

# ===== 公网 IP =====
# 云服务器此处必须填写公网 IP切勿填写内网 IP
external-ip=你的公网IP

# ===== 认证WebRTC 必须开启,否则客户端无法连接)=====
lt-cred-mech
user=testuser:testpass
# realm 可填写任意域名,但不能留空
realm=yourdomain.com

# ===== 中继端口范围TURN 转发媒体流量使用)=====
relay-port-range=49152-65535

# ===== 日志 =====
verbose

⚠️ 注意

  • external-ip 必须填写服务器的公网 IP,而非内网 IP。
  • realm 不能为空,可填写任意域名。
  • user 为客户端连接凭证,请在生产环境中替换为强密码。

三、开放防火墙端口

# TURN 主服务端口
sudo ufw allow 3478/udp
sudo ufw allow 3478/tcp        # WebRTC 可选但建议开启

# TURN 中继端口范围
sudo ufw allow 49152:65535/udp

四、启动与开机自启

# 重启服务并设为开机自启
sudo systemctl restart coturn
sudo systemctl enable --now coturn

# 查看运行状态(应为 active (running)
systemctl status coturn

五、验证连通性

使用 coturn 自带的客户端工具进行连通性测试:

turnutils_uclient -v -u testuser -w testpass 你的公网IP

若输出中包含成功分配中继地址allocation的日志说明 TURN 服务工作正常。


配置参数速查

参数 说明 默认值
listening-ip 监听的网卡 IP -
listening-port 监听端口 3478
external-ip 公网 IP云服务器必填 -
lt-cred-mech 启用长期凭证认证 关闭
user 连接账号 用户名:密码 -
realm 认证域(必填) -
relay-port-range 中继端口范围 -
verbose 输出详细日志 关闭

常见问题

Q客户端始终无法连接

  • 确认 lt-cred-mech 已开启,且客户端使用的 user / realm 与服务端一致。
  • 确认云服务器的安全组与本地 ufw 均已放行对应端口。
  • 确认 external-ip 填写的是公网 IP。

Q中继流量不通

  • 检查 49152:65535/udp 端口范围是否在防火墙与云安全组中放行。

Q如何修改默认端口

  • 修改 listening-port 并同步放行新端口,同时确保客户端信令配置指向新端口。