Turnserver服务器搭建

简介:

1. 安装

sudo apt-get install coturn

2. 配置

turnserver.conf

路径:

/etc/turnserver.conf

内容:

listening-port=3478
tls-listening-port=5349

listening-ip=your ip
relay-ip=your ip
external-ip=your ip

server-name=your domain
realm=your domain

lt-cred-mech
userdb=/var/lib/turn/turndb

cert=/etc/turn_server_cert.pem
pkey=/etc/turn_server_pkey.pem

no-stdout-log
log-file=/var/tmp/turnserver.log

pidfile="/var/run/turnserver.pid"

字段含义:

  listening-port:  turnserver监听UDP/TCP端口,默认为3478;
  tls-listening-port:  turnserver监听TLS/DTLS端口,默认为5349,
      将TCP/UDP和TLS/DTLS分别定义监听端口是符合RFC5766规范的,但是通过配置两者能使用同一端口,不推荐;
  listening-ip:  中继服务器的监听IP地址,可以配置多个;
  relay-ip:  中继服务器的IP地址;
  external-ip:  外部IP,当中继服务器在NAT网络内部时指定,此处可以不添加;
  server-name:  服务器名称,用于OAuth认证,默认和realm相同;
  realm:  域名;
  userdb:  用于保存用户信息;
  cert/pkey:  自签名证书相关;

注意事项:

1) coturn使用了SQLlite作为存储,请保证userdb的正确配置(userdb=/var/lib/turn/turndb),不需要添加turnuserdb.conf文件(turnuserdb.conf多用于restund的配置方式);

2) cert和pkey配置的自签名证书用Openssl命令生成

sudo openssl req -x509 -newkey rsa:2048 -keyout   /etc/turn_server_pkey.pem -out /etc/turn_server_cert.pem -days 99999 -nodes

3) 配置成功后生成用户名/密码

turnadmin -k -u <your username> -r <your realm> -p <your password> //turnadmin -k -a -u btzh -r ice.btzh.net -p webrtc

执行上述命令后,会创建一个用户/密码,并添加到SQLlite数据库中.

参数含义请参见

man turnadmin

3. 启动服务

1) 确保端口开放

iptables -A INPUT -p udp --dport 3478 -j ACCEPT
iptables -A INPUT -p udp --dport 5349 -j ACCEPT

2) 启动

后台启动

service coturn start

非后台启动:

turnserver

初次运行请使用非后台启动,会显示当前运行状态,如果有错误会直接显示在控制台上.

3) 验证监听端口

lsof -n -i4TCP:3478 | grep LISTEN
lsof -n -i4TCP:5349 | grep LISTEN

或直接查看所有UDP/TCP 端口

netstat -nat | grep LISTEN

4. 验证服务

1) stun

apt-get install stun-client

之后运行

stun domain.com:port //例如: stun ice.btzh.net:3478

2) 直接测试

浏览器输入

domain/IP:port // 例如 ice.btzh.net:3478

出现文字"TURN Server use https connection for the admin session"

3) 在线测试(推荐)

网址

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

测试格式

stun:domain:port  // example: stun:ice.btzh.net:3478

注意: 不要以此网站测试TURN username/TURN password的正确性(it doesn`t work for username/pwd test).

参考链接: https://github.com/coturn/coturn/blob/master/INSTALL

目录
相关文章
|
存储 数据安全/隐私保护 Ubuntu
安装Coturn(TURN / STUN服务器)
安装Coturn(TURN / STUN服务器) 在云上使用TURN / STUN服务器,需要打开安全组中的所有UDP端口,因为STUN / TURN将使用整个0-65535范围内的任何可用端口。 在Ubuntu 16.
14821 0
|
Linux 数据库 数据安全/隐私保护
如何使用 Docker 安装宝塔面板
Docker 是一个高效、灵活、轻量级的容器化平台,可以在单个操作系统上实现多个容器化应用的隔离和运行。而宝塔面板是一款集成了 Web 服务器、数据库和运行环境的 Linux 服务器管理面板,其功能非常强大且易于使用。在本文中,我们将介绍使用 Docker 安装宝塔面板的优势和详细命令,让您轻松搭建自己的 Web 服务。
9040 3
|
Web App开发 应用服务中间件 Go
尝鲜:如何搭建一个简单的webrtc服务器
前几天我一朋友问我有关webrtc的事,简单了解了下相关知识,搭建了一个webrtc的服务,以及经历的各种踩坑事件,感觉踩坑主要是Python、Node、OpenSSL等版本问题和证书问题导致。本来以为很简单的搭建,但在搭建的过程中遇到各种阻碍,写一篇文章梳理一下。
13961 0
|
网络协议 ice
STUN, TURN, ICE介绍
STUN STUN协议为终端提供一种方式能够获知自己经过NAT映射后的地址,从而替代位于应用层中的私网地址,达到NAT穿透的目的。STUN协议是典型的Client-Server协议,各种具体应用通过嵌入STUN客户端与STUN Server端通讯来完成交互。
15747 1
CentOS7编译安装openssl1.1.1
centos7默认提供的openssl版本是1.0.2的,想要升级openssl版本则需要手动进行编译
|
9月前
|
Web App开发 算法 安全
《拆解WebRTC:NAT穿透的探测逻辑与中继方案》
本文深入解析了WebRTC应对NAT穿透的技术体系。NAT因类型多样(完全锥形、受限锥形、端口受限锥形、对称NAT)给端到端通信带来挑战,而WebRTC通过STUN服务器探测公网地址与NAT类型,借助ICE协议规划多路径(本地地址、公网反射地址、中继地址)并验证连接,TURN服务器则作为中继保障通信。文章还探讨了多层NAT、运营商级NAT等复杂场景的应对策略,揭示WebRTC通过探测、协商与中继实现可靠通信的核心逻辑,展现其在网络边界中寻找连接路径的技术智慧。
472 7
|
人工智能 并行计算 测试技术
从商业海报到二次元插画多风格通吃!HiDream-I1:智象未来开源文生图模型,17亿参数秒出艺术大作
HiDream-I1是智象未来团队推出的开源图像生成模型,采用扩散模型技术和混合专家架构,在图像质量、提示词遵循能力等方面表现优异,支持多种风格生成。
1108 2
从商业海报到二次元插画多风格通吃!HiDream-I1:智象未来开源文生图模型,17亿参数秒出艺术大作
|
8月前
|
数据采集 缓存 JSON
GitHub 开源爆款工具|MediaCrawler:程序员零门槛采集抖音/小红书/B站等社交评论,30K star 背后的场景实战揭秘!
MediaCrawler 是一个支持多平台的社交媒体数据爬虫工具,覆盖小红书、抖音、B站等主流平台,提供关键词/ID爬取、评论采集、登录态缓存、代理池等功能,结合 Playwright 实现浏览器模拟,降低逆向难度,适合内容运营、数据分析等场景,开源免费,使用简便。
3686 0
|
Unix 编译器 Go
|
Web App开发 JavaScript 测试技术
webrtc学习: 部署stun和turn服务器
webrtc的P2P穿透部分是由libjingle实现的.  步骤顺序大概是这样的:  1. 尝试直连. 2. 通过stun服务器进行穿透 3. 无法穿透则通过turn服务器中转.    stun 服务器比较简单.
10199 1