taoCMS-基于php+sqlite最小巧的CMS http://www.taocms.org/ taoCMS是基于php+sqlite/mysql的国内最小(100Kb左右)的功能完善的CMS管理系统 2020-07-04 taoCMS-基于php+sqlite最小巧的CMS 1198 一种留存分析的方案:Cohort Analysis 前两天一篇叫《打造 10 亿美金产品的核心秘密:用户参与层级模型》的文章在朋友圈疯转。文章是 Pinterest 早期投资人 Sarah Tavel 总结的 用户增长 模型,主要包括三个方面:

  1. Growing engaged users ( 用户增长 )
  2. Retaining users ( 留住用户 )
  3. Self-perpetuating ( 自我驱动 )

图片来自PPT

对于文章中提到的这三点,我自己的理解就是做用户增长的三要素: 新增、留存、召回 。

这三要素今天不展开讲了,感兴趣的朋友可以看上面的文章,今天分享一个分析留存率的方法: Cohort Analysis ,这个方法很简单,也很实用,但是介绍这个方法的中文文章却不多。

什么是 Cohort Analysis ?

Cohort analysis is a subset of behavioral analytics that takes the data from a given dataset (e.g. an eCommerce platform, web application, or online game) and rather than looking at all users as one unit, it breaks them into related groups for analysis. These related groups, or cohorts, usually share common characteristics or experiences within a defined time-span. ( 来自 wikipedia )

解释 Cohort Analysis 之前,我们先来看一个留存曲线,如下图可见,这个产品的用户在第一个月内快速收敛,最终稳定在 10% 这个水平。

留存曲线再加上该产品的新增规模,以及单用户成本和单用户 ARPU 值,我们就能计算出这个产品的用户规模天花板,以及增长模式是不是健康。但如果我们的目标是分析该产品的留存问题,就需要用到 Cohort Analysis 了。

Cohort Analysis 可以翻译成 群体分析 或 分组分析,其实是一种通过细分来研究数据的方法。如下表就是一个从每日新增维度细分的 Cohort Analysis 表格。

  • 第一列是分组的维度,下表以用户新增的日期作为细分的维度;
  • 第二列是对应的新增用户数;
  • 其余列为对应分组下的用户留存率;

怎么做 Cohort Analysis ?

Cohort Analysis 说来也简单,就是做好观察用户的分组;分组先分维度,再分粒度。

什么是维度?如果按用户的新增日期分组,那时间就是维度,如果按新增用户的渠道来源分组,渠道就是维度;其次是粒度,我们说的时间维度是按照月,还是按照天?这是粒度差异;新增的渠道纬度,是新增的来源产品,还是来源的具体网址,这也是粒度的差异;通过基于这两方面的分组可以将对比的差异值逐级锁定,寻找原因。

对于用户的留存分析一般有两个大的分组方向:

  • 从用户的获取角度分组
  • 从用户的行为角度分组

第一种是从用户获取的角度分组

如果按获取的时间分( 粒度选择天或周或月,依赖于产品本身的使用频率,例如 IM 产品就适合按天看,而记事本等工具类产品就更适合按周看 ),我们就可以清晰的看到,各个时间段获取的用户在留存率表现上是不是稳定,例如上面第一个留存曲线中一个月的收敛是稳定现象,还是强烈波动平均后的结果。通过这个分析我们能圈定出流失用户做用户画像分析,并在流失率高的时间段进行干预。

同样是获取的角度,还可以通过渠道分。看不同渠道来的用户后续的留存情况。通过渠道维度的分析能够判定渠道的优劣,好的渠道可以加大投入,差的渠道可以选择淘汰。

第二种是从用户行为的角度分组

从用户行为角度分组对于功能比较复杂的产品也很重要。例如现在的浏览器产品,已经不单单是解决用户访问网页的需求,还向用户提供新闻、小说、视频服务,是一个内容的综合服务体。

从用户的角度来说,选择用一个浏览器来看小说,并不是说也一定会用他来看新闻、视频。所以同样是用户流失,他可能是对不同功能模块体验的不满。

