精华内容
下载资源
问答
  • Coturn

    2020-12-09 09:21:42
    <div><p>I have Coturn Server and Openvidu server in Public network,but my client in private network,what's should I do?How do I configure coturn server on the client side?</p><p>该提问来源...
  • coturn server

    2019-04-08 16:51:35
    Coturn 是一个开源的 TURN & STUN 服务器 TURN ( Simple Traversal of UDP Through NATs ) 使用 UDP 进行 NATs 穿透。 STUN ( Traversal Using Relays around NAT:Relay Extensions to Session Traversal Utilities ...
  • coturn安装配置 如何安装和配置Coturn 在Docker上构建和运行Coturn。 USERNAME = [dockerhubusername]
  • 安装Coturn Docker 1.克隆存储库 # cd /opt # git clone https://github.com/cybergate-services/docker-coturn.git # cd /opt/docker-coturn 2.要设置docker compos environment运行,请执行以下操作: # ./set-...
  • coturn windows版

    2019-10-05 21:21:06
    coturn 4.5.1.1 windows版预编译包,使用cygwin64编译,windows10下测试通过
  • Coturn配置

    2018-12-12 10:47:46
      coturn服务器下载:https://github.com/coturn/coturn   由三个地方需要修改:  1.vim /etc/default/coturn 把上面打开编辑的文件中的这一行TURNSERVER_ENABLED=1去掉注释,保存退出即可...

    原文链接:http://blog.csdn.net/u012908515/article/details/54863661

     

    coturn服务器下载:https://github.com/coturn/coturn

     

    由三个地方需要修改: 
    1.vim /etc/default/coturn

    把上面打开编辑的文件中的这一行TURNSERVER_ENABLED=1去掉注释,保存退出即可!

    2.vim /etc/turnserver.conf

    这个文件为主要的配置文件。建议填写以下内容即可:

    
     
    1. listening-ip=本地ip

    2. listening-port=3478

    3. tls-listening-port=5349

    4. relay-ip=本地ip

    5. external-ip=本地ip

    6. relay-threads=50

    7. lt-cred-mech

    8. cert=/etc/turn_server_cert.pem

    9. pkey=/etc/turn_server_pkey.pem

    10. user= js: 0xab52511419431651cd6c74657c8b6dfb

    11. userdb=/etc/turnuserdb.conf

    12. #max-bps=102400

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

    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    上面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
    • 1

    而用户信息user= js: 0xab52511419431651cd6c74657c8b6dfb 由下面的命令生成:

    turnadmin -k -u <用户名> -r north.gov -p <密码>
    • 1

    其中js即为设置的用户名,0xab52511419431651cd6c74657c8b6dfb为设置的密码对应生成的“密码”。注意,这里的密码要填写生成的密码,KMS服务器上配置的要填写自己输入的密码。

    3.vim /etc/turnuserdb.conf

    默认没有这个文件,vim过后保存即可生成,内容填写: 
    用户名:密码,在示例中,即:

    js: 0xab52511419431651cd6c74657c8b6dfb
    • 1

    做好以上配置后,即可启动:

    sudo service coturn start
    • 1

    除非配置或者程序出现错误,否则启动是否成功,终端是不显示的。我们可以在浏览器中输入:

    <ip>:3478
    • 1

    查看是否成功。 
    这里写图片描述

    如果出错,我们可以在日志文件中查询:

    vim /var/log/*.log
    • 1

    由于终端会显示此次的日志名字,所以请仔细查看终端显示,以打开正确的日志进行查询。当然,最好的测试是在:

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

    输入我们搭建好的服务器地址,来测试是否解析出主机公网地址。

     

    更加详细参数请参照:http://blog.csdn.net/day_day_up1991/article/details/52253892

    展开全文
  • 配置CoTurn

    2019-04-30 15:47:11
    配置CoTurn 修改 路径为 turnserver-3.2.3.95/examples/etc 下的turnserver.conf文件 直接用下面的替换就可以了 文件内容: listening-ip=内网IP (不要用127.0.0.1 要用 局域网ip 类似192.169.0.55 ) listening-...

    配置CoTurn
    修改 路径为 turnserver-3.2.3.95/examples/etc 下的turnserver.conf文件 直接用下面的替换就可以了

    文件内容:

      listening-ip=内网IP (不要用127.0.0.1 要用 局域网ip 类似192.169.0.55 )
      listening-port=3478  
      tls-listening-port=5349
      relay-ip=内网IP
      external-ip=内网IP
      relay-threads=50  
      lt-cred-mech  
      user=u1:p1
      userdb=/etc/turnuserdb.conf  
      max-bps=102400  
      pidfile="/var/run/turnserver.pid"
    
    展开全文
  • coturn 简介

    千次阅读 2019-01-15 17:03:29
    文章目录一. 安装1.1. 下载1.2. 安装二. 配置三. 启动 &amp;amp; 测试3.1. Server3.2. Client四. 代码流程4.1. 大体框架涉及的函数4.2. 设置 relay 相关4.3....一....git clone https://github.com/coturn/co...

    一. 安装

    1.1. 下载

    • git
    git clone https://github.com/coturn/coturn.git
    
    • 压缩包安装
    wget https://github.com/coturn/coturn/archive/4.5.0.8.tar.gz
    

    1.2. 安装

    cd coturn
    ./configure
    make 
    sudo make install
    

    注: 如果编译出错,记得安装相关依赖。

    二. 配置

    我这里在 /etc 下单独建立了个 turnserver 的目录,将 coturn 配置文件 turnserver.conf 拷贝过来。

    sudo mkdir /etc/turnserver
    sudo cp coturn/examples/etc/turnserver.conf /etc/turnserver/
    sudo cp coturn/examples/etc/turn_server_*.pem /etc/turnserver/
    

    配置 /etc/turnserver/turnserver.conf

    # TURN 的监听端口,默认 3478
    listening-port=3478
    
    # 监听 relay server 的地址
    listening-ip=192.168.110.146
    
    # 可以和 listening IP 一样
    relay-ip=192.168.110.146
    
    # 同上
    external-ip=192.168.110.146
    
    # 输出详细过程
    verbose
    
    # TURN 消息中可使用 FINGERPRINT
    fingerprint
    
    # 开启长期证书机制
    lt-cred-mech
    
    # 设置静态账户
    user=test:test
    
    # 
    realm=mytest
    
    # 关闭 TLS 和 DTLS 监听
    no-tls
    no-dtls
    
    # 连接的生命周期,默认 10min
    stale-nonce=600
    
    # 证书和私钥文件
    cert=/etc/turnserver/turn_server_cert.pem
    pkey=/etc/turnserver/turn_server_pkey.pem
    
    # 屏蔽 loopback, multicast IP 地址
    no-loopback-peers
    no-multicast-peers
    
    # 支持移动 ICE
    mobility
    no-cli
    

    三. 启动 & 测试

    3.1. Server

    turnserver -v -L 192.168.110.146 -a -f -r mytest -c /etc/turnserver/turnserver.conf
    
    • -L 指定 relay 的监听 IP
    • -a 使用 long-term credential
    • -f fingerprints
    • -r 指定 realm
    • -c 指定配置文件

    3.2. Client

    turnutils_uclient -u test -w test -v -y 192.168.110.146
    
    • -u 指定用户名
    • -w 指定密码
    • -v 详细输出
    • -y 使用 client-to-client 连接

    看到如下提示则为成功:

    0: success: 0x4690
    0: Total connect time is 0
    1: start_mclient: msz=4, tot_send_msgs=0, tot_recv_msgs=0, tot_send_bytes ~ 0, tot_recv_bytes ~ 0
    2: start_mclient: msz=4, tot_send_msgs=0, tot_recv_msgs=0, tot_send_bytes ~ 0, tot_recv_bytes ~ 0
    3: start_mclient: msz=4, tot_send_msgs=1, tot_recv_msgs=1, tot_send_bytes ~ 100, tot_recv_bytes ~ 100
    4: start_mclient: msz=4, tot_send_msgs=10, tot_recv_msgs=10, tot_send_bytes ~ 1000, tot_recv_bytes ~ 1000
    5: start_mclient: msz=4, tot_send_msgs=15, tot_recv_msgs=15, tot_send_bytes ~ 1500, tot_recv_bytes ~ 1500
    5: done, connection 0x1fcd600 closed.
    5: done, connection 0x7f40c0d10010 closed.
    5: done, connection 0x7f40c0b9a010 closed.
    5: done, connection 0x7f40c0bbb010 closed.
    5: start_mclient: tot_send_msgs=20, tot_recv_msgs=20
    5: start_mclient: tot_send_bytes ~ 2000, tot_recv_bytes ~ 2000
    5: Total transmit time is 5
    5: Total lost packets 0 (0.000000%), total send dropped 0 (0.000000%)
    5: Average round trip delay 0.000000 ms; min = 0 ms, max = 0 ms
    5: Average jitter 0.650000 ms; min = 0 ms, max = 2 ms
    

    四. 代码流程

    注: 基于 coturn-4.5.0.8 版本

    4.1. 大体框架涉及的函数

    ...各种初始化
    read_config_file() // 读取配置文件
    setup_server() // 设置
      -> setup_listener()
        -> turnipports_create()        // 设置 turn 端口范围
        -> turn_event_base_new()       // event
      -> allocate_relay_addrs_ports()  // relay 地址
      -> setup_listener()
      -> setup_general_relay_servers() // 设置 relay
      -> setup_auth_server()           // 认证相关
    

    4.2. 设置 relay 相关

    setup_general_relay_servers()
      -> setup_relay_server()
        -> relay_receive_message()
          -> handle_relay_message()    // 读取 event 发往 relay 的消息
            -> open_client_connection_session()
              -> client_input_handler()
                -> read_client_connection()
                  -> handle_turn_command()     // 处理 TURN 协议的各种请求或数据发送与接收
                  -> write_client_connection() // 返回数据给 Client
    
    • 设置 event 的回调函数 relay_receive_message()
    • relay_receive_message() 循环从 event buffer 中读取数据交给 handle_relay_message()

    4.3. 处理请求或数据

    handle_turn_command(server, ss, in_buffer, nbh, &resp_constructed, can_resume);
    
    handle_turn_command()
      -> stun_is_request_str()     // 判断 method 是否是请求
        -> handle_turn_allocate()          // 处理 Allocate Request
        -> handle_turn_create_permission() // 处理 CreatePermission Request
        -> handle_turn_refresh()           // 处理 Refresh Request
        -> handle_turn_channel_bind()      // 处理 ChannelBind Request
      -> stun_is_indication_str() // 判断 method 是否是数据
        -> handle_turn_send()              // 处理 Send Request
    
    • nbh 是从 server 的 ioa_engine_handle 结构的 bufs 中创建并传入进来的
    • 处理结束后,将 resp_constructed 的值赋为 1。
    struct _ioa_engine
    {
      super_memory_t *sm;
      struct event_base *event_base;
      int deallocate_eb;
      int verbose;
      turnipports* tp;
      rtcp_map *map_rtcp;
      stun_buffer_list bufs;
      // ...
    }
    
    typedef struct _stun_buffer_list {
    	stun_buffer_list_elem *head;
    	size_t tsz;
    } stun_buffer_list;
    

    4.4. 分析请求并构造返回数据

    handle_turn_allocate() 举例来说:

    handle_turn_allocate(server, ss, &tid, resp_constructed,
        &err_code, &reason, unknown_attrs, &ua_num, in_buffer, nbh);
    
    handle_turn_allocate()
      -> stun_attr_get_first_str()        // 获取第一个属性
      -> stun_attr_get_type()             // 依次获取其他属性
      -> stun_attr_get_len()              // 获取属性长度
      -> stun_attr_get_value()            // 获取属性 value
      -> stun_set_allocate_response_str() // 创建返回数据
        -> stun_attr_add_addr_str()       // 添加各种属性
    
    • 读取 in_buffer 中的 nbh 结构
    • 将 nbh 强转为 stun_buffer_list_elem 结构,其中 next 是链表的指针,buf 承载属性等信息,根据 len 和 offset 来获取属性信息
    • 填充 nbh 结构,用于返回数据
    typedef struct _stun_buffer_list_elem {
    	struct _stun_buffer_list_elem *next;
    	stun_buffer buf;
    } stun_buffer_list_elem;
    
    typedef struct _stun_buffer {
      u08bits	channel[STUN_CHANNEL_HEADER_LENGTH];
      u08bits	buf[STUN_BUFFER_SIZE];
      size_t	len;
      u16bits	offset;
      u08bits	coffset;
    } stun_buffer;
    

    4.5. 真正的返回数据

    write_client_connection(server, ss, nbh, TTL_IGNORE, TOS_IGNORE);
    
    write_client_connection()
      -> send_data_from_ioa_socket_nbh()
        -> udp_send()
          -> sendto()
    
    • 参数中的 nbh 就是前面构造出来的
    • udp_send() 使用的 fd 是参数 server 的 client_socket 字段中的 fd
    展开全文
  • coturn服务器部署

    千次阅读 热门讨论 2019-05-22 13:51:39
    一、coturn coturn 服务器完整的实现了 STUN/TURN/ICE 协议,支持 P2P 穿透防火墙。主要用于 webrtc 等点对点视频音频通话。 coturn 支持 tcp, udp, tls, dtls 连接;支持 linux bsd solaris mac os, 暂不支持...

    一、coturn

           coturn 服务器完整的实现了 STUN/TURN/ICE 协议,支持 P2P 穿透防火墙。主要用于 webrtc 等点对点视频音频通话。

           coturn 支持 tcp, udp, tls, dtls 连接;支持 linux bsd solaris mac os, 暂不支持windows

           GITHUB: https://github.com/coturn/coturn

     

    二、Centos 7

           执行命令  cat /etc/centos-release

     

    三、下载编译安装coturn(错误参照第四步)

    mkdir wlx
    cd wlx
    git clone https://github.com/coturn/coturn.git
    cd coturn
    ./configure 
    make 
    make install

     

    查看是否安装成功 which turnserver

     

    四、解决报错

    4.1 OpenSSL 错误

    执行安装  yum -y install openssl-devel

    4.2 Libevent2错误

    安装 下载 libevent

    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

    五、配置文件

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

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

    5.2 查看内网地址

    5.3 cert和pkey配置的自签名证书用Openssl命令生成,生成的两个文件在/etc/目录下

    openssl req -x509 -newkey rsa:2048 -keyout /etc/turn_server_pkey.pem -out /etc/turn_server_cert.pem -days 99999 -nodes

    5.4 修改配置信息(文件内容太长了,还是下载来下使用 Notepad++ 编辑吧)

    vi /usr/local/etc/turnserver.conf
    listening-ip与relay-ip采用内网ip,external-ip是外网的ip ,配置如下(相关的IP用户名什么的要替换成自己的)

    relay-device=eth0   #与前ifconfig查到的网卡名称一致
    listening-ip=172.31.156.145   #内网IP
    listening-port=3478
    tls-listening-port=5349
    relay-ip=172.31.156.145
    external-ip=47.105.104.4   #公网IP
    relay-threads=50
    lt-cred-mech
    cert=/etc/turn_server_cert.pem
    pkey=/etc/turn_server_pkey.pem
    pidfile=”/var/run/turnserver.pid”
    min-port=49152
    max-port=65535
    user=wlx:123456    #用户名密码,创建IceServer时用
    cli-password=qwerty #不开启会报CONFIG ERROR: Empty cli-password, and so telnet cli interface is disabled! Please set a non empty cli-password!错误
     
    #创建IceServer
    IceServer turnIceServer = new IceServer("turn:47.105.104.4:3478","wlx","123456");
    IceServer stunIceServer = new IceServer("stun:47.105.104.4:19302","","");

     5.5 启动

    turnserver -o -a -f -user=wlx:123456 -r Guangdong

    5.6 关闭防火墙

    启动: systemctl start firewalld
    关闭: systemctl stop firewalld
    查看状态: systemctl status firewalld 
    开机禁用  : systemctl disable firewalld
    开机启用  : systemctl enable firewalld
     

    六、测试

    测试地址:https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/

    分别测试stun和turn服务器,只有relay地址回来的是你的ip才算穿透成功。

    最后特别感谢 : https://www.jianshu.com/p/915eab39476d 

     

     


    下面是最简单的配置,turn默认为3478   stun默认为19302

    #监听端口可以不设置会默认的使用3478
    listening-port=3478
    ##listening-ip,注意必须是你的内网IP地址如(如果你是阿里云的,就是私网地址):
    listening-ip=172.31.156.145
    ##relay-ip可以不设置,默认会使用你的外网ip地址作为转发包的中继地址,建议不设置,使用默认就可以:
    ##external-ip,注意必须使用你的外网IP地址如:
    external-ip=47.105.104.4
    ##设置用户名及密码,这个是作为TURN服务器使用必须设置的,可以设置多个,我这里配置1个
    user=wlx:123456
    
    
    cli-password=qwerty #不开启会报CONFIG ERROR: Empty cli-password, and so telnet cli interface is disabled! Please set a non empty cli-password!错误
     

    需要使用 turnserver -v -r ylbs -a -o -c /etc/turnserver.conf  启动注意后面的配置文件路径

    展开全文
  • 1 turnserver: unknown option --help2 0: log file opened: /var/log/turn_5112_2017-03-08.log3 0:4 RFC 3489/5389/5766/5780/6062/6156 STUN/TURN Server5 Version Coturn-4.5.0.4 ‘dan Eider‘6 0:7 Max number...
  • 安装CoTurn方法

    千次阅读 2019-06-25 08:48:52
    安装CoTurn方法 本篇文章主要记录遇到的错误和处理,简单说下安装方法 1、从Git上下载 git clone https://github.com/coturn/coturn 2、进入项目根目录 执行configure cd coturn ./configure 3、make之后...
  • 搭建coturn服务器

    2020-04-17 13:44:05
    搭建coturn服务器环境准备文件配置启动测试 环境准备 (1)准备一台云服务器,安装Ubuntu18.04操作系统 (2)安装coturn sudo apt install coturn 文件配置 配置文件位置 /etc/turnserver.conf 修改内容: ...
  • 安装coturn服务器

    2020-01-08 15:20:02
    1. 安装依赖环境 yum install openssl-devel libevent2 libevent-devel mysql-devel mysql-server gcc gcc-c++ 2. 下载源码 git clone ...cd coturn ./configure make make install 验证 w...
  • coturn 服务器完整的实现了 STUN/TURN/ICE 协议,支持 P2P 穿透防火墙。主要用于 webrtc 等点对点视频音频通话。coturn 支持 tcp, udp, tls, dtls 连接;支持 linux bsd solaris mac os, 暂不支持windows 。coturn ...
  • 测试 coturn服务器是否配置好的客户端源码 c#语言 可以获取客户端打通的路由器的IP地址和udp端口
  • coturn 配置初探

    千次阅读 2018-10-18 17:45:25
    Coturn 是webrtc,p2p视频通话必不少的,主要包含2个主要功能stun服务, turn服务 Coturn 的githup地址为 https://github.com/coturn/coturn/ 安装 有两种方式安装,第一种是使用编译好的,第二种方式是自己编译 ...
  • coturn整个流程

    千次阅读 2018-11-23 15:51:20
    1、通过4个协议交互 Allocate 带上用户名和密码在coturn注册上该用户信息,...Send Indication 客户端发数据到coturncoturn在内存中查找是否有createPermission的ip+port,找到则直接转发到对端的udp ip+port。...
  • coturn源码解析

    千次阅读 2018-09-26 16:58:25
    coturn源码解析前言概述一. turnserver运行过程简介1.1 函数main1.2 函数void setup_server(void)1.3 客户端访问 到输出 前言 发现关于coturn源码分析的文章没有,由于只接触其中一部分功能,在此粗略解析一下。 ...
  • 配置coturn服务器

    千次阅读 2017-04-18 10:19:23
    coturn功能比较全,配合WebRTC和Chrome使用蛮好,我在Ubuntu Server 14.04下配置了一下,过程记录在这里。 coturn的资料 github主页:https://github.com/coturn/coturncoturn配置文档:...
  • ubuntu18.04装coturn

    2020-03-19 00:05:37
    直接apt安装 sudo apt install coturn sudo systemctl status coturn sudo systemctl enable --now coturn sudo ufw allow Turnserver
  • coturn搭建手记

    2019-12-14 02:03:39
    1.安装coturn的依赖组件 sudo su root #先切换到root apt-get update apt-get upgrade apt-get install build-essential #(可选),如果后面的./configure失败时,可先安装gcc apt-get install openssl libssl-dev ...
  • coturn穿透服务器安装方法

    万次阅读 热门讨论 2018-06-20 10:13:25
    coturn穿透服务器安装方法 前面章节我们介绍了webrtc服务器janus的安装,如果网络无法穿透的时候就需要 turn 服务器来保证视频通话的成功率。turn 包含了stun的功能,所以只需要部署turn服务器即可。 下载编译...
  • As of now (2.15.0) there is no way to change coturn's default port. (Well there IS but its quite painful) <p><strong>Expected behavior There is an environment configuration setting TURN_PUBLIC_...
  • COTURN服务器使用

    万次阅读 2016-08-19 20:06:20
    配置coturn,为apprtc提供穿透服务器

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 671
精华内容 268
热门标签
关键字:

coturn