1. 程式人生 > >Turnserver伺服器搭建

Turnserver伺服器搭建

1. 安裝

>
sudo apt-get install coturn

2. 配置

turnserver.conf

路徑:
>
/etc/turnserver.conf

內容:
>
listening-port=3478
tls-listening-port=5349
>
listening-ip=your ip
relay-ip=your ip
external-ip=your ip
>
server-name=your domain
realm=your domain
>
lt-cred-mech
userdb=/var/lib/turn/turndb

cert=/etc/turn_server_cert.pem
pkey=/etc/turn_server_pkey.pem

no-stdout-log
log-file=/var/tmp/turnserver.log

pidfile="/var/run/turnserver.pid"

欄位含義:

  listening-port:  turnserver監聽UDP/TCP埠,預設為3478;
  tls-listening-port:  turnserver監聽TLS/DTLS埠,預設為5349,
      將TCP/UDP和TLS/DTLS分別定義監聽埠是符合RFC5766規範的,但是通過配置兩者能使用同一埠,不推薦;
  listening-ip:  中繼伺服器的監聽IP地址,可以配置多個;
  relay-ip:  中繼伺服器的IP地址;
  external-ip:  外部IP,當中繼伺服器在NAT網路內部時指定,此處可以不新增;
  server-name:  伺服器名稱,用於OAuth認證,預設和realm相同;
  realm:  域名;
  userdb:  用於儲存使用者資訊;
  cert/pkey:  自簽名證書相關;

注意事項:

1) coturn使用了SQLlite作為儲存,請保證userdb的正確配置(userdb=/var/lib/turn/turndb),不需要新增turnuserdb.conf檔案(turnuserdb.conf多用於restund的配置方式);

2) 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

3) 配置成功後生成使用者名稱/密碼
>
turnadmin -k -u -r -p //turnadmin -k -a -u btzh -r ice.btzh.net -p webrtc

執行上述命令後,會建立一個使用者/密碼,並新增到SQLlite資料庫中.

引數含義請參見
>
man turnadmin

3. 啟動服務

1) 確保埠開放

>
iptables -A INPUT -p udp –dport 3478 -j ACCEPT
iptables -A INPUT -p udp –dport 5349 -j ACCEPT

2) 啟動

後臺啟動
>
service coturn start

非後臺啟動:
>
turnserver

初次執行請使用非後臺啟動,會顯示當前執行狀態,如果有錯誤會直接顯示在控制檯上.

3) 驗證監聽埠

>
lsof -n -i4TCP:3478 | grep LISTEN
lsof -n -i4TCP:5349 | grep LISTEN

或直接檢視所有UDP/TCP 埠
>
netstat -nat | grep LISTEN

4. 驗證服務

1) stun

>
apt-get install stun-client

之後執行
>
stun domain.com:port //例如: stun ice.btzh.net:3478

2) 直接測試

瀏覽器輸入
>
domain/IP:port // 例如 ice.btzh.net:3478

出現文字”TURN Server use https connection for the admin session”

3) 線上測試(推薦)

網址
>
https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/

測試格式
>
stun:domain:port // example: stun:ice.btzh.net:3478

注意: 不要以此網站測試TURN username/TURN password的正確性(it doesn`t work for username/pwd test).

參考連結: https://github.com/coturn/coturn/blob/master/INSTALL