这个时候,我们就可以通过用户行为这个角度分组来分析具体问题。例如在浏览器这个例子中,新闻、小说、视频都应该是每日活跃,且高留存比例的功能,如果分组中发现使用过某个功能的用户在之后的时间中留存情况很差,那就需要对这个功能做专项的优化了,相较于竞争对手有哪些方面做的不够好。

小结

Cohort Analysis 是一种简单成熟的分析方法,不但能够告诉我们用户在什么时候离开了我们的产品,而且能进一步告诉我们用户为什么离开,帮助我们找到优化产品的方法。

为了更好的使用 Cohort Analysis ,需要我们从一开始的数据打点和存储结构就做好准备。

“If you cannot measure it, you cannot improve it.”

 

作者:Shane;公号:勰门歪道( xmwd-666 )

]]>
taoCMS-基于php+sqlite最小巧的CMS 2020-06-28 23:06:50
1197 运营的商业逻辑:CAC和CLV 之前用了两篇文章说过用户生命周期价值CLV和新增用户成本CAC,今天将两者结合谈一下。

我们假设中的商业模式常会这样谈:老王凭借祖传手艺加互联网思维,准备在陆家嘴开包子铺,老王通过人均100元的费用获取一位顾客,再接下来的数月时光中, 顾客都会不断去买老王的包子,合理收入会在500元。现在老王如果能获得300万融资,那么这笔钱会获得3万的用户。并且产生更多的利润。

我们把获得新顾客的100元叫做CAC,把新顾客后续一系列的付费叫做CLV,这是商业逻辑最简化的两个指标。

如果CLV大于CAC,老王的包子铺能够开下去,也能获得投资人的青睐。那么老王也将登上人生巅峰成为隔壁老王。

任何一款互联网产品,产品和运营的可行性都能通过这两个指标粗略判断。下文还会引入COC(Customer Operation Cost)运营成本。

为了简单讲述CAC/COC和CLV的商业逻辑关系,并且说明与运营的关系,我将互联网产品划分成四个时期:增量期,成熟期,收割期,衰退期。(文章写完回过头看,才发觉只能用浅谈 T T)


增量期:

CAC低,CLV低

我们常称呼这个时期为红利时期。从Web时代进入到移动互联网时代,最早的那批产品或多或少都抢到不少用户的红利。虽然现在移动用户量远远高于几年前,但是用户的获取难度也高于过往。

而从不同的渠道看,早期的淘宝、早期的微博、早期的微信公众号和朋友圈。新拓者都有巨大的先发优势,获取一个新的用户/粉丝/关注者的成本都比现在低很多。新来的吃肉,后来的喝汤。那是早期运营者的春天。

这是流量带来的红利。

如果一款产品单独切入用户需求开辟蓝海市场,又恰好用户的需求确实没有满足,市场仍旧存在真空。那么早期用户的CAC不会太高。

这是市场的红利。

对运营来说,不论是渠道进入的早,还是产品压对赛道,都往往偏机遇。这种模式不怎么有复制性。甚至在大环境下,互联网已经完成大规模的普及,CAC很难再降到几年前的美好光景了。

与运营相关的:

产品在增量期,运营的核心工作就是新用户数,努力抢占市场。

抢占时别忘了关注用户的需求是否满足,别再好赛道翻车。

增量期一般都意味新领域,运营以往的技巧和经验,都会受到挑战和推倒。更多还是看运营的学习能力和灵活应对。

成熟期:

CAC高,CLV低

不少产品诞生伊始,就是在成熟期。

某模式或领域证明其有可行性,或者单纯的资本热,就会吸引其他玩家入场,竞争对手出现,瓜分蛋糕。

充分的市场竞争,会消耗用户红利。用户很少会安装两个同类型的产品,这是一场零和博弈。不论是烧钱价格战,还是用户份额争夺,都会造成CAC的急剧提高。最疯狂的日子之一就属滴滴和快的,滴滴和Uber。即使诸多领域不同产品,也会带动互联网整体的CAC提高。你找广告公司投放广告,从来不会有互联网金融类广告10万元,而教育广告才1000元。

