docs: 修改 TURN 部署指南并新增环境说明
This commit is contained in:
154
WebRTCSignalServer/README.md
Normal file
154
WebRTCSignalServer/README.md
Normal file
@@ -0,0 +1,154 @@
|
||||
# WebRTC 信令服务器 · TURN 部署指南
|
||||
|
||||
本项目使用 **coturn** 作为 TURN/STUN 中继服务器,用于解决 WebRTC 在对称型 NAT / 防火墙等复杂网络环境下的连通性问题。
|
||||
|
||||
> 当客户端无法直接进行 P2P 连接时,媒体流量将通过 TURN 服务器进行中继转发。
|
||||
|
||||
---
|
||||
|
||||
## 目录
|
||||
|
||||
- [环境说明](#环境说明)
|
||||
- [一、安装 coturn](#一安装-coturn)
|
||||
- [二、配置 TURN 服务](#二配置-turn-服务)
|
||||
- [三、开放防火墙端口](#三开放防火墙端口)
|
||||
- [四、启动与开机自启](#四启动与开机自启)
|
||||
- [五、验证连通性](#五验证连通性)
|
||||
- [配置参数速查](#配置参数速查)
|
||||
- [常见问题](#常见问题)
|
||||
|
||||
---
|
||||
|
||||
## 环境说明
|
||||
|
||||
| 项目 | 说明 |
|
||||
| ---- | ---- |
|
||||
| 操作系统 | Ubuntu / Debian 系(本文以 `apt` 包管理为例) |
|
||||
| 软件 | `coturn`(TurnServer) |
|
||||
| 默认监听端口 | `3478` (UDP/TCP) |
|
||||
| 中继端口范围 | `49152` - `65535` (UDP) |
|
||||
|
||||
---
|
||||
|
||||
## 一、安装 coturn
|
||||
|
||||
```bash
|
||||
sudo apt update
|
||||
sudo apt install coturn -y
|
||||
```
|
||||
|
||||
安装完成后,建议先备份默认配置文件:
|
||||
|
||||
```bash
|
||||
sudo cp /etc/turnserver.conf /etc/turnserver.conf.bak
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 二、配置 TURN 服务
|
||||
|
||||
使用编辑器打开配置文件:
|
||||
|
||||
```bash
|
||||
sudo vim /etc/turnserver.conf
|
||||
```
|
||||
|
||||
将以下内容写入(或按需修改)配置文件:
|
||||
|
||||
```ini
|
||||
# ===== 监听设置 =====
|
||||
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` 为客户端连接凭证,请在生产环境中替换为强密码。
|
||||
|
||||
---
|
||||
|
||||
## 三、开放防火墙端口
|
||||
|
||||
```bash
|
||||
# TURN 主服务端口
|
||||
sudo ufw allow 3478/udp
|
||||
sudo ufw allow 3478/tcp # WebRTC 可选但建议开启
|
||||
|
||||
# TURN 中继端口范围
|
||||
sudo ufw allow 49152:65535/udp
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 四、启动与开机自启
|
||||
|
||||
```bash
|
||||
# 重启服务并设为开机自启
|
||||
sudo systemctl restart coturn
|
||||
sudo systemctl enable --now coturn
|
||||
|
||||
# 查看运行状态(应为 active (running))
|
||||
systemctl status coturn
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 五、验证连通性
|
||||
|
||||
使用 coturn 自带的客户端工具进行连通性测试:
|
||||
|
||||
```bash
|
||||
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` 并同步放行新端口,同时确保客户端信令配置指向新端口。
|
||||
Reference in New Issue
Block a user