centos7 搭建turn stun 服务器

本文详细介绍如何在CentOS7上阿里云服务器部署TURN服务器,包括安装依赖库、下载及安装TURN服务器、配置TURN服务器参数、启动及测试等步骤。

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

centos7 搭建turn stun 服务器(阿里云服务器)

1、安装依赖库


yum install -y make gcc cc gcc-c++ wget

yum install -y openssl-devel libevent libevent-devel mysql-devel mysql-server

2、找到合适的 turn stun 版本并安装

可以在http://turnserver.open-sys.org/downloads/找到适合的版本,我使用的是最新的turnserver-4.5.0.6-CentOS7.2-x86_64.tar.gz

#下载
wget wget http://turnserver.open-sys.org/downloads/v4.5.0.6/turnserver-4.5.0.6-CentOS7.2-x86_64.tar.gz
#解压
tar -zxvf turnserver-4.5.0.6-CentOS7.2-x86_64.tar.gz
#转到其目录下
cd turnserver-4.5.0.6
#如果里面有install.sh文件,直接执行./install.sh或者chmod a+x install 生成install文件 。
./install.sh

3、修改配置文件

#进入配置文件目录
vim + turnserver.conf
#打开配置文件,并直接定位到文件结尾
cd /etc/turnserver/

并在文件末尾添加如下内容

#监听端口可以不设置会默认的使用3478
listening-port=3478
#listening-ip,注意必须是你的内网IP地址如:
listening-ip=xx.xx.xx.xx
#relay-ip可以不设置,默认会使用你的外网ip地址作为转发包的中继地址,建议不设置,使用默认就可以:
relay-ip=xx.xx.xx.xx
#external-ip,注意必须使用你的外网IP地址如:
external-ip=xx.xx.xx.xx
#设置用户名及密码,这个是作为TURN服务器使用必须设置的,可以设置多个
user=user:password 或者使用ssh也是可以的
user=user:passKey
#realm,目前没发现有什么用,可设置可不设置:
realm=companyName.com.cn
#turndb数据库位置,/var/db/turndb
以上就是配置的主要内容,更详细的配置可以直接查看turnserver.conf,里面的注释很详细,可以设置tls,mysql,redis,mongodb等等内容这里不做详细解释了。
另外:STUN和TURN的区别,turn服务器是一个特殊的stun服务器,turn具备了stun的功能,并且具备stun不具备的中继转发功能,我们按照的服务可以不提供turn功能只作为stun使用,打开turnserver.conf中的stun-only即可。

4、启动或停止 trun服务

#启动命令: 
turnserver -v -r 外网ip -a -o -c /etc/turnserver/turnserver.conf 
#关闭命令: 
cat /var/run/turnserver/turnserver.pid 
#或者 cat /var/tmp/turnserver.pid 
#找到进程编号,例如:2033 
#执行kill 2033 结束进程。

5、测试

测试地址:

https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/
这里写图片描述
这里写图片描述
如果没有产生3种类型的ip地址则配置失败(相应的端口一定要打开包括其TCP和UDP功能如:80,3478)。

6、参考博客

http://blog.youkuaiyun.com/polarGW/article/details/70226634

搭建自己的STUN/TURN服务器是为了确保WebRTC应用程序能够在复杂的网络环境中正常工作,特别是在NAT(网络地址转换)存在的情况下。以下是详细的步骤说明: ### 1. **选择合适的软件** 目前比较常用的开源STUN/TURN服务器有: - **coturn**:这是一个非常流行的项目,支持STUNTURN以及ICE功能。 推荐使用`coturn`因为它广泛应用于生产环境并且文档较为丰富。 --- ### 2. **准备运行环境** #### a. 确认操作系统及版本 大多数Linux发行版都可以部署 coturn ,例如 Ubuntu 或者 CentOS 。这里以Ubuntu为例。 ```bash sudo apt update && sudo apt upgrade -y ``` #### b. 安装必要的依赖包 对于基于Debian/Ubuntu系统的机器来说,你需要先更新系统然后安装一些基本工具库: ```bash sudo apt install build-essential libssl-dev libevent-dev ``` 如果你打算从源码构建最新版本的 Coturn , 那么还需要克隆其 Git 存储库 : ```bash git clone https://github.com/coturn/coturn.git cd cotturn/ make sudo make install ``` 不过更简单的方式是从官方仓库直接安装已打包好的二进制文件: ```bash sudo apt install turnserver # 对于Ubuntu/CentOS等主流Linux发行板都有现成package可供选择 ``` --- ### 3. **配置STUN/TURN服务** 编辑 `/etc/turnserver.conf` 文件来进行基础设置: ```ini # 监听所有IPv4接口上的默认端口(3478) listening-port=3478 fingerprint lt-cred-mech use-auth-secret static-auth-secret=mySecretKeyHereChangeItInProductionEnv realm=yourdomain.example.org ; 这里的域名应替换为你实际使用的公网可见域名 cert=/path/to/tls_cert.pem ; TLS证书位置 pkey=/path/to/private_key.pem ; 私钥文件路径 no-loopback-peers ; 不接受来自loopback IP的数据包 no-multicast-peers ; 同样拒绝multicast请求 log-file=/var/log/turn.log ; 日志保存目录 verbose ; 更详细日志记录级别 external-ip=<PUBLIC_IP> ; 公网IP(仅在必要时指定) ``` 请注意: - `mySecretKeyHereChangeItInProductionEnv`应该替换成一个安全随机字符串; - `<PUBLIC_IP>`应该是你VPS或云实例的实际外网IP地址;如果没有静态公网IP,则省略此行让服务器自行探测。 启动COTURN服务并设置开机自启: ```bash sudo systemctl enable coturn.service sudo service coturn start ``` 验证是否开启成功可通过命令查看监听状态: ```bash netstat -an | grep :3478 ``` --- ### 4. **防火墙与路由器规则调整** 为了保证外部设备能访问到你的 STUN/TURN 服务,需开放特定端口供外界访问。假设你在AWS EC2或其他云端平台上托管,则要在相应的安全组策略里添加入站流量规则允许TCP和UDP形式下的目标端口号范围内的数据进入,默认情况下是 3478 到 65535之间的端口段。 如果是在家用宽带环境下的话,则要考虑向ISP申请固定IP并将路由器端口映射至内部私网中运行着 COTURN 的那台主机上去。 --- ### 5. **测试连接有效性** 可以利用在线工具比如 [Trickle ICE](https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/) 来检查当前网络状况下能否顺利发现所提供的 TURN 地址和服务可用性情况。 此外也可以通过编写简单的 WebRTC Demo 页面加入对新创建出来的 TURN server 的引用来做进一步的功能测试。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值