很多后进市场的产品,根本没有享受到红利期,就进入到真刀真枪的运营厮杀。只有下水了才知道是一片暗礁。

与运营相关的:

降低和优化CAC,发掘出新的用户渠道。例如用户有一定基数,更多去鼓励传播。例如广告昂贵,则多尝试长尾关键词。

用户未必会选择好产品,但用户一定不会差的产品。与PM一起打磨产品,在竞争中脱颖而出。

你的用户更加昂贵,并且会一直昂贵下去,关注留存和黏性。不要让付费的钱打水漂。

不要花无用功的钱,厮杀中能比对手活得久一点,也是胜利。美团就是一个好例子。

尝试精准运营用户,尝试用户价值的变现。越来越多的互联网企业不会再以圈地获取用户然后赚钱,而是齐头并进。

了解事实,哪怕自己运营的再好,还是很难撼动高额补贴的优势。


收割期:

CAC+COC高,CLV高。

如果成熟期是群雄逐鹿。那么收割期就是加冕称王。绝大多数的入场者都会退场,居高不下的成本和迟迟不见的盈利是挂在风口上的两把刀。市场上逐渐剩下一到两家巨头公司,早期的烧钱难以为继。

产品和用户产生黏性。例如社交产品的关系链,电商产品的会员,以及用户积分和等级体系等,都会让留下来的用户开始展现商业价值。所以才会称为收割期。

严格说来,此时CAC的重要性会下降(CAC可能也会下降),运营可以把关注重心转移到运营成本COC,COC会随着公司和用户规模不断上升。

而重要的是CLV,我喜欢简化为营利,盈利,赢利三个小时期。分别对应着:


营利:不管怎么样,有流水GMV就好。


盈利:CLV>CAC+COC

赢利:将模式复制,拓展商业的边界。

这三个时期对整体运营的要求都是越来越高的。很多互联网公司有C轮魔咒,就是没有熬到CLV提升,或者提升不了CLV。

CAC是一次性的,就是我获得这个用户花了100元钱,那么就是花了一百元钱,后续不会再有投入。COC是不断上升的,理论上只要用户们一直使用产品,都是支出。而CLV需要不断累加,我今天从用户身上赚10元钱,明天赚5元,产品可能需要一个月才能赚回成本。但用户一不开心十天后就离开产品,那么还是亏的。这种复杂性才是运营在商业化道路的挑战。

与运营相关的:

计算CLV的相关模型,如果没有模型,问自己几个问题,并且关注这些问题的相关数据。我现在能从一个用户身上赚到多少钱?需要多久的时间才能赚回本。这些有商业价值的用户有多少?这些用户还会使用产品多久?

运营的策略彻底清晰,用户分层,用户分群,CRM等。


不再只关注CAC,运营的核心KPI变成盈利,用户数还是重要,活跃度还是重要,但是都不如CLV。

至少有一个核心的商业盈利点。最常见的三大盈利点是广告、电商、游戏。运营围绕盈利点展开。比如电商会看复购率、购物篮、SKU等,广告会看曝光量、CTR、转化率等。

很多指标变得并不重要,微信公众号阅读数?如果阅读数和广告挂钩,你可以关注,如果阅读数关乎后续订单的转化,你可以关注。单纯一篇文章的阅读数?对不起,很少人care,这很赤裸,但这时期的运营应该懂得很多数据的取舍。

产品会衍生出很多功能,而这些功能或多或少会和商业沾边,都需要运营推动。实际上,这些商业化的功能应该是运营发起或者策划的。

数据的重要性日益凸显,与之对应的是精准化运营。

精准化运营也意味着合理的成本控制。

衰退期:

COC高,CLV低

我们永远希望产品能一直好下去,可产品总会有衰退期。

