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

你可能感兴趣的:(------【Linux】)