基于coturn的webrtc iceserver搭建

一、coturn简介

1.原文参考地址

webrtc学习: 部署stun和turn服务器——http://blog.csdn.net/gupar/article/details/52782897

Ubuntu 14.04 coturn 安装 与 配置——http://blog.csdn.net/tanyhuan/article/details/77265349

开源地址——https://github.com/coturn/coturn

2.webrtc的P2P穿透

1. 尝试直连

2. 通过stun服务器进行穿透

3. 无法穿透则通过turn服务器中转

3.coturn的功能

coturn 在原来的turnserver上增加了一些高级特性. (这是作者的描述, 两个项目是同一个作者. 作者更推荐使用coturn);

coturn  支持tcp, udp, tls, dtls 连接;

coturn 支持linux bsd solaris mac os。暂不支持windows (未来会支持);

二、coturn安装

在ubuntu 16的软件库已经带有coturn,直接使用命令安装

sudo apt install coturn

1.配置并启动服务

方法一:

参考:http://blog.csdn.net/gupar/article/details/52782897

通过启动的命令行设置参数

turnserver -o -a -f -v --mobility -m 2 --max-bps=100000 --min-port=32355 --max-port=65535 --user=ling:ling1234 -r demo -L公网ip

方法二:

参考:http://blog.csdn.net/tanyhuan/article/details/77265349

http://blog.csdn.net/u012908515/article/details/54863661

1.修改配置文件(/etc/default/coturn)

TURNSERVER_ENABLED=1

2.修改配置文件(/etc/turnserver.conf)后启动

# Coturn TURN SERVER configuration file



# TURN listener port for UDP and TCP (Default: 3478).

# Note: actually, TLS & DTLS sessions can connect to the 

# "plain" TCP & UDP port(s), too - if allowed by configuration.

#

listening-port=3478



# Alternative listening port for TLS and DTLS protocols.

# Default (or zero) value means "TLS listening port plus one".

#

#alt-tls-listening-port=0

# Listener IP address of relay server. Multiple listeners can be specified.

# If no IP(s) specified in the config file or in the command line options, 

# then all IPv4 and IPv6 system IPs will be used for listening.

#

listening-ip=123.57.174.26

#listening-ip=10.207.21.238

#listening-ip=2607:f0d0:1002:51::4



# Relay address (the local IP address that will be used to relay the 

# packets to the peer).

# Multiple relay addresses may be used.

# The same IP(s) can be used as both listening IP(s) and relay IP(s).

#

# If no relay IP(s) specified, then the turnserver will apply the default

# policy: it will decide itself which relay addresses to be used, and it 

# will always be using the client socket IP address as the relay IP address

# of the TURN session (if the requested relay address family is the same

# as the family of the client socket).

#

relay-ip=123.57.174.26

#relay-ip=2607:f0d0:1002:51::5



# Number of the relay threads to handle the established connections

# (in addition to authentication thread and the listener thread).

# If explicitly set to 0 then application runs relay process in a 

# single thread, in the same thread with the listener process 

# (the authentication thread will still be a separate thread).

#

# If this parameter is not set, then the default OS-dependent 

# thread pattern algorithm will be employed. Usually the default

# algorithm is the most optimal, so you have to change this option

# only if you want to make some fine tweaks. 

#

# In the older systems (Linux kernel before 3.9),

# the number of UDP threads is always one thread per network listening

# endpoint - including the auxiliary endpoints - unless 0 (zero) or 

# 1 (one) value is set.

#

relay-threads=2



# Lower and upper bounds of the UDP relay endpoints:

# (default values are 49152 and 65535)

#

min-port=49152

max-port=65535

# Uncomment to run TURN server in 'normal' 'moderate' verbose mode.

# By default the verbose mode is off.

verbose



# Uncomment to use fingerprints in the TURN messages.

# By default the fingerprints are off.

#

fingerprint



# Uncomment to use long-term credential mechanism.

# By default no credentials mechanism is used (any user allowed).

#

lt-cred-mech



# 'Static' user accounts for long term credentials mechanism, only.

# This option cannot be used with TURN REST API.

# 'Static' user accounts are NOT dynamically checked by the turnserver process, 

# so that they can NOT be changed while the turnserver is running.

#

#user=username1:key1

#user=username2:key2

# OR:

#user=username1:password1

#user=username2:password2

user=ito:ito.000000



# The default realm to be used for the users when no explicit 

# origin/realm relationship was found in the database, or if the TURN

# server is not using any database (just the commands-line settings

# and the userdb file). Must be used with long-term credentials 

# mechanism or with TURN REST API.

#

realm=wonderfulhr.cn



# Max bytes-per-second bandwidth a TURN session is allowed to handle

# (input and output network streams are treated separately). Anything above

# that limit will be dropped or temporary suppressed (within

# the available buffer limits).

# This option can also be set through the database, for a particular realm.

#

max-bps=100000



# Option to set the log file name.

# By default, the turnserver tries to open a log file in 

# /var/log, /var/tmp, /tmp and current directories directories

# (which open operation succeeds first that file will be used).

# With this option you can set the definite log file name.

# The special names are "stdout" and "-" - they will force everything 

# to the stdout. Also, the "syslog" name will force everything to

# the system log (syslog). 

