coturn(turn)服务器搭建

本文详细介绍如何安装和配置SkyRTC信令服务器及TURN/STUN服务器,包括环境准备、安装步骤、配置文件修改等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 首先安装信令服务器,以skyRTC为例(测试使用)
 sudo apt-get install nodejs npm
 git clone https://github.com/LingyuCoder/SkyRTC-demo
 cd SkyRTC-demo
 npm install #这步因为墙的关系,下载很慢,慢慢等吧。

安装完成后,执行nodejs server.js
这里写图片描述

在浏览器中打开ip:3000即可访问

  1. 搭建turn/stun(转发/穿透)
    首先安装环境:
sudo apt-get install libssl-dev
sudo apt-get install libevent-dev
sudo apt-get install libpq-dev
sudo apt-get install mysql-client
sudo apt-get install libmysqlclient-dev
sudo apt-get install libhiredis-dev
sudo apt-get install git

下载编译安装coturn

git clone https://github.com/coturn/coturn
cd coturn
./configure
make
sudo make install 

which turnserver 查看是否安装成功
这里写图片描述
如图,就已经安装成功了

现在开始修改配置文件
首先
sudo cp /usr/local/etc/turnserver.conf.default /usr/local/etc/turnserver.conf

注意:/usr/local/etc/turnserver.conf才是配置文件!
/usr/local/etc/turnserver.conf.default并不是配置文件!
之后修改/usr/local/etc/turnserver.conf如下:
在这之前先查看网卡:ifconfig
这里写图片描述
图中可见,我的网卡是venet0:0,所以配置文件中要使用的是这个,如果他是eth0的话,就使用eth0
然后生成md5码:turnadmin -k –u 用户名 -r nanjing -p 密码
如图所示:
这里写图片描述
在之后生成证书
sudo openssl req -x509 -newkey rsa:2048 -keyout /etc/turn_server_pkey.pem -out /etc/turn_server_cert.pem -days 99999 -nodes
如图所示(其中的内容可以随便填,第一个最好填cn)
这里写图片描述

然后创建turnuserdb.conf文件
vi /etc/turnuserdb.conf
在其中填入之前生成的用户名和key
这里写图片描述

最后修改配置文件(如图):
vi /usr/local/etc/turnserver.conf

listening-device=填写自己的网卡类型
relay-device=填写自己的网卡类型
listening-ip=ip地址
listening-port=3478
tls-listening-port=5349
relay-ip=ip地址
external-ip=ip地址
relay-threads=50
lt-cred-mech
static-auth-secret=用户名
user=用户名:密钥
userdb=/etc/turnuserdb.conf
#max-bps=102400
pidfile="/var/run/turnserver.pid"
no-loopback-peers
no-multicast-peers
sha256
mobility
no-cli
cert=/etc/turn_server_cert.pem
pkey=/etc/turn_server_pkey.pem
stale-nonce
use-auth-secret
Verbose
fingerprint

这里写图片描述

然后运行:
sudo turnserver -L 23.83.233.168 -o -a -b /etc/turnuserdb.conf -f -r nanjing

测试:
修改public/SkyRTC-client.js文件如下:、
这里写图片描述

然后再:nodejs server.js 运行客户端
这里写图片描述
在火狐浏览器(其他浏览器不能打开摄象头)中输入23.83.233.168:3000,因为是在一台电脑上测试的,所以左右摄像头内容一样:

这里写图片描述

### coturn 服务器搭建教程与配置指南 #### 准备工作 在开始之前,确保已准备好一台 Linux 主机,并具备管理员权限。推荐的操作系统包括 Ubuntu 或 CentOS。 #### 安装依赖项 为了成功编译并安装 coturn,需先安装必要的开发工具和库文件。以下是基于 Ubuntu 的示例命令: ```bash sudo apt update && sudo apt install -y build-essential libssl-dev libevent-dev uuid-dev python3-pip ``` #### 下载源码 从官方仓库获取最新版本的 coturn 源代码。可以使用以下 Git 命令克隆存储库: ```bash git clone https://github.com/coturn/coturn.git cd coturn ``` #### 编译与安装 进入下载好的目录后,执行以下步骤完成编译过程: ```bash ./configure --prefix=/usr/local/coturn \ --sysconfdir=/etc/coturn \ --localstatedir=/var/lib/coturn \ --with-user=turnserver \ --with-group=turnserver \ --enable-static-linking=yes \ --disable-rpath-hack=no make sudo make install ``` 上述脚本会将程序安装至 `/usr/local/coturn` 路径下[^1]。 #### 配置文件说明 coturn 使用 `turnserver.conf` 文件作为主要配置依据。默认情况下,此文件位于 `/etc/turnserver.conf` 中。如果未找到,则可以通过 `-c` 参数指定自定义位置。下面是一个基础配置模板: ```plaintext listening-ip=<公网IP> relay-ip=<内部网络IP> external-ip=<外部可见IP>/<实际NAT映射地址> lt-cred-mech use-auth-secret static-auth-secret=<共享密钥> realm=<域名或描述字符串> cert=/path/to/tls_cert.pem pkey=/path/to/private_key.pem min-port=49152 max-port=65535 fingerprint no-tcp-relay verbose log-file=/var/log/turn.log ``` 每行代表不同的功能选项解释如下: - **listening-ip**: 设置监听 IP 地址; - **relay-ip**: 明确转发数据包所使用的本地接口地址; - **external-ip**: 当存在 NAT 设备时告知客户端其外网出口信息; - **lt-cred-mech**, **use-auth-secret**, **static-auth-secret**: 开启长期凭证机制并通过固定字符串验证身份; - **realm**: 标识所属域名称; - **cert/pkey**: 提供 TLS 加密所需的证书链及其私钥材料; - **min/max port range**: 自定义 UDP 孔洞分配区间范围; - **fingerprint/no-tcp-relay**: 添加 SDP FINGERPRINT 扩展字段以及关闭 TCP relay 功能以减少复杂度; - **verbose/log-file**: 记录调试日志以便后续排查问题。 #### 启动服务 当一切准备就绪之后,可通过以下指令启动 turnserver 进程: ```bash /usr/local/coturn/bin/turnserver -c /etc/turnserver.conf ``` 或者将其注册为 systemd service 单元管理更加方便可靠。创建一个新的单元文件 `/lib/systemd/system/coturn.service` 并写入相关内容: ```ini [Unit] Description=COTURN STUN/TURN Server After=network.target syslog.target nss-lookup.target [Service] Type=simple User=nobody Group=nogroup ExecStart=/usr/local/coturn/bin/turnserver -c /etc/turnserver.conf Restart=on-failure [Install] WantedBy=multi-user.target ``` 最后重新加载守护进程配置并激活新添加的服务即可: ```bash sudo systemctl daemon-reload sudo systemctl enable --now coturn ``` #### 测试连接性 确认服务器正常运作的方法之一就是利用浏览器开发者控制台发起 WebRTC Peer Connection 请求。按照先前提到的方式构建 ICE Servers 列表传给构造函数实例化对象[^4]: ```javascript const iceConfiguration = { iceServers: [ { urls: 'turn:<your-public-domain>:<port>', username: '<shared-secret>', credential: '<generated-token>' } ] }; let pc = new RTCPeerConnection(iceConfiguration); pc.createDataChannel('test'); await pc.setLocalDescription(await pc.createOffer()); console.log(pc.localDescription.candidate); ``` 以上即完成了整个 Coturn TURN server 的部署流程概述。
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值