mirror of
https://gitee.com/270580156/weiyu.git
synced 2026-05-15 19:58:00 +00:00
201 lines
3.9 KiB
Markdown
201 lines
3.9 KiB
Markdown
---
|
||
sidebar_label: Coturn
|
||
sidebar_position: 15
|
||
---
|
||
|
||
# Coturn
|
||
|
||
## STUN/TURN 服务安装
|
||
|
||
```bash
|
||
# https://github.com/coturn/coturn
|
||
apt install coturn
|
||
# 查看日志
|
||
turnserver --log-file stdout
|
||
# 启动运行
|
||
sudo systemctl start coturn
|
||
# 或
|
||
turnserver
|
||
# turnserver -c /etc/turnserver.conf
|
||
# 查看运行状态
|
||
sudo systemctl status coturn
|
||
# 停止运行
|
||
sudo systemctl stop coturn
|
||
# 重启运行
|
||
sudo systemctl restart coturn
|
||
#
|
||
netstat -anp|grep turnserver
|
||
```
|
||
|
||
## 防火墙开放端口号
|
||
|
||
```bash
|
||
ufw allow 3478
|
||
# ufw status
|
||
# ufw disable
|
||
# 3478 TCP
|
||
```
|
||
|
||
## 修改 /etc/turnserver.conf 配置文件
|
||
|
||
```bash
|
||
# 备份配置文件
|
||
cp /etc/turnserver.conf /etc/turnserver.conf.original
|
||
# 下面的四行原本都是注释掉的,去掉前面的 #, 添加参数:
|
||
# 这个端口号是默认的
|
||
listening-port=3478
|
||
# 此ip为服务器公网ip,替换为自己的
|
||
external-ip=47.**.**.81
|
||
# 这个是用户名:密码,替换为自己的用户名和密码
|
||
user=username1:password1
|
||
user=username2:password2
|
||
# 这里填写域名,替换为自己的
|
||
realm=coturn.weiyuai.cn
|
||
```
|
||
|
||
## 修改 /etc/default/coturn 配置文件
|
||
|
||
```bash
|
||
# 去掉前面的注释 #
|
||
TURNSERVER_ENABLED=1
|
||
```
|
||
|
||
## 重启 turnserver
|
||
|
||
```bash
|
||
sudo systemctl restart coturn
|
||
```
|
||
|
||
## 测试
|
||
|
||
### 重要说明
|
||
|
||
⚠️ **Coturn 是 STUN/TURN 服务器,使用 UDP/TCP 协议,不是 HTTP 服务器!**
|
||
|
||
- ❌ 不能通过浏览器直接访问 `http://14.103.165.199:3478`
|
||
- ❌ Nginx 无法直接代理 STUN/TURN 协议到 HTTPS
|
||
- ✅ 需要使用专门的 WebRTC 测试工具
|
||
|
||
### 测试方法
|
||
|
||
#### 方法 1: 使用在线 WebRTC 测试工具(推荐)
|
||
|
||
访问:[WebRTC Trickle ICE 测试](https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/)
|
||
|
||
填写信息:
|
||
```
|
||
STUN URI: stun:14.103.165.199:3478
|
||
或
|
||
TURN URI: turn:14.103.165.199:3478
|
||
Username: username1
|
||
Password: password1
|
||
```
|
||
|
||
点击 "Gather candidates" 按钮,成功会显示 `srflx` 或 `relay` 类型的候选地址。
|
||
|
||

|
||
|
||
#### 方法 2: 使用本地测试页面
|
||
|
||
在浏览器中打开:`file:///path/to/test_coturn.html`
|
||
|
||
或者将 `test_coturn.html` 部署到 Web 服务器,通过 HTTPS 访问。
|
||
|
||
#### 方法 3: 启用 Prometheus 监控
|
||
|
||
编辑 `/etc/turnserver.conf`,添加:
|
||
```bash
|
||
prometheus
|
||
```
|
||
|
||
重启服务:
|
||
```bash
|
||
sudo systemctl restart coturn
|
||
```
|
||
|
||
开放端口:
|
||
```bash
|
||
sudo ufw allow 9641
|
||
```
|
||
|
||
访问监控数据:`http://14.103.165.199:9641/metrics`
|
||
|
||
#### 方法 4: 使用命令行工具
|
||
|
||
```bash
|
||
# 测试 STUN
|
||
turnutils_stunclient 14.103.165.199
|
||
|
||
# 测试 TURN
|
||
turnutils_uclient -v -u username1 -w password1 14.103.165.199
|
||
|
||
# 测试端口连通性
|
||
telnet 14.103.165.199 3478
|
||
```
|
||
|
||
### 查看运行状态
|
||
|
||
```bash
|
||
# 查看服务状态
|
||
sudo systemctl status coturn
|
||
|
||
# 实时日志
|
||
sudo journalctl -u coturn -f
|
||
|
||
# 查看端口监听
|
||
sudo netstat -tulnp | grep turnserver
|
||
```
|
||
|
||
### 详细测试指南
|
||
|
||
参见 [test_coturn.md](./test_coturn.md) 获取完整测试说明。
|
||
|
||
## Web Admin 管理界面
|
||
|
||
### 快速启用 Web Admin
|
||
|
||
使用自动化脚本(推荐):
|
||
```bash
|
||
sudo bash setup_web_admin.sh
|
||
```
|
||
|
||
### 手动配置
|
||
|
||
编辑 `/etc/turnserver.conf`:
|
||
```bash
|
||
web-admin
|
||
web-admin-ip=0.0.0.0
|
||
web-admin-port=8080
|
||
web-admin-listen-on-workers
|
||
```
|
||
|
||
重启服务:
|
||
```bash
|
||
sudo systemctl restart coturn
|
||
sudo ufw allow 8080/tcp
|
||
```
|
||
|
||
### 访问 Web Admin
|
||
|
||
直接访问(HTTPS):
|
||
```
|
||
https://14.103.165.199:8080
|
||
```
|
||
|
||
⚠️ 浏览器会显示 SSL 证书警告(自签名证书),点击"高级" → "继续访问"
|
||
|
||
### 通过 Nginx 代理(推荐)
|
||
|
||
```
|
||
https://coturn.weiyuai.cn/admin
|
||
```
|
||
|
||
详细配置参见 [WEB_ADMIN_SETUP.md](./WEB_ADMIN_SETUP.md)
|
||
|
||
## 参考资料
|
||
|
||
- [Samples](https://webrtc.github.io/samples/)
|
||
- [Github Samples](https://github.com/webrtc/samples)
|
||
- [WebRTC API](https://developer.mozilla.org/en-US/docs/Web/API/WebRTC_API)
|
||
- [Janus Gateway](https://github.com/meetecho/janus-gateway)
|