2024年2月

前言

coturn 是Google的一个开源的STUN/TURN 服务器,用于webRTC穿透和转发。
环境:CentOS7

编译安装

暂时留空

yum 安装

yum install coturn

注意观察版本,yum 安装会解决依赖问题。
配置文件路径

/etc/coturn/turnserver.conf
当安装后找不到配置文件路径使用一下命令查找
rpm -ql coturn #查看coturn安装的文件路径
# 查看进程

配置 Long-Term 用户

sudo turnadmin -a -u you_name -p you_password -r you_realm

coturn 默认使用sqlite 存储数据,使用 turnadmin 命令可以新增和修改用户信息

生成证书

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

一些配置

#与前ifconfig查到的网卡名称一致
# relay-device=eth0  设置了会失败
listening-ip=172.19.176.106  #内网IP可以不用设置
# relay-ip=172.19.176.106    #relay-ip 可以不设置,默认会使用你的外网ip地址作为转发包的中继地址
listening-port=3478        #监听端口可以不设置会默认的使用3478,记得要在云服务商那边开启相应端口
tls-listening-port=5349     # 加密的方式的端口, 记得要在云服务商那边开启相应端口
external-ip=156.000.111.222  #注意必须使用你的外网IP地址
relay-threads=50
realm=zxl 
lt-cred-mech
fingerprint
min-port=49152
max-port=65535
cert=/etc/turn_server_cert.pem #tls的证书
pkey=/etc/turn_server_pkey.pem #tls的证书
pidfile="/var/run/turnserver.pid"
user=laofan:123456  #用户名密码,创建IceServer时用 
userdb=/var/db/turndb   #SQLite

turn服务还需要开通端口?

firewall-cmd --permanent --zone=public --add-port=49152-65535/udp
firewall-cmd --permanent --zone=public --add-port=49152-65535/tcp
firewall-cmd --permanent --zone=public --add-port=3478/udp
firewall-cmd --permanent --zone=public --add-port=3478/tcp
firewall-cmd --permanent --zone=public --add-port=5349/udp
firewall-cmd --permanent --zone=public --add-port=5349/tcp
firewall-cmd --reload

启动服务

#turnserver -o -a -f
# sudo turnserver -a -f -v -r zxl #此命令可以看到各个链接的状态
systemctl start coturn
systemctl enable coturn # 开机自启动

查看网络状态

netstat -upnl |grep turn