简介
Coturn 是一种开源的 STUN 和 TURN 服务器软件,主要用于解决网络地址转换(NAT)穿透问题,帮助客户端在受限网络环境(如防火墙或 NAT 后面)中实现双向通信。
部署前准备
确保端口 3478/tcp、3478/udp、5349/tcp、5349/udp、49152-65535/udp 都已开放。
安装核心依赖
# 更新软件源
sudo apt update
# 安装核心依赖
sudo apt install -y libevent-dev libssl-dev libsqlite3-dev libpcre3-dev
![图片[1]-Ubuntu部署服务器软件Coturn-铭心博客](https://oss.imxbk.com/wp-content/uploads/2026/01/20260118203847519-1024x285.webp?x-oss-process=image/format,webp/watermark,text_d3d3LmlteGJrLmNvbQ,type_ZmFuZ3poZW5naGVpdGk,size_13,g_se,x_10,y_10)
安装可选插件依赖(按需选择)
# 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-铭心博客](https://oss.imxbk.com/wp-content/uploads/2026/01/20260118203853506-1024x510.webp?x-oss-process=image/format,webp/watermark,text_d3d3LmlteGJrLmNvbQ,type_ZmFuZ3poZW5naGVpdGk,size_13,g_se,x_10,y_10)
启用Coturn服务,编辑 /etc/default/coturn,取消注释以允许服务自启动
vim /etc/default/coturn
![图片[3]-Ubuntu部署服务器软件Coturn-铭心博客](https://oss.imxbk.com/wp-content/uploads/2026/01/20260118203857845.webp?x-oss-process=image/format,webp/watermark,text_d3d3LmlteGJrLmNvbQ,type_ZmFuZ3poZW5naGVpdGk,size_13,g_se,x_10,y_10)
编辑配置文件
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-铭心博客](https://oss.imxbk.com/wp-content/uploads/2026/01/20260118203902613-1024x410.webp?x-oss-process=image/format,webp/watermark,text_d3d3LmlteGJrLmNvbQ,type_ZmFuZ3poZW5naGVpdGk,size_13,g_se,x_10,y_10)
测试命令
ss -tulpn | grep turnserver
turnutils_uclient -v -e 103.16.230.252 -u test -w 123456 103.16.230.252 3478
![图片[5]-Ubuntu部署服务器软件Coturn-铭心博客](https://oss.imxbk.com/wp-content/uploads/2026/01/20260118203907889-1024x199.webp?x-oss-process=image/format,webp/watermark,text_d3d3LmlteGJrLmNvbQ,type_ZmFuZ3poZW5naGVpdGk,size_13,g_se,x_10,y_10)
出现以下内容,就是成功了
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://oss.imxbk.com/wp-content/uploads/2026/01/20260118203913418-1024x499.webp?x-oss-process=image/format,webp/watermark,text_d3d3LmlteGJrLmNvbQ,type_ZmFuZ3poZW5naGVpdGk,size_13,g_se,x_10,y_10)
你也可以自行到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




