turnserver服务器搭建

亲测有效,有问题,欢迎留言。

搭建环境:Ubuntu 16.04.6 LTS

下载并安装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


创建用户名和密码:

turnadmin -k -u demo -r hangzhou -p demo

生成:0xc74d8dd2c3dac2f1d40b57b9c33e644d (后面的配置文件需要用到用户名和密码)

配置文件

在/usr/local/etc/目录下有turnserver.conf.default,复制为turnserver.conf

cd /usr/local/etc/ cp turnserver.conf.default turnserver.conf

首先查看网卡,记录网卡名称和内网地址


签名证书

apt-get install openssl

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

填写相关信息随便写。

生成的两个文件一般在/etc/目录下​

修改配置信息

vi /usr/local/etc/turnserver.conf

listening-ip与relay-ip采用内网ip,external-ip是外网的ip

正常使用的配置文件:

//***********************************************************************//

listening-device=enp4s3 #与前ifconfig查到的网卡名称一致

relay-device=enp4s3 #与前ifconfig查到的网卡名称一致

listening-ip=192.168.10.206 #内网IP

listening-port=3478

tls-listening-port=5349

relay-ip=192.168.10.206 #内网IP

external-ip=115.238.103.171 #公网IP

relay-threads=50

lt-cred-mech

static-auth-secret=demo

user=demo:0x7a24c8f6e22650e49726a2e96ee902b7 #用户名密码,创建IceServer时用

userdb=/etc/turnuserdb.conf

#max-bps=102400

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

no-loopback-peers

no-multicast-peers

sha256

mobility

no-cli

cert=/etc/turn_server_cert.pem

pkey=/etc/turn_server_pkey.pem

stale-nonce

use-auth-secret

Verbose

fingerprint

//**************************************************************************************//

字段说明:

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: 自签名证书相关;

开启turnserver,执行命令

cd /coturn/bin

turnserver -v -r 外网IP:3478 -a -o

turnserver -v -r 115.238.103.171:3478 -a -o

运行结果:

root@ubuntu:/home/wowjoy/coturn/bin# ./myrun.sh

0: log file opened: /var/log/turn_626_2020-04-21.log

0: Listener address to use: 192.168.10.206

0: WARNING: Options -b, --userdb and --db are not supported because SQLite is not supported in this build.

0: Bad configuration format: no-loopback-peers

0: Config file found: /usr/local/etc/turnserver.conf

0: Bad configuration format: no-loopback-peers

0:

RFC 3489/5389/5766/5780/6062/6156 STUN/TURN Server

Version Coturn-4.5.1.1 'dan Eider'

0:

Max number of open files/sockets allowed for this process: 1048576

0:

Due to the open files/sockets limitation,

max supported number of TURN Sessions possible is: 524000 (approximately)

0:


==== Show him the instruments, Practical Frost: ====


0: TLS supported

0: DTLS supported

0: DTLS 1.2 supported

0: TURN/STUN ALPN supported

0: Third-party authorization (oAuth) supported

0: GCM (AEAD) supported

0: OpenSSL compile-time version: OpenSSL 1.0.2g 1 Mar 2016 (0x1000207f)

0:

0: SQLite is not supported

0: Redis supported

0: PostgreSQL supported

0: MySQL supported

0: MongoDB is not supported

0:

0: Default Net Engine version: 3 (UDP thread per CPU core)


=====================================================


0: Domain name:

0: Default realm: 192.168.10.206:3478

0: SSL23: Certificate file found: /etc/turn_server_cert.pem

0: SSL23: Private key file found: /etc/turn_server_pkey.pem

0: TLS1.0: Certificate file found: /etc/turn_server_cert.pem

0: TLS1.0: Private key file found: /etc/turn_server_pkey.pem

0: TLS1.1: Certificate file found: /etc/turn_server_cert.pem

0: TLS1.1: Private key file found: /etc/turn_server_pkey.pem

0: TLS1.2: Certificate file found: /etc/turn_server_cert.pem

0: TLS1.2: Private key file found: /etc/turn_server_pkey.pem

0: TLS cipher suite: DEFAULT

0: DTLS: Certificate file found: /etc/turn_server_cert.pem

0: DTLS: Private key file found: /etc/turn_server_pkey.pem

0: DTLS1.2: Certificate file found: /etc/turn_server_cert.pem

0: DTLS1.2: Private key file found: /etc/turn_server_pkey.pem

0: DTLS cipher suite: DEFAULT

0: Relay address to use: 192.168.10.206

root@ubuntu:/home/wowjoy/coturn/bin#

ICE测试

只有relay地址回来的是你的ip才算穿透成功。

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

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 200,667评论 5 472
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,361评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 147,700评论 0 333
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,027评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,988评论 5 361
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,230评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,705评论 3 393
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,366评论 0 255
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,496评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,405评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,453评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,126评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,725评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,803评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,015评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,514评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,111评论 2 341