官方安裝說明:https://github.com/matrix-org/synapse/blob/master/docs/turn-howto.md
查看安裝環境
cat /etc/centos-release
下載並安裝libevent-2.0
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
下載編譯安裝coturn
git clone https://github.com/coturn/coturn
cd coturn
./configure
make
make install
查看是否安裝成功
which turnserver
首先查看網卡,記錄網卡名稱和內網地址
ifconfig
eth0網卡名稱, 172.19.176.106 為內網IP
簽名證書
使用命令安裝openssl
yum install openssl
cert和pkey配置的自簽名證書用Openssl命令生成:
openssl req -x509 -newkey rsa:2048 -keyout /etc/turn_server_pkey.pem -out /etc/turn_server_cert.pem -days 99999 -nodes
填寫相關信息隨便寫。 (提示:此命令會提示輸入國家城市等信息,隨便輸入就行)
生成的兩個文件在/etc/目錄下,你也可以再生成密鑰時候指定修改此路徑
配置文件在 /usr/local/etc/
目錄下有 turnserver.conf.default
,復制為 turnserver.conf
cd /usr/local/etc/
cp turnserver.conf.default turnserver.conf
修改配置信息
vi /usr/local/etc/turnserver.conf
listening-ip與relay-ip采用內網ip,external-ip是外網的ip
#與前ifconfig查到的網卡名稱一致
relay-device=eth0
listening-ip=172.19.176.106
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
lt-cred-mech
cert=/etc/turn_server_cert.pem
pkey=/etc/turn_server_pkey.pem
pidfile="/var/run/turnserver.pid"
user=laofan:123456 #用戶名密碼,創建IceServer時用
cli-password=qwerty
userdb=/var/db/turndb #SQLite
創建用戶
turnadmin -a -b turndb -u laofan -p 123456 -r laofanturn
啟動服務
turnserver -o -a -f -user=laofan:123456 -r laofanturn
查看進程
ps -ef | grep turnserver
注意:一定要在你的雲服務器后台的安全組規則中添加用到的端口,包括3478端口的tcp/udp,udp一定要配置
防火牆設置:
添加
firewall-cmd --zone=public --add-port=3478/udp --permanent
firewall-cmd --zone=public --add-port=3478/tcp --permanent
重新載入
firewall-cmd --reload
重啟防火牆
systemctl restart firewalld
ps: 我是直接關閉了防火牆測試得
ICE測試 : https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/
打開上面的測試地址,輸入地址,用戶名密碼,
點擊 add server
再點擊 Gather candidates
只有relay地址回來的是你的ip才算穿透成功。
完整圖示
- 注意!注意!注意! : 搭建成功時候,通訊什么的都是可以的,但是在 跨網絡 進行 視頻 音頻時候 無法鏈接, 解決辦法是: 加大帶寬