Centos7 turn穿透服务搭建

一:下载编译安装coturn
mkdir wlx
cd wlx
git clone https://github.com/coturn/coturn.git
cd coturn
./configure
make
make install
查看是否安装成功 which turnserver
二:解决报错
2.1 OpenSSL 错误
执行安装 yum -y install openssl-devel
2.2 Libevent2错误
安装 下载 libevent
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
三:配置文件
3.1 在/usr/local/etc/目录下有turnserver.conf.default,复制为turnserver.conf
cd /usr/local/etc/
cp turnserver.conf.default turnserver.conf
3.2 cert和pkey配置的自签名证书用Openssl命令生成,生成的两个文件在/etc/目录下
openssl req -x509 -newkey rsa:2048 -keyout /etc/turn_server_pkey.pem -out /etc/turn_server_cert.pem -days 99999 -nodes
3.3 修改配置信息(文件内容太长了,还是下载来下使用 Notepad++ 编辑吧)
vi /usr/local/etc/turnserver.conf
listening-ip与relay-ip采用内网ip,external-ip是外网的ip ,配置如下(相关的IP用户名什么的要替换成自己的)
relay-device=eth0 #与前ifconfig查到的网卡名称一致
listening-ip=172.31.156.145 #内网IP
listening-port=3478
tls-listening-port=5349
relay-ip=172.31.156.145
external-ip=47.105.104.4 #公网IP
relay-threads=50
lt-cred-mech
cert=/etc/turn_server_cert.pem
pkey=/etc/turn_server_pkey.pem
pidfile=”/var/run/turnserver.pid”
min-port=49152
max-port=65535
user=wlx:123456 #用户名密码,创建IceServer时用
cli-password=qwerty #不开启会报CONFIG ERROR: Empty cli-password, and so telnet cli interface is disabled! Please set a non empty cli-password!错误

	#创建IceServer
	IceServer turnIceServer = new IceServer("turn:47.105.104.4:3478","wlx","123456");
	IceServer stunIceServer = new IceServer("stun:47.105.104.4:19302","","");
3.4 启动
turnserver -o -a -f -user=wlx:123456 -r Guangdong
3.5 关闭防火墙
            启动: systemctl start firewalld
	关闭: systemctl stop firewalld
	查看状态: systemctl status firewalld 
	开机禁用  : systemctl disable firewalld
	开机启用  : systemctl enable firewalld

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

<think>嗯,用户想了解如何部署TURN服务器,需要详细的教程和配置指南。首先,我得回忆一下TURN服务器的作用。TURN(Traversal Using Relays around NAT)服务器主要用于NAT穿透,帮助WebRTC等实时通信应用在复杂网络环境下建立连接。所以用户可能是在开发实时通信应用,遇到NAT问题需要解决。 接下来,我需要整理部署TURN服务器的步骤。首先,应该选择合适的服务器软件,常见的有coturn,这是一个开源的TURN/STUN服务器,支持Linux系统。然后,安装过程可能涉及使用包管理器或者从源码编译。记得要打开相关端口,比如3478(TCP/UDP)和5349(TLS/DTLS),还有端口范围49152-65535用于中继传输。 配置文件的设置是关键部分。用户需要设置监听端口、认证机制(如长期凭证)、域名和SSL证书。SSL证书是必须的,因为安全通信很重要,特别是生产环境中。可能还需要配置日志和权限,确保服务器运行正常。 测试部分也不能少,用户部署完后需要用工具测试,比如使用WebRTC的示例页面或者Trickle ICE工具。同时,查看日志可以确认是否有错误发生,比如认证失败或端口未开放。 然后,考虑到用户可能遇到的问题,比如防火墙设置、SSL证书配置错误,或者认证信息不正确。需要提醒用户检查这些方面,参考官方文档,并根据实际环境调整配置。比如引用[1]提到配置可能因需求和环境不同,需要灵活调整,并强调使用SSL证书和认证机制的重要性。引用[2]和[3]则涉及服务搭建和配置,可能相关的会话管理和超时设置,不过TURN服务器配置可能更侧重于网络和认证部分。 用户可能需要进一步的优化或高可用性方案,比如负载均衡或者冗余部署,但作为基础教程,先覆盖基本部署步骤。最后生成相关问题,帮助用户深入理解,比如性能优化、安全加固、与STUN的区别等。</think>### TURN服务器部署与配置指南 TURN(Traversal Using Relays around NAT)服务器用于解决实时通信(如WebRTC)中NAT穿透失败时的数据中继问题。以下是基于`coturn`(常用开源TURN服务器)的部署步骤: --- #### **一、环境准备** 1. **操作系统**:推荐Linux(Ubuntu/CentOS) 2. **依赖安装**: ```bash sudo apt-get install coturn # Ubuntu/Debian sudo yum install coturn # CentOS ``` 3. **开放端口**: - 3478 (TCP/UDP) # TURN默认端口 - 5349 (TLS/DTLS) # 加密通信 - 端口范围:49152-65535(中继传输) --- #### **二、配置文件设置** 1. **启用服务**: ```bash sudo systemctl enable coturn ``` 2. **编辑配置文件**(`/etc/turnserver.conf`): ```ini listening-ip=0.0.0.0 # 监听所有IP external-ip=your_server_public_ip # 服务器公网IP realm=your_domain.com # 域名标识 user=username:password # 长期凭证(需加密存储) cert=/path/to/ssl_cert.pem # SSL证书路径 pkey=/path/to/ssl_private.key # 私钥路径 ``` 3. **高级配置示例**: ```ini no-tcp-relay max-port=65535 min-port=49152 verbose # 开启详细日志 ``` --- #### **三、安全配置** 1. **SSL证书**: - 使用Let's Encrypt免费证书或购买商业证书。 - 引用[1]强调SSL证书对通信安全的重要性。 2. **认证机制**: - 短期凭证(如TURN REST API)更安全,需结合时间戳和密钥生成。 - 长期凭证需定期更换并加密存储。 --- #### **四、测试与验证** 1. **启动服务**: ```bash sudo systemctl start coturn ``` 2. **测试工具**: - 使用浏览器WebRTC示例页面。 - 通过`turnutils_uclient`命令行工具测试: ```bash turnutils_uclient -u username -w password -y your_server_public_ip ``` 3. **日志检查**: ```bash tail -f /var/log/turn.log # 查看实时日志 ``` --- #### **五、常见问题** 1. **防火墙未放行端口**:需确保TCP/UDP端口开放。 2. **SSL配置错误**:证书路径或权限问题可能导致服务启动失败[^1]。 3. **认证失败**:检查用户名/密码是否匹配配置文件。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值