sudo apt-get install libssl-dev
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
sudo apt-get install sqlite
(or sqlite3) 和 sudo apt-get install libsqlite3-dev
(or sqlite3-dev) 安装;tar xvfz turnserver-<...>.tar.gz ./configure make sudo make install
执行 ./configure 命令时没有使用 --prefix=/opt 参数,由于 OpenSSL 是经过 apt-get 安装在默认位置,若是安装到其余位置 libevent 会找不到 OpenSSL 库文件。git
安装完成后在 bin 目录下生成六个可执行文件:github
$ 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 下的用户才能登陆。web
注意必定要使用 root 权限配置,不然会配置失败,可是尚未错误提示。sql
配置完用户后就能够启动 turnserver 了,第一次启动前须要一个配置文件,这是使用模板生成,而后就能够启动 turnserver 了。shell
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 服务器的 IP地址或域名。网络
turnutils_stunclient 132.232.100.103
使用下面的命令便可测试 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