webrtc(coturn服务器搭建)

本文详细介绍COTURN服务器的安装、配置及测试步骤。包括libevent库与COTURN服务器的下载、编译与安装过程,配置文件turnserver.conf的设置方法,以及通过ICE测试验证COTURN服务器是否正确配置。

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

coturn服务器安装
1下载并安装libevent-2.0
wget https://github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz
tar zxvf libevent-2.0.21-stable.tar.gz
cd libevent-2.0.21-stable && ./configure
make && make install
2下载编译安装coturn
git clone https://github.com/coturn/coturn
cd coturn 
./configure 
make 
make install

输入which turnserver,如果打印出路径,说明安装成功

3 配置coturn
使用turnadmin生成安全访问密码
turnadmin -k -u username -r north.gov -p password
/usr/local/etc/turnserver.conf配置
#listening-ip与relay-ip采用内网ip,external-ip是外网的ip

listening-port=444 #监听端口
external-ip=210.21.53.158 #外网IP
verbose
fingerprint
lt-cred-mech
realm=test
user=username:生成的加密密码    #修改成自己的
user=username:password       #修改成自己的
stale-nonce
no-loopback-peers
no-multicast-peers
mobility
no-cli
4启动coturn
turnserver -o -a
5ICE测试

https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/

relay地址回来的是你的ip才算穿透成功。

转载于:https://www.cnblogs.com/dch0/p/11392316.html

### 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 的部署流程概述。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值