市场已经饱和,没有持续的新用户为产品输血。大企业以前流传一句笑话:如何最快速高效的获得新用户?开拓一家新地区/国家的市场就好了。后期的产品运营,用户数只是一个数字。早期用户增加1000,可能就意味着用户量增加30%。现在用户量增加10000,或许只意味着增加了0.1%。

用户在哪个阶段都会流失。新产品只有10000个用户的时候,每月的用户流失率为2%,意味着200个用户的离开。当产品有100万用户时候,2%的流失率意味着2万个用户。新用户疲软,老用户又不断流失,用户体量面临着缩小的危险。而流失率的降低非常困难。

内部挑战不断和成本上升,外部则面临变革者的创新,或者是细分垂直领域的侵入。你不能要求用户长久的使用一款产品。运营们会发觉从用户身上赚钱越来越困难。

或许一款产品的衰退会很久,或许新的风口到来产品就一蹶不振了。任何时期运营都会遇到挑战。

与运营相关的:

延长产品的生命,和PM不断优化和改进。

关注用户的流失,尤其是高价值用户。

关注新机遇,运营是离用户最近的人,思考如何从旧有中变革。


————————

欢迎大家关注我的微信公众号:tracykanc

定期分享运营或数据的内容。

]]>
taoCMS-基于php+sqlite最小巧的CMS 2020-06-28 23:06:26
1196 解读运营指标:CAC/COC/CLV

解读运营指标:CAC/COC/CLV

本节内容整理自秦路老师在人人都是产品经理发布的文章【浅谈运营的商业逻辑:CAC和CLV】,引导链接:http://www.woshipm.com/operate/443586.html

概念理解:

CAC(Customer Acquisition Cost):获客成本

COC(Customer Operation Cost):用户运营成本

CLV(Customer Lifetime Value):用户生命周期价值


面临不同的市场环境,产品需要针对性的运营策略来突出重围,而非盲目的砸钱推广或闭门造车。

对于不同阶段的产品,运营人员应该要怎么做?

不同产品周期的运营策略


作者:西门菜花
链接:https://www.jianshu.com/p/bdb5568d63c0
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。]]>
taoCMS-基于php+sqlite最小巧的CMS 2020-06-28 23:06:25
1195 一种留存分析的方案:Cohort Analysis 前两天一篇叫《打造 10 亿美金产品的核心秘密:用户参与层级模型》的文章在朋友圈疯转。文章是 Pinterest 早期投资人 Sarah Tavel 总结的 用户增长 模型,主要包括三个方面:

  1. Growing engaged users ( 用户增长 )
  2. Retaining users ( 留住用户 )
  3. Self-perpetuating ( 自我驱动 )

图片来自PPT

对于文章中提到的这三点,我自己的理解就是做用户增长的三要素: 新增、留存、召回 。

这三要素今天不展开讲了,感兴趣的朋友可以看上面的文章,今天分享一个分析留存率的方法: Cohort Analysis ,这个方法很简单,也很实用,但是介绍这个方法的中文文章却不多。

什么是 Cohort Analysis ?

Cohort analysis is a subset of behavioral analytics that takes the data from a given dataset (e.g. an eCommerce platform, web application, or online game) and rather than looking at all users as one unit, it breaks them into related groups for analysis. These related groups, or cohorts, usually share common characteristics or experiences within a defined time-span. ( 来自 wikipedia )

解释 Cohort Analysis 之前,我们先来看一个留存曲线,如下图可见,这个产品的用户在第一个月内快速收敛,最终稳定在 10% 这个水平。

留存曲线再加上该产品的新增规模,以及单用户成本和单用户 ARPU 值,我们就能计算出这个产品的用户规模天花板,以及增长模式是不是健康。但如果我们的目标是分析该产品的留存问题,就需要用到 Cohort Analysis 了。

Cohort Analysis 可以翻译成 群体分析 或 分组分析,其实是一种通过细分来研究数据的方法。如下表就是一个从每日新增维度细分的 Cohort Analysis 表格。

  • 第一列是分组的维度,下表以用户新增的日期作为细分的维度;
  • 第二列是对应的新增用户数;
  • 其余列为对应分组下的用户留存率;

