192 lines
3.1 KiB
Markdown
192 lines
3.1 KiB
Markdown
|
|
# TURN服务器部署文档 (Coturn)
|
|||
|
|
|
|||
|
|
## 服务信息
|
|||
|
|
|
|||
|
|
| 项目 | 值 |
|
|||
|
|
|------|-----|
|
|||
|
|
| 服务器IP | 1.15.149.240 |
|
|||
|
|
| 监听端口 | 3478 (UDP/TCP) |
|
|||
|
|
| 用户名 | turnuser |
|
|||
|
|
| 密码 | TurnPass123456 |
|
|||
|
|
| TURN地址 | turn:1.15.149.240:3478 |
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 一、安装Coturn
|
|||
|
|
|
|||
|
|
### CentOS/OpenCloudOS
|
|||
|
|
```bash
|
|||
|
|
yum install -y coturn
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### Ubuntu/Debian
|
|||
|
|
```bash
|
|||
|
|
apt install -y coturn
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 二、配置文件
|
|||
|
|
|
|||
|
|
位置:`/etc/coturn/turnserver.conf`
|
|||
|
|
|
|||
|
|
```conf
|
|||
|
|
# 监听端口
|
|||
|
|
listening-port=3478
|
|||
|
|
|
|||
|
|
# 监听所有网卡
|
|||
|
|
listening-ip=0.0.0.0
|
|||
|
|
|
|||
|
|
# 你的服务器公网IP(需要修改)
|
|||
|
|
external-ip=你的公网IP
|
|||
|
|
|
|||
|
|
# realm
|
|||
|
|
realm=你的公网IP
|
|||
|
|
|
|||
|
|
# 认证方式
|
|||
|
|
lt-cred-mech
|
|||
|
|
|
|||
|
|
# 用户名:密码
|
|||
|
|
user=turnuser:TurnPass123456
|
|||
|
|
|
|||
|
|
# 日志
|
|||
|
|
log-file=/var/log/coturn/turnserver.log
|
|||
|
|
verbose
|
|||
|
|
simple-log
|
|||
|
|
|
|||
|
|
# 不使用TLS
|
|||
|
|
no-tls
|
|||
|
|
no-dtls
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 三、启动服务
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 启动
|
|||
|
|
systemctl start coturn
|
|||
|
|
|
|||
|
|
# 设置开机自启
|
|||
|
|
systemctl enable coturn
|
|||
|
|
|
|||
|
|
# 查看状态
|
|||
|
|
systemctl status coturn
|
|||
|
|
|
|||
|
|
# 查看日志
|
|||
|
|
tail -f /var/log/coturn/turnserver.log
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 四、防火墙配置
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 开放端口
|
|||
|
|
firewall-cmd --permanent --add-port=3478/tcp
|
|||
|
|
firewall-cmd --permanent --add-port=3478/udp
|
|||
|
|
firewall-cmd --permanent --add-port=49152-65535/udp
|
|||
|
|
firewall-cmd --reload
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 云服务器安全组
|
|||
|
|
| 协议 | 端口 | 用途 |
|
|||
|
|
|------|------|------|
|
|||
|
|
| TCP | 3478 | TURN控制 |
|
|||
|
|
| UDP | 3478 | TURN控制 |
|
|||
|
|
| UDP | 49152-65535 | 媒体中继 |
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 五、验证服务
|
|||
|
|
|
|||
|
|
### 1. 检查端口
|
|||
|
|
```bash
|
|||
|
|
netstat -tlnup | grep 3478
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 2. 在线测试
|
|||
|
|
访问:https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/
|
|||
|
|
|
|||
|
|
填入:
|
|||
|
|
- STUN or TURN URI: `turn:你的IP:3478`
|
|||
|
|
- TURN username: `turnuser`
|
|||
|
|
- TURN password: `TurnPass123456`
|
|||
|
|
|
|||
|
|
点击 "Gather candidates",如果看到 `relay` 类型的候选者,说明TURN服务正常。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 六、常用命令
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 启动
|
|||
|
|
systemctl start coturn
|
|||
|
|
|
|||
|
|
# 停止
|
|||
|
|
systemctl stop coturn
|
|||
|
|
|
|||
|
|
# 重启
|
|||
|
|
systemctl restart coturn
|
|||
|
|
|
|||
|
|
# 查看状态
|
|||
|
|
systemctl status coturn
|
|||
|
|
|
|||
|
|
# 查看日志
|
|||
|
|
tail -100 /var/log/coturn/turnserver.log
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 七、Android客户端配置
|
|||
|
|
|
|||
|
|
在 `local.properties` 中配置:
|
|||
|
|
```properties
|
|||
|
|
turn.server_host=你的服务器IP
|
|||
|
|
turn.server_port=3478
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
在 `WebRTCConfig.java` 中使用:
|
|||
|
|
```java
|
|||
|
|
public static final String TURN_SERVER_URL = "turn:" + BuildConfig.TURN_SERVER_HOST + ":" + BuildConfig.TURN_SERVER_PORT;
|
|||
|
|
public static final String TURN_USERNAME = "turnuser";
|
|||
|
|
public static final String TURN_PASSWORD = "TurnPass123456";
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 八、在新服务器部署(完整步骤)
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 1. 安装coturn
|
|||
|
|
yum install -y coturn # CentOS
|
|||
|
|
# 或
|
|||
|
|
apt install -y coturn # Ubuntu
|
|||
|
|
|
|||
|
|
# 2. 创建配置文件
|
|||
|
|
cat > /etc/coturn/turnserver.conf << 'EOF'
|
|||
|
|
listening-port=3478
|
|||
|
|
listening-ip=0.0.0.0
|
|||
|
|
external-ip=你的公网IP
|
|||
|
|
realm=你的公网IP
|
|||
|
|
lt-cred-mech
|
|||
|
|
user=turnuser:TurnPass123456
|
|||
|
|
log-file=/var/log/coturn/turnserver.log
|
|||
|
|
verbose
|
|||
|
|
simple-log
|
|||
|
|
no-tls
|
|||
|
|
no-dtls
|
|||
|
|
EOF
|
|||
|
|
|
|||
|
|
# 3. 创建日志目录
|
|||
|
|
mkdir -p /var/log/coturn
|
|||
|
|
|
|||
|
|
# 4. 启动服务
|
|||
|
|
systemctl enable coturn
|
|||
|
|
systemctl start coturn
|
|||
|
|
|
|||
|
|
# 5. 验证
|
|||
|
|
systemctl status coturn
|
|||
|
|
netstat -tlnup | grep 3478
|
|||
|
|
```
|