前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >【开发日记】coturn服务器搭建,用于搭建音视频通话等WebRTC应用

【开发日记】coturn服务器搭建,用于搭建音视频通话等WebRTC应用

作者头像
全栈开发日记
发布2025-01-19 20:59:02
发布2025-01-19 20:59:02
15400
代码可运行
举报
文章被收录于专栏:全栈开发日记全栈开发日记
运行总次数:0
代码可运行

coturn是一个开源的 TURN (Traversal Using Relays around NAT) 服务器,是搭建WebRTC应用的首选。

WebRTC应用有很多,之前发的P2P音视频通话用到的也是该服务,除此之外还能用于远程控制、多屏映射等应用。

本文主要参考了如下文章:

https://www.jianshu.com/p/eb25ca97d27d

以下所有命令都是在当前Linux账户为root权限的情况下执行的。

1、安装依赖

代码语言:javascript
代码运行次数:0
复制
yum install -y make gcc cc gcc-c++ wget openssl-devel libevent libevent-devel

代码语言:javascript
代码运行次数:0
复制
apt install -y build-essential gcc g++ wget libssl-dev libevent-dev

2、下载源码

进入想要将Coturn源码下载到的目录,这里以/work目录为例。

代码语言:javascript
代码运行次数:0
复制
cd /work

执行下载命令,版本号可访问https://coturn.net/turnserver地址查看,这里以相对稳定的版本v4.5.0.8为例。

代码语言:javascript
代码运行次数:0
复制
wget https://coturn.net/turnserver/v4.5.0.8/turnserver-4.5.0.8.tar.gz

解压并进入目录:

代码语言:javascript
代码运行次数:0
复制
tar -zxvf turnserver-4.5.0.8.tar.gz
cd turnserver-4.5.0.8/

3、编译安装

代码语言:javascript
代码运行次数:0
复制
./configure --prefix=/usr/turnserver  # 指定安装的目录
make && make install

如果控制台出现1)... 2)... 3)...等内容时表示已经安装完成。中间可能会有一些警告,但一般不会影响正常安装。

4、设置环境变量

代码语言:javascript
代码运行次数:0
复制
vi ~/.bashrc

插入以下内容:

代码语言:javascript
代码运行次数:0
复制
export turnserver_home=/usr/turnserver
export PATH=$PATH:$turnserver_home/bin

使环境变量配置立即生效:

代码语言:javascript
代码运行次数:0
复制
source ~/.bashrc

5、编辑配置文件

先找到官方的示例配置文件的位置:

代码语言:javascript
代码运行次数:0
复制
 find /usr -name turnserver.conf

返回的内容如:

/usr/turnserver/share/examples/turnserver/etc/turnserver.conf

编辑这个配置文件:

代码语言:javascript
代码运行次数:0
复制
vi /usr/turnserver/share/examples/turnserver/etc/turnserver.conf

配置文件内容通常比较长,可以在进入vi编辑器后按大写G跳转至文件的末尾,并在末尾加入以下内容:

代码语言:javascript
代码运行次数:0
复制
realm=xxx.cn  # 域名,这个必须设置
listening-port=3478  # 服务端口
listening-ip=0.0.0.0 
external-ip=x.x.x.x  # 外网ip
user=admin:123456  # 设置账号密码
min-port=49152  # 连接端口最小值
max-port=65535  # 连接端口最大值

【注意】记得把配置中的注释删掉,并且每一行之后不要有空格。

6、启动服务

指定使用刚刚修改的配置文件来启动服务。

代码语言:javascript
代码运行次数:0
复制
turnserver -v -r ip地址 -a -o -c /usr/turnserver/share/examples/turnserver/etc/turnserver.conf

7、放行端口

登录你的服务器厂商安全组界面,放行如下端口:

① TCP 3478

② UDP 3478

③ TCP 49152-65535 (端口范围)

④ UDP 49152-65535 (端口范围)

8、验证服务

验证服务是否正常运行。

测试地址:https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/

测试coturn服务

9、使用示例

代码语言:javascript
代码运行次数:0
复制
const configuration = {
    iceServers: [
        {
            urls: ["stun:x.x.x.x:3478"]
        },
        {
            urls: "turn:x.x.x.x:3478",
            username: "admin",
            credential: "密码"
        }
    ]
};
peer = new RTCPeerConnection(configuration);
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-01-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 全栈开发日记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、安装依赖
  • 2、下载源码
  • 3、编译安装
  • 4、设置环境变量
  • 5、编辑配置文件
  • 6、启动服务
  • 7、放行端口
  • 8、验证服务
  • 9、使用示例
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档