怎么做 Cohort Analysis ?

Cohort Analysis 说来也简单,就是做好观察用户的分组;分组先分维度,再分粒度。

什么是维度?如果按用户的新增日期分组,那时间就是维度,如果按新增用户的渠道来源分组,渠道就是维度;其次是粒度,我们说的时间维度是按照月,还是按照天?这是粒度差异;新增的渠道纬度,是新增的来源产品,还是来源的具体网址,这也是粒度的差异;通过基于这两方面的分组可以将对比的差异值逐级锁定,寻找原因。

对于用户的留存分析一般有两个大的分组方向:

  • 从用户的获取角度分组
  • 从用户的行为角度分组

第一种是从用户获取的角度分组

如果按获取的时间分( 粒度选择天或周或月,依赖于产品本身的使用频率,例如 IM 产品就适合按天看,而记事本等工具类产品就更适合按周看 ),我们就可以清晰的看到,各个时间段获取的用户在留存率表现上是不是稳定,例如上面第一个留存曲线中一个月的收敛是稳定现象,还是强烈波动平均后的结果。通过这个分析我们能圈定出流失用户做用户画像分析,并在流失率高的时间段进行干预。

同样是获取的角度,还可以通过渠道分。看不同渠道来的用户后续的留存情况。通过渠道维度的分析能够判定渠道的优劣,好的渠道可以加大投入,差的渠道可以选择淘汰。

第二种是从用户行为的角度分组

从用户行为角度分组对于功能比较复杂的产品也很重要。例如现在的浏览器产品,已经不单单是解决用户访问网页的需求,还向用户提供新闻、小说、视频服务,是一个内容的综合服务体。

从用户的角度来说,选择用一个浏览器来看小说,并不是说也一定会用他来看新闻、视频。所以同样是用户流失,他可能是对不同功能模块体验的不满。

这个时候,我们就可以通过用户行为这个角度分组来分析具体问题。例如在浏览器这个例子中,新闻、小说、视频都应该是每日活跃,且高留存比例的功能,如果分组中发现使用过某个功能的用户在之后的时间中留存情况很差,那就需要对这个功能做专项的优化了,相较于竞争对手有哪些方面做的不够好。

小结

Cohort Analysis 是一种简单成熟的分析方法,不但能够告诉我们用户在什么时候离开了我们的产品,而且能进一步告诉我们用户为什么离开,帮助我们找到优化产品的方法。

为了更好的使用 Cohort Analysis ,需要我们从一开始的数据打点和存储结构就做好准备。

“If you cannot measure it, you cannot improve it.”

 

作者:Shane;公号:勰门歪道( xmwd-666 )

本文由 @Shane 原创发布于人人都是产品经理。未经许可,禁止转载

]]>
taoCMS-基于php+sqlite最小巧的CMS 2020-06-18 17:06:31
1194 通过 WiFi 调试 ADB 分析 一、文档概述

本文档记录如何通过WiFi的模式开启adb调试模式。以便在不方便使用 USB 的情况下进行 ADB 调试。

二、原理解释

ADB 基本被分为三个部分,但是在我们接触的过程,默认 ADB 的使用模式为 C/S 架构即可。其中 Client 端的代表工具就是 adb, Server 端的代表工具就是 adbd。

其中常见的两种模式为 USB模式 和 WIFI 模式。

1、USB 模式

手机内部的 adbd 工具监控端口为5037。此时 USB 模式 PC 和手机是通过 5037 端口进行连接的。

usb模式监控

usb模式监控

2、WiFi 模式

手机内部的 adbd 工具监控端口为5555,此时 WiFi 模式 PC 和手机是通过 5555 端口进行连接的。

WiFi模式

WiFi模式

其中,5037 端口监听是默认打开的;5555 端口是需要手动打开的。