# In the runtime, the logfile can be reset with the SIGHUP signal 

# to the turnserver process.

#

log-file=/var/tmp/turn.log



# Mobility with ICE (MICE) specs support.

#

mobility



# Server relay. NON-STANDARD AND DANGEROUS OPTION. 

# Only for those applications when we want to run 

# server applications on the relay endpoints.

# This option eliminates the IP permissions check on 

# the packets incoming to the relay endpoints.

#

server-relay

3.重启coturn

service coturn restart

三、coturn测试

turnutils_uclient -u ling -w ling1234 公网IP
或者通过在线工具测试。网址:https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/

如何实现微信公众号历史消息数据抓取并整理为excel表格

一、应用场景

作为新媒体运营人员或者数据分析人员,获取并分析自营公众号的营销数据与竞品公众号的营销数据可以为当前绩效与未来决策提供数据支持。

微信公众号作为主流新媒体平台之一,被专业新媒体人与各企业新媒体运营人员所重视。本文就是针对“如何实现微信公众号历史数据抓取并整理为excel表格”的问题,提出初步解决方案与改良方案。

二、难点分析

微信公众号历史消息数据是基于html5+ajax方式进行加载的。不过与普通微网站不同的是:微信公众号历史消息页只能在微信中打开,在其他浏览器中无法打开。所以,不能用普通爬虫工具直接爬取数据,如何爬取数据成为一个难题。

三、解决方案

注意:此教程不是小白教程,只是提供解决思路。欢迎与博主沟通探讨。 继续阅读如何实现微信公众号历史消息数据抓取并整理为excel表格

低成本搭建网站生产环境-反向代理

由于工作需要,本人除了开发还要做些必要的运维工作,因此积累了些生产环境搭建与优化的经验。本人还是个人站长,所以又对低成本运营网站十分关注。本文正是结合两者,试图通过技术解决运维成本的问题,而提出的设想。——目前已经在公司做产品展示环境搭建,进行了初步验证。

本文主要提供解决思路,不会提供大篇幅代码。本文适合具有一定技术基础的朋友,而且文中涉及的技术有不少同类替代方案,请因地制宜的实施。有需要或者感兴趣的博友请关注公众号“李德涛博客”或者邮件联系“ldt#lidetao.com(#换成@)

一、一个正常网站的成本分析

a) 域名

域名是网站的名字,一般注册个新域名的成本在20-100元左右。优秀的域名大都被米农收购,需要用较高成本获取,价格有行情确定,极其优秀的域名可价值几百万甚至几千万(当然你要是有能力购买这类域名,就不会看本文章了)。

b) 网站服务器

网站是程序,程序需要运行在计算机上。网站服务器就是运行网站程序的物理(或者虚拟)计算设备资源。这类计算设备资源有物理服务器、虚拟服务器(也叫vps或者ecs)、虚拟空间等,成本依次往下降低。一般使用phpasp或者jspcms进行建站的一般使用虚拟空间就够了,成本在每年几十到几千不等(主要与配置有关,也有免费的低配)。本文构思是由于网站使用了新的技术,传统虚拟空间无法满足要求,但虚拟服务器价格相对较高(对于一个穷酸秀才来说),此方案的核心思想是尽可能少的使用收费的计算资源,而只使用其网络资源。

c) 公网环境

网站需要被访问,需要发布到Internet上,稳定的公网ip与网络服务是必不可少的。对于企业来说,有的会自建机房,拉专线并买独立IP;也有的把服务器托管到运营商的机房里,这对于一个小站长来说都是不可想象的。一般会使用IDC服务商提供的虚拟空间或者虚拟服务器等计算资源,他们一般会绑定网络资源一同销售。

d) 运营成本

对于个人站长来说,运营成本可大可小,主要是花费些时间充实网站内容,做SEO,做产品或者服务营销。

二、反向代理降低成本的解决方案

a) 方案核心思想 继续阅读低成本搭建网站生产环境-反向代理

netdata-linux服务器运维与性能监控的神器

用于工作原因,服务器监控的事时不时的发生(要么cpu过高、要么内存不足、要么流量异常、要么某个服务死了,你懂得~)。

一直需要一个能进行一个监控的工具,但绝大部分部分的监控平台,都是通过服务器上的脚本插件把数据传输到第三方平台,总感觉这样不好~自己用python或者shell开发一个呢,功能又没这么全。

终于等到你,还好没放弃!意外发现了开源的netdata,这是一个在服务器端安装服务器监控工具。报表结果通过web页面的形式进行查看。

监控的内部有很多:

服务器基本的cpu、io、内存等;

apache、tomcat、mysql等服务的性能(需要单独配置下,还没进行操作);

硬件温度,电压等参数;

等等…..

访问端口为19999,没有登录账号一说。为了安全起见,建议安装一个vpn,并设置为vpn内网访问。

阿里云主机发布wordpress网站

一、登陆阿里云主机后台,获取主机信息并修改主机的环境参数

a) 获取阿里云主机的ftp账号与数据库账号

b) 修改云主机的php版本

c) 启动云主机的php的模块

二、通过ftp工具把wordpress程序进行上传

a) 通过ftp工具(我用的flashfxp连接云主机 继续阅读阿里云主机发布wordpress网站