上一篇講到配置stun/turn服務器。這裏我們自己搭建一個屬於自己stun/turn服務器。此服務器能夠成功使用的先決條件即必須使用的一端能夠訪問到此服務器所在的主機。所以一般情況一定要具備“公網”環境!一般情況下申請的雲主機都會提供公網環境,即使像上文那樣,主機在NAT之後!好了,確定號網絡環境後,開始搭建。
首先下載安裝包:http://turnserver.open-sys.org/downloads/。這裏提供的時所有版本的下載包地址,可以瀏覽器下載,然後拷貝到相應的位置。當然最常用的是命令行:
wget http://turnserver.open-sys.org/downloads/v4.4.1.2/turnserver-4.4.1.2-debian-wheezy-ubuntu-mint-x86-64bits.tar.gz
可見這裏以ubuntu下4.4.1.2版本爲搭建示例。解壓:
tar xvfz turnserver-4.4.1.2-debian-wheezy-ubuntu-mint-x86-64bits.tar.gz
在解壓出來的文件裏,有個文件:INSTALL 。告訴我們安裝的步驟:
sudo apt-get update
sudo apt-get install gdebi-core
sudo gdebi coturn*.deb
在第二命令行:sudo apt-get install gdebi-core。我出現過“依賴包”錯誤的問題,提示“要安裝gdebi-core,需要安裝XXX,但是XXX並沒有安裝”。此時,只需要按照提示運行:
apt-get -f install
繼續上述命令即可,安裝很快完成。如果提示缺少什麼依賴,也可手動安裝號這些依賴。安裝是很簡單的,主要是配置,所以這裏介紹一下配置相關。
由三個地方需要修改:
1.vim /etc/default/coturn
把上面打開編輯的文件中的這一行TURNSERVER_ENABLED=1去掉註釋,保存退出即可!
2.vim /etc/turnserver.conf
這個文件爲主要的配置文件。建議填寫以下內容即可:
listening-ip=本地ip
listening-port=3478
tls-listening-port=5349
relay-ip=本地ip
external-ip=本地ip
relay-threads=50
lt-cred-mech
cert=/etc/turn_server_cert.pem
pkey=/etc/turn_server_pkey.pem
user= js: 0xab52511419431651cd6c74657c8b6dfb
userdb=/etc/turnuserdb.conf
#max-bps=102400
pidfile="/var/run/turnserver.pid"
上面cert和pkey配置的自簽名證書用Openssl命令生成:
sudo openssl req -x509 -newkey rsa:2048 -keyout /etc/turn_server_pkey.pem -out /etc/turn_server_cert.pem -days 99999 -nodes
而用戶信息user= js: 0xab52511419431651cd6c74657c8b6dfb 由下面的命令生成:
turnadmin -k -u <用戶名> -r north.gov -p <密碼>
其中js即爲設置的用戶名,0xab52511419431651cd6c74657c8b6dfb爲設置的密碼對應生成的“密碼”。注意,這裏的密碼要填寫生成的密碼,KMS服務器上配置的要填寫自己輸入的密碼。
3.vim /etc/turnuserdb.conf
默認沒有這個文件,vim過後保存即可生成,內容填寫:
用戶名:密碼,在示例中,即:
js: 0xab52511419431651cd6c74657c8b6dfb
做好以上配置後,即可啓動:
sudo service coturn start
除非配置或者程序出現錯誤,否則啓動是否成功,終端是不顯示的。我們可以在瀏覽器中輸入:
<ip>:3478
查看是否成功。
如果出錯,我們可以在日誌文件中查詢:
vim /var/log/*.log
由於終端會顯示此次的日誌名字,所以請仔細查看終端顯示,以打開正確的日誌進行查詢。當然,最好的測試是在:
https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/
輸入我們搭建好的服務器地址,來測試是否解析出主機公網地址。