关于 5555 打开方式:

  • // adb shell 下面执行一下命令
  • setprop service.adb.tcp.port 5555
  • ps |grep adbd
  • kill -9 {adbd进程号}

或者:

  • adb tcpip 5555

关于第二种操作的解释:

adb使用介绍

adb使用介绍

其中的原理介绍:ADB 网络模式原理

以上操作的主要目的就是为了设置 “service.adb.tcp.port” 端口值。在adbd启动时首先检查是否设置了service.adb.tcp.port,如果设置了,就是使用TCP作为连接方式;如果没设置,就去检查是否有adb的USB设备(dev/android_adb),如果有就用USB作为连接方式;如果没有USB设备,则还是用TCP作为连接方式。

如果设置成功,则可以通过一下命令获取端口设置:

  • adb shell getprop service.adb.tcp.port

结果如下:

设置成功

设置成功

未设置端口的获取的结果如下:

未设置

未设置

经过以上准备工作就可以开始使用 WiFi 进程调试了。

三、操作方式

通过 USB 设置好端口之后,就可以通过 WiFi 连接了。

前提:PC 和 手机 需要可以ping通。

获取手机的 IP 地址,打开 WiFi 连接,查看详情就有手机在当前局域网的 IP 信息了。

通过命令连接:

  • adb connect xxx.xxx.xxx.xxx:5555

连接成功:

连接成功

连接成功

连接失败:

连接失败

连接失败

连接成功之后就可以使用常用的 ADB 命令了。

其中解除 WiFi 的连接方式,使用:

  • adb usb

执行之后,就会以 USB 模式重启 adbd 进程。

如果异常退出之后,无法正常退出,可以使用:

  • adb disconnect xxx.xxx.xxx.xxx

即可。

四、小结

虽然可以通过网络链接手机,但是限制比较多,整体来说个人设备还是比较安全的。

  • 1、获取目的设备的 IP 地址;
  • 2、必须允许调试:

USB 验证

USB 验证

利用此方式可以开发调试 OTG 模式。


https://xiaozhuanlan.com/topic/5301948762

]]>
taoCMS-基于php+sqlite最小巧的CMS 2020-06-09 14:06:26
1193 noVNC的使用之一

noVNC是一个HTML5 VNC客户端,采用HTML5 websockets、Canvas和JavaScript实现,noVNC被普遍应用于各大云计算、虚拟机控制面板中,比如OpenStack Dashboard 和 OpenNebula Sunstone 都用的是 noVNC. 前面说了 noVNC 采用 WebSockets 实现,但是目前大多数 VNC 服务器都不支持 WebSockets,所以 noVNC 是不能直接连接 VNC 服务器的,怎么办呢?这就需要一个代理来实现websockets和tcp sockets之间的转换,这个代理就是websockify。

vncserver安装和使用

vncserver是用来实现远程桌面连接的,比如说你由两台机器PC1:192.168.1.101和PC2:192.168.1.102,如果你想在PC1上访问PC2的桌面,就需要在PC2上安装vncserver,然后在PC1上通过vncviewer或noVNC访问PC2。下面以tigervnc-server为例来介绍一下vncserver的安装和使用。

安装

yum -y install tigervnc-server

安装完后,查看vncserver的配置文件:

[root@mycentos liushaolin]# rpm -qc tigervnc-server
/etc/sysconfig/vncservers

在该配置文件中可以修改vncserver的配置,比如远程桌面的sessionnumber,登录时的用户名,屏幕分辨率等等。

启动sncserver

vncserver
或
vncserver :n

这里的n就是sessionnumber,不指定的话默认为1,第一次启动时会提示输入密码,以后也可以使用vncpasswd命令修改密码。VNC的默认端口号是5900,而远程桌面连接端口号则是5900+n。如果使用“vncserver :1”命令启动VNC Server,那么端口应该是5901。

查看连接

vncserver -list[root@mycentos liushaolin]# vncserver -list

TigerVNC server sessions:

X DISPLAY #	PROCESS ID
:1		5918
:3		7726

