STUN/TURN服务器搭建
2019-09-30 06:38:34来源:博客园 阅读 ()
STUN/TURN服务器搭建
目录
- STUN/TURN服务器搭建
- 编译安装
- 配置使用
- 添加用户
- 启动server
- 测试
- 开机启动
- 参考
STUN/TURN服务器搭建
编译安装
- 编译安装 OpenSSL;
sudo apt-get install libssl-dev
- 编译安装 libevent 最新版;
wget https://github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz
tar xvfz libevent-2.0.21-stable.tar.gz
cd libevent-2.0.21-stable
./configure
make
sudo make install
- coturn 可以选择使用多种数据库,这里使用的是 SQLite ,使用命令
sudo apt-get install sqlite
(or sqlite3) 和sudo apt-get install libsqlite3-dev
(or sqlite3-dev) 安装; - 编译coturn;
下载coturn
tar xvfz turnserver-<...>.tar.gz
./configure
make
sudo make install
执行 ./configure 命令时没有使用 --prefix=/opt 参数,因为 OpenSSL 是通过 apt-get 安装在默认位置,如果安装到其他位置 libevent 会找不到 OpenSSL 库文件。
安装完成后在 bin 目录下生成六个可执行文件:
- turnserver - STUN/TURN 服务器
- turnadmin - 用于配置、管理账户
- turnutils_stunclient - 用于测试 STUN 服务
- turnutils_uclient 用于测试 TURN 服务,模拟多个UDP、TCP、TLS 或 DTLS 类型的客户端
- turnutils_peer
- turnutils_rfc5769check
配置使用
添加用户
$ sudo turnadmin -a -u you_name -p you_password -r you_realm
这里默认使用了 SQLite 数据库,其中 -a
表示添加一个 long-term 用户,-u <user>
为用户名,-p <password>
为密码,-r <realm>
为该用户所属的 Realm。在启动 turnserver 时需要指定 Realm ,只有该 Realm 下的用户才能登录。
注意一定要使用 root 权限配置,否则会配置失败,但是还没有错误提示。
启动server
配置完用户后就可以启动 turnserver 了,第一次启动前需要一个配置文件,这是使用模板生成,然后就可以启动 turnserver 了。
sudo cp /usr/local/etc/turnserver.conf.default /usr/local/etc/turnserver.conf
sudo turnserver -a -f -v -r lynky
其中 -a
表示使用 long-term 机制, -r
为指定的 Realm ,只有该 Realm 下的用户可以使用服务器。
测试
可以使用 Trickle ICE 测试
STUN
使用下面的命令即可测试 STUN 服务使用可用,唯一此参数是 STUN 服务器的 IP地址或域名。
turnutils_stunclient 132.232.100.103
TURN
使用下面的命令即可测试 TURN 服务使用可用,值得注意的是必须使用 turnserver 启动时指定 Realm 下的用户。
turnutils_uclient -u lynky -w lynky123 132.232.100.103
开机启动
修改/etc/turnserver.conf
listening-ip=127.0.0.1
listening-ip=172.16.0.99 # 内网ip
external-ip=221.208.117.45 # 公网ip,如果服务器在NAT后需要指定该参数
fingerprint
lt-cred-mech
realm=<you_realm_name>
添加/etc/systemd/system/turnserver.service
[Unit]
Description=coturn
Documentation=man:coturn(1) man:turnadmin(1) man:turnserver(1)
After=syslog.target network.target
[Service]
Type=forking
PIDFile=/var/run/turnserver.pid
ExecStart=/usr/local/bin/turnserver --daemon --pidfile /var/run/turnserver.pid -c /etc/turnserver.conf
ExecStopPost=/usr/bin/rm -f /var/run/turnserver.pid
Restart=on-abort
LimitCORE=infinity
LimitNOFILE=999999
LimitNPROC=60000
LimitRTPRIO=infinity
LimitRTTIME=7000000
CPUSchedulingPolicy=other
然后执行以下命令
# 使服务自动启动
sudo systemctl enable turnserver.service
# 启动服务
sudo systemctl start turnserver
# 停止服务
sudo systemctl stop turnserver
参考
[1] WebRTC下的网络连接: STUN, TURN, ICE, TCP
[2] 自己动手搭建 WebRTC TURN&STUN 服务器
[3] CoturnConfig
原文链接:https://www.cnblogs.com/itshun/p/11605449.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 如何监控 Linux 服务器状态? 2020-06-06
- 简单安装配置samba服务器 2020-06-03
- Xshell如何配置并远程连接Linux服务器详解 2020-05-31
- ubuntu18.04.4 配置 NFS 服务器 2020-05-31
- 内部服务器错误Internal server error解决方法 2020-05-31
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash