精华内容
下载资源
问答
  • 搭建turn服务器

    2019-10-11 10:07:09
    coturn是目前业界优秀的开源TURN服务器,符合目前最新RFC关于STUN/TURN/ICE的相关要求。该项目由rfc5766-turn-server进化而来,是原作者Oleg Moskalenko为了应对新的标准重新开发的标准TURN服务器。本文档描述在...

    coturn符合目前最新RFC关于STUN/TURN/ICE的相关要求。该项目由rfc5766-turn-server进化而来,是原作者Oleg Moskalenko为了应对新的标准重新开发的标准TURN服务器。
    本文档描述在虚拟机上搭建coturn服务的详细步骤。

    1 操作系统要求

    本文所描述的coturn搭建步骤基于以下的操作系统环境:

    • REDHAT/CentOS Server 7.6

    coturn目前需要安装的gcc版本:

    • gcc 3.4.4 thru 4.8.x

    修改当前用户的最大打开描述符数,增加到10万,并保存到默认配置文件 /etc/security/limits.conf
    查看:cat /proc/sys/fs/file-max,修改即修改该数值

    2 依赖包

    在搭建coturn之前,请确保如下的软件包/库已经安装到系统标准位置。

    • openssl及开发包

    sudo yum install openssl-devel

    • sqlite及开发包
    sudo yum install sqlite
    sudo yum install sqlite-devel
    
    • libevent及开发包
    sudo yum install libevent
    sudo yum install libevent-devel
    

    为了使用yum安装以上的软件包,需要先手动安装epel:

    sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

    另外,目前在epel中未能找到libevent-devel包,所以需要手动安装。在网上找到一个rpm包仓库,http://www.rpmfind.net/linux/rpm2html/search.php?query=libevent-devel,里面包含本环境下的libevent-devel.

    sudo yum install http://www.rpmfind.net/linux/centos/7.6.1810/os/x86_64/Packages/libevent-devel-2.0.21-4.el7.x86_64.rpm

    3 安装目录创建

    为方便维护,第三方安装的应用不安装到系统标准目录下,而是单独安装到另一个/apprun目录。 创建相关目录的指令如下:

    sudo mkdir /apprun
    sudo chown ec2-user:ec2-user /apprun/
    mkdir /apprun/usr/
    mkdir /apprun/usr/log
    mkdir /apprun/usr/var/db
    mkdir /apprun/usr/var/run
    

    4 构建

    解压coturn源码包,在源码顶层目录执行如下操作

    配置:

    configure --prefix=/apprun/usr

    编译coturn:

    make

    安装coturn到指定目录

    make install

    5 修改coturn配置文件

    将附件中的turnserver.conf复制到以下目录

    /apprun/usr/etc/

    附件中的默认turnserver.conf主要对以下几个设置项进行配置,请根据具体部署情况进行修改:

    • external-ip: 设置为云主机的公网IP
    • min-port/max-port: 最低/最高的UDP转发端口
    • verbose: 启动详细日志
    • lt-cred-mech: 启动long-term验证机制
    • userdb: 存储user信息的sqlite数据库文件路径,本文中是设置为/apprun/usr/var/db/turndb
    • realm: 默认的realm,当客户端没有指定realm时,将默认使用该realm
    • log-file: 日志文件路径,本例子中是/apprun/usr/log/turn.log, coturn的日志系统,每次重启coturn都将覆盖此日志文件,默认每天生成一个新的日志文件。(若设置了日志文件路径,则文件名中不拼接pid,导致上一次日志被覆盖,有一定的设计缺陷)
    • allow-loopback-peers: 允许loopback接口上进行处理,方便调试
    • pidfile: pid文件路径,本案例中是/apprun/usr/var/run/turnserver.pid
    • no-tls: 不监听tls端口
    • no-dtls: 不监听dtls端口
    • user: 静态用户/密码配置(当前系统所有终端采用同一个静态用户名/密码)

    6 手动启动coturn

    在任意目录键入如下命令,以守护进程方式启动coturn。

    /apprun/usr/bin/turnserver -c /apprun/usr/etc/turnserver.conf -o

    7 修改防火墙配置

    修改云端防火墙配置,增加如下的放行规则

    入站规则:

    协议 端口范围 来源
    TCP 3478 - 3479 0.0.0.0/0
    UDP 3478 - 3479 0.0.0.0/0
    UDP 20000 - 29999 0.0.0.0/0

    出站规则: 所有流量

    8 手动自检

    成功启动coturn服务后,我们还需要手动执行测试脚本,确保服务器已经正常运行。
    进入已经编译成功的源码目录,在源码目录下执行以下的测试脚本

    ./examples/scripts/rfc5769.sh # 自测加密签名功能

    修改examples/scripts/basic/udp_c2c_client.sh,将其中的127.0.0.1更改为coturn服务器的公网IP, ,增加-u test -w 1234参数(与配置文件中设置的用户密码一致), 然后执行该脚本

    ./examples/scripts/basic/udp_c2c_client.sh

    也可以在另外的主机上执行此脚本,更真实验证turn的连通性。

    9 安装定时检测脚本

    为了提高可靠性,以及开机自动启动,需要在系统中安装一个检查脚本。当coturn由于意外情况退出时,能够及时重新启动,保证服务可用性。安装方法如下:
    将附件中的start.coturn.sh脚本复制到/apprun/usr/bin/目录,修改脚本中的工作路径为/apprun/usr

    使用以下命令,打开当前用户crontab,

    crontab -e

    在crontab 表中加入如下引号中的语句:

    " * * * * * /apprun/usr/bin/start.coturn.sh > /dev/null 2>&1 "

    展开全文
  • 使用Janus搭建了一个拥有公网IP的WebRTC服务器,这种情况下是不是可以认为不需要TURN服务器也能够实现语音通话?如果一定需要TURN服务器的话,那TURN服务器在其中起到了什么必不可缺的作用呢?
  • Turn服务器搭建

    2019-07-31 14:52:41
    Turn服务器搭建 1、下载并安装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 ...

    Turn服务器搭建

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

    2、下载编译安装coturn

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

    3、查看是否安装成功

    which turnserver

    在这里插入图片描述

    4、编辑配置文件

    #签名证书
    yum install openssl
    
    #生成的两个文件一般在/etc/目录下,如果不是就移动过去
    openssl req -x509 -newkey rsa:2048 -keyout /etc/turn_server_pkey.pem -out /etc/turn_server_cert.pem -days 99999 -nodes
    
    #修改配置信息
    vim /etc/turnserver/turnserver.conf
    
    relay-device=eth0   #与前ifconfig查到的网卡名称一致
    listening-ip=172.18.77.60    #内网IP
    listening-port=57920
    tls-listening-port=5349
    relay-ip=172.18.77.60
    external-ip=47.107.110.xxx    #公网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=admin:123456    #用户名密码,创建IceServer时用
    

    5、启动服务

    nohup turnserver -v -L 内网IP -a -u admin -p 123456 -f -r 外网IP &

    6、配置 ICE REST API 服务

    #生成证书
    openssl req -x509 -newkey rsa:2048 -keyout key.pem -out /etc/cert.pem -days 99999 -nodes
    
    #移动至/cert目录
    mkdir /cert
    mv ./key.pem /cert/
    mv /etc/cert.pem /cert/
    
    编辑index.js
    var https = require('https')
    var fs = require('fs')
    var express = require('express')
    var crypto = require('crypto')
    var app = express()
    
    var option = {
            key : fs.readFileSync('/cert/key.pem'),
            cert: fs.readFileSync('/cert/cert.pem'),
    }
    
    var hmac = function (key, content) {
      var method = crypto.createHmac('sha1', key)
      method.setEncoding('base64')
      method.write(content)
      method.end()
      return method.read()
    }
    
    app.get('/iceconfig', function (req, resp) {
      var query = req.query
      var key = '4080218913'
      var time_to_live = 3600*24
      var timestamp = Math.floor(Date.now() / 1000) + time_to_live
      var turn_username = "admin" //timestamp + ':' + 'garrylea'
      var password = "123456" //hmac(key, turn_username)
    
      resp.header("Access-Control-Allow-Origin", "*");   //设置跨域访问
    
      return resp.send({
        iceServers: [
          {
            urls: [
              'turn:192.168.139.xxx:57920?transport=tcp',  //这四处修改为外网IP地址和端口
              'turn:192.168.139.xxx:57920?transport=udp',
              'turn:192.168.139.xxx:5349?transport=tcp',
              'turn:192.168.139.xxx:5349?transport=udp',
            ],
            username: turn_username,
            credential: password
          }
        ]
      })
    })
    
    var server = https.createServer(option, app);
    
    server.listen('3033', function () {
      console.log('server started')
    })
    
    

    7、启动 ICE REST API 服务

    npm install -g forever

    forever start -l forever.log -a index.js

    访问网址:https://IP:3033/iceconfig?key=none (IP为公网IP)

    展开全文
  • stun/turn服务器部署

    2019-09-22 17:20:33
    本文通过在服务器上安装coturn这个软件,实现搭建STUN服务器和TURN服务器。 coturn 简介:是一个免费的开源的 TURN/STUN 服务器。coturn 服务器完整的实现了 STUN/TURN/ICE 协议,支持 P2P 穿透防火墙。 STUN ...

    一、简介

    本文通过在服务器上安装coturn这个软件,实现搭建STUN服务器和TURN服务器。

    coturn 简介:是一个免费的开源的 TURN/STUN 服务器。coturn 服务器完整的实现了 STUN/TURN/ICE 协议,支持 P2P 穿透防火墙。

     

     

    STUN 服务器用于检测NAT类型

    TURN 服务器是在点对点失败后用于通信中继。

     

    coturnGithub源码:

    https://github.com/coturn/coturn

     

    coturn的wiki使用说明:

    https://github.com/coturn/coturn/wiki

     

     

    Q:

    stun服务器和turn服务器在部署步骤上,有什么区别?

     

    A:

    因为TURNSTUN的扩展,所以TURN服务器可以当作STUN服务器来用。

    在软件配置上没有区别。

    在硬件配置上,stun服务器需要1台服务器上有2个公网IP,turn服务器只需要有1个公网IP。

    所以,如果你想:

    只配置stun服务器:按照本文步骤来,还需要有1台用2个公网IP的服务器。

    只配置turn服务器:按照本文步骤来。

    1台服务器同时配置stun和turn服务器:按照本文步骤来,还需要有1台用2个公网IP的服务器。

     

     

    二、安装

    安装过程分为2部分

    1. 镜像不带有coturn的源,此处以ubuntu14.04 LTS 64位为例
    2. 镜像自带有coturn的源(推荐使用,这个比较方便),此处以ubuntu16.04 LTS 64位为例

     

    1. 镜像不带有coturn的源,此处以ubuntu14.04 LTS 64为例

    1.安装相关环境

    sudo apt-get install libssl-dev

    sudo apt-get install libevent-dev

    sudo apt-get install libpq-dev

    sudo apt-get install mysql-client

    sudo apt-get install libmysqlclient-dev

    sudo apt-get install libhiredis-dev

    sudo apt-get install git

    sudo apt-get install make

    2.下载并安装相关代码

    git clone https://github.com/coturn/coturn

    cd coturn/

    ./configure

    make

    sudo make install

    看到下图,就说明已经安装好了,这个是一些说明事项,如果想要将其设置成守护进程,可以看看

     

     

     

     

     

     

    2. 镜像带有coturn的源,此处以ubuntu16.04 LTS 64为例

    输入apt-get install coturn

     

     

     

     

     

    三、配置与运行

    stun服务器和turn服务器的默认端口都是3478

    stun服务器需要一台服务器,并且服务器上绑定有2个公网IP如果只有1个公网IP,会出现NAT类型检测不准确的情况!)。

    turn服务器需要一台服务器,并且服务器上绑定有1个公网IP

    stun服务器搭建:

    stun服务器需要一台服务器,并且服务器上绑定有2个公网IP

    性能要求应该不高,毕竟一个用户创建一个通话请求,只需要与stun服务器沟通一次,此后不再沟通,而沟通一次只需要发几个数据包验证能否通信。

     

    现在有2种解决方案:

    1.用别人现成的stun服务器(推荐使用)

    2.自己搭一个stun服务器(2个公网IP的资金花销太大,而换来的只是一个NAT类型检测的功能,性价比不高,不推荐使用)

     

    1.用别人现成的stun服务器

    以下三个亲测可用:

    stun.ekiga.net

    stun.schlund.de

    stun.voxgratia.org

     

    怎么测试是否可用呢?

    搜索NAT类型检测工具,然后下载

     

     

     

     

    再找几个可用的服务器

     

     

     

     

     

    框框里填入服务器地址

    这个是可用的

     

     

     

     

     

     

    这个是用不了的

     

     

     

     

     

     

    2.自己搭一个stun服务器

    硬件方面,腾讯云和阿里云有个叫弹性网卡的技术可以让一台服务器绑定2ip如果服务器只有1IP,会出现NAT类型检测不准确的情况!

     

    软件方面,服务器安装了coturn后,既是stun服务器,也是turn服务器,所以stun服务器的配置步骤与turn服务器的配置步骤是一样的

     

     

    turn服务器搭建:

    coturn 支持三种配置:命令行、conf文件和数据库(据网上说是有数据库这种方式,但所有的例子都是前两种,所以我也不知道怎么用数据库去配置)。

     

    数据库支持sqlitemysqlpostgresqlMongoDBredis这里的数据库指的应该是存用户信息的数据库,而不是配置coturn用的数据库。

     

    STUN 定义了两种验证方式:Long-Term Credential  Short-Term Credential 。但是对于 WebRTC 而言,仅支持 Long-Term Credential 

     

     

     

     

    本文以命令行举例:

    turnserver -o -v -f -a -m 2 --max-bps=100000 --min-port=32355 --max-port=65535 --user=phz:1 -r phzled.cn -L your.ip

     

     

     

     

    部分参数说明:

    -o 以守护进程模式运行(后台运行)

    -v 日志会以“适度详细”的程度来记录

    -f  增加指纹机制。

    -a 长期验证机制

    -m x个进程来处理中继请求

    --max-bps 带宽

    --min-port   起始用的最小端口

    --max-port   最大端口号

    --user=帐号:密码

    -r  领域(随便写啥都行)。如果turn服务器没有使用任何数据库/命令行/conf文件进行配置,就需要加这个选项,并且要配合long-term  credentials-a选项)使用

    -L 监听IP(turn服务器的ip)这个ip是你ifconfig查到的ip,不是你的公网ip

     

     

     

    注意turn服务器是需要有用户验证机制的,由账户,密码,领域三部分构成一个完整的账户。

    看上图,如果想要在代码中使用turn服务器,需要输入正确的账户和密码,才可以正常使用turn服务器,而领域是给turn服务器使用的,不需要输入。

    所以,如果想以命令行的方式配置turn服务器,--user  -r  -a 这三个选项必不可少

     

    如果想更详细的了解,请自行查阅wiki使用说明:

    https://github.com/coturn/coturn/wiki

     

    或是使用man手册查看:

    man turnserver

     

    命令行运行后会有以下信息,信息很多,大部分用不到,记住日志文件的位置信息就好,一般会放在/var/log下,以turn+进程号+日期命名。

     

     

     

     

    四、运行检测

    检测网址

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

     

     

    如果想检测stun服务器,只用填写你的公网IP

     

     

     

    如果想检测turn服务器,就填写你的公网IP,还有当时配置时填写的用户名和密码,因为turn是需要认证的,(--user选项填的那个信息)

     

     

     

     

    填好相关信息后,点击按钮,进行验证

     

     

     

     

    如果想要设置成开机自启动

    写一个脚本,将你的脚本复制到 /etc/init.d目录下

    脚本开头要加这几行字

     

     

    ### BEGIN INIT INFO

    # Provides:          scriptname

    # Required-Start:    $remote_fs $syslog

    # Required-Stop:     $remote_fs $syslog

    # Default-Start:     2 3 4 5

    # Default-Stop:      0 1 6

    # Short-Description: Start daemon at boot time

    # Description:       Enable service provided by daemon.

    ### END INIT INFO

     

     

    就像这样

     

     

     

     

    然后设置脚本文件的权限(这里假设脚本名字为test)

    sudo chmod 755 /etc/init.d/test

     

    将脚本设置为启动脚本

    sudo update-rc.d test defaults 95

    注:其中数字95是脚本启动的顺序号,按照自己的需要相应修改即可。在你有多个启动脚本,而它们之间又有先后启动的依赖关系时你就知道这个数字的具体作用了。

     

    卸载启动脚本的方法:

    sudo update-rc.d -f test remove

    五、答疑环节

     

    Q1:

    我的服务器成功运行后,在检测用的网址上检测不到。

     

    A1:

    可以看看是不是因为这2个原因:

    1.-L选项的ip地址填的是ifconfig查到的ip地址

     

     

     

     

     

     

    2.检查服务器的安全策略,如果是腾讯云或者阿里云,查看一下安全组的端口是否开放

    stun服务器和turn服务器的默认端口都是3478

     

    以腾讯云为例,把端口打开

     

    转载于:https://www.cnblogs.com/ledphz/p/11518755.html

    展开全文
  • docker搭建Coturn TURN服务器 文章目录docker搭建Coturn TURN服务器下载镜像启动镜像(失败)启动镜像(不太对)启动镜像(搞个配置文件)自签证书使用配置文件测试 下载镜像 docker pull instrumentisto/coturn ...

    docker搭建Coturn TURN服务器

    下载镜像

    docker pull instrumentisto/coturn

    启动镜像(失败)

    docker run -d -p 3478:3478 -p 49152-65535:49152-65535/udp instrumentisto/coturn

    报错:
    Error response from daemon: driver failed programming external connectivity on endpoint hungry_vaughan (5df62fc553ed81c04b0993fa405a78c4b332da8aca01aace808c5d9af4d63c76): Error starting userland proxy:.

    systemctl restart docker重启再来

    还不行,换host

    启动镜像(不太对)

    docker run -d --network=host instrumentisto/coturn

    netstat -antp | grep LISTEN 端口监听有些不对

    docker exec -it <容器ID> /bin/bash 进去看看
    不行,换/bin//bash

    启动镜像(搞个配置文件)

    自签证书

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

    CN HN ZZ XA HW LYL yjkhtddx@sina.com

    使用配置文件

    配置参数

    listening-device=eth0 #监听网卡
    listening-port=3478 #监听端口
    tls-listening-port=5349 #监听端口
    istening-ip=172.17.0.7 # 监听内网IPv4
    relay-ip=172.17.0.7 # 内网IPv4
    relay-threads=50
    external-ip=120.53.223.XXX # 公网IP
    min-port=49152 # 端口范围
    max-port=65535 # 端口范围
    user=test:123456 # 用户名密码设置
    userdb=/var/db/turndb
    realm=liuyunuo.cn # 域名
    cert=/etc/ssl/certs/cert.pem # 证书文件 Certificate file.
    pkey=/etc/ssl/private/privkey.pem # 私钥文件 Private key file.
    syslog
    pidfile="/var/run/turnserver.pid" # pid文件存储地址
    cli-ip=127.0.0.1
    cli-port=5766
    cli-password=123456
    

    测试

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

    报错701,不知道什么问题。
    明天继续跳坑

    展开全文
  • 本文讲解如何在Ubuntu系统上采用coturn搭建p2p打洞服务器,coturn是一个开源的stun和turn服务器实现。 安装依赖项 sudo apt-get install openssl sudo apt-get install libssl sudo apt-get install libevent-dev ...
  • 由于turn包含了stun的功能,所以这里就只部署了turn服务器,用的是coturn,可以在这里下载,https://github.com/coturn/coturn; 而coturn目前并不支持windows服务器,所以这里需要安装Cgywin已达到在window也能使用...
  • 配置TURN服务器实现NAT穿透

    千次阅读 2019-07-07 20:07:31
    搭建TURN服务器 如何测试我的TURN服务器是否成功运行? 解决ICE问题过程中遇到的另一个问题 最近使用WebRTC传输媒体流时,接收端已经成功收到了发送端发来的offer,并且传回的answer也已经发送方被接收,之后...
  • 关于安装Turn服务器:coturn,TurnServer,Restund,reTurnServer
  • 为什么谷歌不提供免费的TURN服务器?

    千次阅读 2020-12-18 16:58:04
    没有免费的午餐,或者免费TURN服务器。 现在是2017年,WebRTC已经伴随我们5年多了。你可能会认为,现在人们对WebRTC已经有了足够的了解,这样我们就不会有任何问题了。但事实并非如此。 有一个问题总是不时的出现...
  • webrtc应用turn服务器搭建

    千次阅读 2015-09-05 08:40:30
    基于阿里云的turn服务器搭建
  • webrtc turn服务器的坑

    千次阅读 2017-04-19 16:15:37
    在做webrtc的开发时,开始配置了turn服务器但是一直都没有联通成功。  后面调试检查的时候发现客户端的turn配置必须配上 用户名username 和密码password  同时服务器端需要   --user=100:100 --realm=...
  • 该篇Writeup介绍了作者通过TURN服务器的中继作用,实现对Slack的内部网络和AWS元数据资源的访问。文中涉及到了STUN、TURN协议和WebRTC知识,还用到了一个未公开的STUN协议安全测试工具Stunner。我们一起来看看。STUN...
  • 【原创】Centos配置turn服务器 使用ssh工具,进入命令行,安装下面的就是可以配置turn-server(coturn) 转请注明出处。 1.安装centos必须的库文件 yum install -y make gcc cc gcc-c++ wget yum install -y openssl-...
  • 2行代码启动webrtc turn服务器
  • webrtc学习: 部署stun和turn服务器webrtc的P2P穿透部分是由libjingle实现的. 步骤顺序大概是这样的: 1. 尝试直连.2. 通过stun服务器进行穿透3. 无法穿透则通过turn服务器中转. stun 服务器比较简单. 网上也有很多...
  • 面临的场景是想要测试Turn服务器压测。但目前host p2p都能拿到,这两种情况则无法对turn服务器造成压力。 Google资料获取到了两个关键信到的两个解决方案:...
  • 文章目录WebRTC源码研究(35)WebRTC中STUN 和 TURN 服务器搭建 WebRTC源码研究(35)WebRTC中STUN 和 TURN 服务器搭建
  • WEBRTC之测试STUN/TURN服务器是否可用

    千次阅读 2020-04-11 10:32:14
    可以通过这个地址进行测试: ... 如果测试的是一个STUN服务器,在连接有效时应该可以收集一个类型为“srflx”的候选者。类似地,对于有效的TURN服务器,可以收集一个类型为“relay”的候选者。 ...
  • [转]webrtc学习: 部署stun和turn服务器 http://www.cnblogs.com/lingdhox/p/4209659.html webrtc的P2P穿透部分是由libjingle实现的. 步骤顺序大概是这样的: 1. 尝试直连. 2. 通过stun服务器进行穿透 3. 无法...
  • freeice模块是为WebRTC应用程序获取随机STUN或TURN服务器的一种简单方法。 服务器列表(在此阶段只是STUN)就是从这个。 使用范例 以下内容演示了如何将freeice与: var freeice = require ( 'freeice' ) ; var ...
  • coturn 服务器完整的实现了 STUN/TURN/ICE 协议,支持 P2P 穿透防火墙。主要用于 webrtc 等点对点视频音频通话。coturn 支持 tcp, udp, tls, dtls 连接;支持 linux bsd solaris mac os, 暂不支持windows 。coturn ...
  • webrtc-stun/turn 服务器安装

    千次阅读 2016-11-16 15:38:20
    项目中用到了webrtc,他的p2p通过ICE实现,其中需要stun/turn服务器接入。我用的google开源的,很好用,原来叫做turnserver,后来改名为corturn,git有下载连接。 其实安装,部署配置都很简单,有很多分享。重点是...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 625
精华内容 250
关键字:

turn服务器