删除连接

vncserver -kill :n

使用noVNC连接VNC server

noVNC的工作原理

noVNC提供一种在网页上通过html5的Canvas,访问机器上vncserver提供的vnc服务,需要做tcp到websocket的转化,才能在html5中显示出来。网页就是一个客户端,类似win下面的vncviewer,只是此时填的不是裸露的vnc服务的ip+port,而是由noVNC提供的websockets的代理,在noVNC代理服务器上要配置每个vnc服务,noVNC提供一个标识,去反向代理所配置的vnc服务。

noVNC的使用

假设我们在PC2上创建了一个VNC连接,sessionnumber是1,端口号为5901。noVNC可以和vncserver在一台机器上,也可以不在一台机器上。

简单用法

安装noVNC

$git clone https://github.com/kanaka/noVNC
$cd noVNC
$./utils/launch.sh --vnc localhost:5901

启动launch脚本,会输出如下信息:

WebSocket server settings:
  - Listen on :6080
  - Flash security policy server
  - Web server. Web root: /root/noVNC
  - No SSL/TLS support (no cert file)
  - proxying from :6080 to localhost:5901


Navigate to this URL:

    http://localhost:6080/vnc.html?host=localhost&port=6080

这时,访问http://localhost:6080/vnc.html?host=localhost&port=6080http://localhost:6080/vnc.html,然后输入Host地址,端口号,密码,token,其中密码和token有的话需要输入,然后连接即可。当然你可以从PC1的浏览器中输入PC2的IP地址访问。

整个流程大概是这样的:

vnc.html -> 192.168.1.102:6080(PC2) -> websockify.py -> localhost:5901

高级用法

使用websockify可以更改默认6080端口,使用token设置。

用法:./utils/websockify/websockify.py --web ./ 8787 localhost:5901

--web ./指定访问根目录,8787表示访问novnc的端口,localhost可以改成所有安装了vncserver的IP地址,比如:./utils/websockify/websockify.py --web ./ 8787 192.169.1.100:5901

使用token

为什么使用token?

我们上面的场景是基于noVNC代理和vncserver在同一台机器上的,倘若我们想通过noVNC访问局域网中的所有机器,难道要给每一台机器都安装配置noVNC,然后用每台机器的IP地址去访问它吗?显然这种做法是繁琐笨拙的。实际上,我们只需要一台机器作为noVNC代理,其他被访问的机器安装VNC server就可以了。如下图:

在上图中,我们用一台机器作为代理,IP:192.168.1.10,另外两台机器PC1:192.168.1.101和PC2:192.168.1.102上面安装vncserver,我们怎么通过代理去访问PC1和PC2呢?这就需要token大显身手了。

我们需要在代理机器上创建一个token配置文件,假设为/home/token/token.conf,文件内容为:

abc123: 192.168.1.101:5900
123abc: 192.168.1.102:5901

首先,在欲访问的机器上启动vncserver,执行命令vncserver即可。

然后,在代理机器上输入命令:./utils/websockify/websockify.py --web ./ --target-config=./token/token.conf 8787

接下来,访问192.168.1.10:8787/vnc.html,输入对应的token即可访问相应的机器了。

使用vnc_auto.html

在vnc_auto.html中写入noVNC代理的配置

host = "192.168.1.10";
port = 8787;
path = "websockify/?token=xxxxxx";

然后直接访问192.168.1.10:8787/vnc_auto.html即可连接。

问题排查

如果输入host地址,port之后,不能访问,查看密码是否正确,如果显示connection refused,查看被访问主机vncserver是否启动,如果未启动,执行vncserver

注意:使用noVNC每个系统桌面或者虚拟机每次只能有一个连接,如果连接时出现错误Server disconnected (code: 1000, reason: Target closed),也有可能是你已经连接了或者在virt-manager里面启动了虚拟机并进入了系统桌面。

]]>
taoCMS-基于php+sqlite最小巧的CMS 2020-05-28 03:05:28