Ubuntu部署服务器软件Coturn

简介

Coturn 是一种开源的 ‌STUN‌ 和 ‌TURN‌ 服务器软件,主要用于解决网络地址转换(NAT)穿透问题,帮助客户端在受限网络环境(如防火墙或 NAT 后面)中实现双向通信。‌

部署前准备

确保端口 3478/tcp3478/udp5349/tcp5349/udp49152-65535/udp 都已开放。

安装核心依赖

# 更新软件源
sudo apt update

# 安装核心依赖
sudo apt install -y libevent-dev libssl-dev libsqlite3-dev libpcre3-dev
图片[1]-Ubuntu部署服务器软件Coturn-铭心博客

安装可选插件依赖(按需选择)

# Redis 认证插件依赖
sudo apt install -y libhiredis-dev

# MySQL/PostgreSQL 数据库插件依赖
sudo apt install -y libmysqlclient-dev libpq-dev

# REST API 插件依赖
sudo apt install -y libcurl4-openssl-dev

# Prometheus 监控插件依赖
sudo apt install -y libprometheus-cpp-dev

# Syslog 日志插件依赖
sudo apt install -y libsystemd-dev

启用 Coturn 插件

插件需要在 turnserver.conf 中配置加载路径和参数,以下是常见插件的启用示例:

Redis认证插件

# 加载 Redis 插件
plugin=/usr/lib/x86_64-linux-gnu/turnserver/libredisdb.so
# 配置 Redis 连接
redis-userdb="ip=127.0.0.1 dbname=0 password=your_redis_password"

REST API认证插件

# 加载 REST API 插件
plugin=/usr/lib/x86_64-linux-gnu/turnserver/librestapi.so
# 配置 API 密钥
rest-api-secret=your_rest_api_secret
# 可选:API 监听地址
rest-api-listener-ip=0.0.0.0
rest-api-listener-port=8080

Prometheus监控插件

# 加载 Prometheus 插件
plugin=/usr/lib/x86_64-linux-gnu/turnserver/libprometheus.so
# 配置监控指标导出地址
prometheus-exporter-ip=0.0.0.0
prometheus-exporter-port=9100

重启Coturn服务生效

sudo systemctl restart coturn

安装Coturn

sudo apt update
sudo apt install coturn -y
图片[2]-Ubuntu部署服务器软件Coturn-铭心博客

启用Coturn服务,编辑 /etc/default/coturn,取消注释以允许服务自启动

vim /etc/default/coturn
图片[3]-Ubuntu部署服务器软件Coturn-铭心博客

编辑配置文件

vim /etc/turnserver.conf

复制粘贴下面的配置(只需更改IP,直接复制)加入到配置文件

# 监听所有网卡
listening-ip=0.0.0.0
# NAT环境专属格式 公网IP/内网IP
external-ip=103.16.230.252/172.24.48.241
# 中继IP填写内网IP
relay-ip=172.24.48.241
# 监听端口
listening-port=3478
tls-listening-port=5349

# 中继端口范围
min-port=49152
max-port=65535

# 认证相关
lt-cred-mech
user=test:123456
realm=103.16.230.252

# 解决400报错的关键参数
server-name=103.16.230.252
fingerprint
no-tlsv1
no-tlsv1_1
no-multicast-peers

# 日志配置,方便排查
verbose
simple-log
log-file=/var/log/turnserver.log

启动并验证服务

# 启动服务
sudo systemctl start coturn
sudo systemctl enable coturn

# 检查状态
sudo systemctl status coturn

# 查看日志
cat /var/log/turnserver.log
图片[4]-Ubuntu部署服务器软件Coturn-铭心博客

测试命令

ss -tulpn | grep turnserver
turnutils_uclient -v -e 103.16.230.252 -u test -w 123456 103.16.230.252 3478
图片[5]-Ubuntu部署服务器软件Coturn-铭心博客

出现以下内容,就是成功了

0: : success: total sendrecv tests: 200
0: : success: average round trip delay: 0.x ms; min = 0.x ms, max = 0.x ms
0: : successfully sent and received data
图片[6]-Ubuntu部署服务器软件Coturn-铭心博客

你也可以自行到https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/进行测试

修改账号密码

nano /etc/turnserver.conf
# 修改/添加 user 参数,一行一个账号
user=admin:admin123
user=user1:123456
# 保存后重启服务
sudo systemctl restart coturn

相关阅读

© 版权声明
THE END
喜欢就支持一下吧!
点赞221 分享