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