近期折腾 tailscale 的一些心得 一、我的需求 最近自己装了一台高配台式机,打算当作自己的主力机器使用,笔记本电脑就作为一个移动 UI,工作都远程连到家里台式机使用。 为了满足这个需求,就需要 NAT 穿透,正好最近 mesh vpn 的概念很火,又看到 tailscale 正好对个人用户免费,于是就想试试看了。 二、TailScale 是什么 VPN 是什么? 虽然国人看到 VPN 第一反应应该是“翻墙”,但 VPN 最初应该也是最普遍的用途应该是用来做内网打通, 这也是其名字虚拟私有网络的用意,VPN 让你可以在公开的网络线路上建立一个私有的子网, 然后将所有接入的机器都分配一个私有的内网地址,让他们可以通过 VPN 的私有网络互联。 比如最常见的需求就是,公司有一个内网办公环境,当你外出办公时,也希望你的电脑能够接入办公网络。 因为外网的机器和内网的机器不能互联,所以一般会有一个中心服务器, 所有的子节点都和中心服务器相连,然后中心服务器转发所有的流量。 这样做的缺点显而易见,首先是中心服务器(hub)会成为瓶颈。 其次,某种极端情况下,如果节点 A 和 节点 B 距离非常近,但是都离 hub 很远, 这样就会导致非常高的延迟。 那么我们就会想,能不能让节点间直接互联呢? 这就是 mesh VPN,其实现就是 wireguard。 wireguard 的每一个节点都会存储其他所有节点的信息,并且和其他所有的节点都建立 tls 连接。 如果涉及到内网穿透的话,那么你需要找到一台处于网关位置的节点(内外网都可达),将其设置为 coordinator, 扮演类似于 hub 的角色, 分发穿透内外网的流量。 wireguard 的缺点在于: 配置比较繁琐 维护也比较困难,增删节点都需要改动所有节点的配置 基于上述这些痛点,tailscale 做了一些改进: 在原有的 ICE、STUN 等 UDP 协议外,实现了 DERP TCP 协议来实现 NAT 穿透 基于公网的 coordinator 服务器下发 ACL 和配置,实现节点动态更新 通过第三方(如 Google) SSO 服务生成用户和私钥,实现身份认证 简而言之,我们可以认为 tailscale 是更为易用版的、功能封装更为完善的 wireguard。 三、TailScale 能做到什么 只要你的机器可以连到公网,tailscale 可以让所有的... 阅读全文
Windows7系统目录迁移:Users,Program Files,ProgramData 微软设计了比如:我的文档、我的OOXX,之类的东西,在WIN7下面更连游戏、下载等等目录都设计好了,我也很乖巧的把各种文件都分门别类的放进去了。 同时也很厉害的设计在了“%HOMEDRIVE%”里面,各种的资料,这种软件的配置就全给放进去了 在XP的时候对于C盘的要求还不是那么大,但是在win7下就显的捉襟见肘了 再格式化,重装系统就全没了,囧,就也是必须移动出来的第二个理由 以前只是自己挪挪地儿,小改一下注册表,今天无意中参考了几篇文章,那搞的才是个全面啊,在膜拜只后就全给做笔记了,忽忽,先上牛人原文的 传送门 首先,不管你要怎么挪,请记住挪坏了我不会负责。其次,确定系统是刚刚安装好的,这样比较不会出现意外,也更有效优化,确定是用Administrator 登录。 移动Program Files目录到非系统盘 第一步,复制 Program Files 目录 不能直接用 资源管理器 复制,我们需要保留此目录的所有权限设置,(以前我就是直接在资源管理器面弄到,现在严重怀疑,我的机器时不时的抽风是不是和这个有关)假设要从C 盘移动到 D 盘: xcopy "C:\Program Files" "D:\Program Files\" /E /H /K /X /Y/C 第二步,修改注册表 Windows Registry Editor Version 5.00 [ HKEY_LOCAL_MACHINE \SOFTWARE\Microsoft\Windows\CurrentVersion ] "ProgramFilesDir" = "D:\\ProgramFiles" "CommonFilesDir" = "D:\\ProgramFiles\\Common Files" 第三步,重启 注意不是注销,因为 Program Files 里有很多文件是被系统服务使用的,注销并不能重启服务。 第四步,关闭 iphlpsvc 服务 因为它... 阅读全文
Mifare Classic card(M1)卡破解过程 一次偶然原因,在网上看到关于一些Mifare Classic card卡的破解文章,发现成本不是很高,并且门槛也不太高(本人笨得很,没觉得低)觉得很有意思,准备入坑一波。正好我寝室有饭卡、洗澡卡和直饮卡,爲啥不试一试呢,嘿嘿.说干就干! 于是乎就在网上各种收集资料,(本人懒得很,不想去图书馆查资料)首先我们得搞懂M1卡的内部结构是吧,不然无从下手啊,所以我们先从结构说起吧. 可能文章有点长,着急的话可以直接跳过前面三个点 1.M1卡的存储内部结构: M1卡分爲16个扇区,每个扇区对应4块(块0-块3),共64块,编号爲0-63.第0扇区的第0块用于存放厂商代码,已经固化无法更改。其馀区的第0-2块用于存放数据,块3爲控制块用于存放密码A、存取控制、密码B,结构如下: A0 A1 A2 A3 A4 A5 FF 07 80 69 B0 B1 B2 B3 B4 B5 (密码A 6字节) (存储控制 4字节) (密码B 6字节) 并且每个扇区块3中的密码和存储控制全部都是独立的,独立控制本扇区的各种操作,每个扇区都能实现不同的功能,所以广泛用作一卡通。存储控制里面4字节的具体含义我也不是很清楚(不影响我们破解),所以就不说出来误导大家了。 卡中每个块包含16字节,所以M1卡的容量=16扇区*4块*16字节=1024字节=1k (M1卡的由来)。 知道了M1卡的大致结构我们就可以开始进行破解了,我在此收集了几种常见的破解手段。 2.M1卡的破解原理: 1)暴力破解: 暴力破解是最简单粗暴、不需要多少技术含量的,就是比较费时,但这并不妨碍大家对它喜爱之情。因爲M1是被动卡,需要读卡器爲之供能,一旦读卡器切断电源,卡中临时数据就会丢失,所以无论试错多少次密码都不会被锁定。特别是一些厂商偷懒用弱密码,花不了多少时间就能破解。 2)克隆卡片: 这算是最简单又实用的方法了。因爲M1卡加密扇区里面保存着各种数据,所以可以克隆一张带有同样数据的克隆卡。这就会用到一种叫UID卡的特殊M1模拟卡。前面说过,每张卡在0... 阅读全文
Matomo API 官方接口详情 API接口 你可以通过调用Matomo的分析接口将数据集成到其他应用中去。这些数据包括访问数,页面网址、网页标题、用户设置、搜索引擎、关键词、推荐网站、用户浏览器 其中的请求参数和返回值需要对照官方手册来 未定义 ## API `未定义` ## Annotations `未定义` ## Contents `未定义` ## CoreAdminHome `未定义` ## CustomDimensions `未定义` ## CustomJsTracker `未定义` ## CustomVariables `未定义` ## DBStats `未定义` ## Dashboard `未定义` ## Events `未定义` ## Feedback `未定义` ## Goals `未定义` ## ImageGraph `未定义` ## LanguagesManager `未定义` ## Login `未定义` ## Marketplace `未定义` ## MobileMessaging `未定义` ## PagePerformance `未定义` ## Provider `未定义` ## SEO `未定义` ## SitesManager `未定义` ## TagManager `未定义` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 Actions 动作(行为) Actions.get 访客分析-概述-访客概览(右边一列) Actions.getPageUrls 行为-页面 Actions.getPageUrlsFollowingSiteSearch Actions.getPageTitlesFollowingSiteSearch Actions.getEntryPageUrls 行为-进入页面 Actions.getExitPageUrls 行为-退出页面 Actions.getPageUrl 行为-通过页面的PageUrl查看详情(获取单条记录) Actions.getPageTitles 行为-页面标题 Actions.getEntryPageTitles 行为-页面标题-进入页面标题 Actions.getExitPageTitles 行为-页... 阅读全文
领域驱动设计在优惠中心重构中的实践 前言 正如领域驱动设计之父 Eric Evans 所著一书的书名所述,领域驱动设计(Domain Driven Design)是一种软件核心复杂性应对之道。 在我们解决现实业务问题时,会面对非常复杂的业务逻辑。即使是同一个事物,在多个子业务单元下代表的意思也是不完全一样的。比如「商品」这个词,在商品详情页语境中,是指「商品基本信息」;在下单页语境中,是指「购买项」;而在物流页面语境中,又变成了「被运送的货物」。 DDD 的核心思想就是让正确的领域模型发挥作用。所谓「术业有专攻」,DDD 指导软件开发人员将不同的子业务单元划分为不同的子领域,在各个子领域内部分别对事物进行建模,来应对业务的复杂性。 一、重构优惠中心的背景 我们在实际的开发过程中都遇到过这种情况,最初因为业务逻辑比较单一,为了快速实现功能, 以及对成本、风险等因素的综合考虑,我们会为业务统一创建一个大的模型,各个模块都使用这同一个模型。但随着业务的发展,各子领域的逻辑越来越复杂,对这个大模型的修改就会变成一种灾难,有时明明是要改一个 A 子领域的逻辑,却莫名其妙影响到了 B 或者 C 子领域的线上功能。 优惠中心就是一个例子。优惠中心主要负责马蜂窝各业务线商品的优惠活动管理,以及计算不同用户的优惠结果。「商品管理」和「优惠管理」作为两个不同的业务单元,在初期被设计为共用一个商品模型,由商品模块统一管理。 出现的问题 随着业务的发展,优惠的形式不断推陈出新,业务形态逐渐多样,业务方的需求也越来越个性化,导致后期的优惠中心无论从功能上还是系统上都出现了一些具体的问题: 1. 功能上来说,不够灵活 优惠信息是作为商品信息的一个属性在商品管理模块配置的。比如为了引导用户使用 App 需要设置 A 类型优惠,就通过在商品信息的编辑页面增加一个 A 类型优惠配置项实现;如果某个商品的 A 类型优惠需要在 0:00 分生效,业务同学就必须在电脑前等到 0:00 更新商品信息来上线优惠活动。 另外,如果想要创建针对所有商品都适用的优惠,按照之前的模式,所有的商品都要设置一遍,这几乎是不可接受的。 2. 从系统层面看,不易扩展 优惠信息存储在商品信息中,优惠信息是通过商品管理模块的接口输出的。如果要新增一种优惠类型,商品信息相关的表就要增加字段,商品的表会越来越大;如果要迭代一个优惠的逻辑,就... 阅读全文
打造一个可国内访问的Blogger(Blogspot)方法 Blogger,一个干爽、免费的博客发布平台,作为主流的发布,提供免费的托管,免去了Typecho&Wordpress高昂的服务器费用,避免了Hexo&Jekyll静态博客无后台的缺陷,与CSDN、简书相比,可以绑定域名,界面干净,无广告【当然可以自己放自己的广告】。 实际上,当今写博客的软件数不胜数,主要分为一下三类: 服务器部署:典型代表:Wordpress\Typecho 无服务器托管:典型代表:Hexo\Jekyll\Gidea\Hugo\Hola等等 集成型网站:Blogger、简书、CSDN、cnblog、wodemo等等 上面所有软件,优缺点都有,具体看个人选择 当然,个人认为Typecho适合做个人博客,Hexo可以作为要求不高的人。集成性网站最主要的是只要安安心心写文章,不用管后端乱七八糟的代码。当然,最有问题的是大多数都不支持绑定域名,而且经常往网站上塞广告,自定义范围也不够。 接下来,我们扯扯集成博客中的一股清流:Blogger Blogger.com是由Pyra Labs公司创立,是目前全球用户数量最多的个人网志服务提供商。Pyra Labs和Blogger.com均被Google公司收购,成为其旗下的一项服务内容。 Blogger提供免费主机Blogspot.com存放博客,用户不必写任何代码或者安装服务器软件或脚本,通过所见即所得界面轻松地创建、发布、维护和修改自己的网志。 Blogger允许有经验的用户自行设计博客界面,其模板支持使用HTML和CSS进行编辑 实际上,由于Blogger托管于谷歌,写作域名 www.blogger.com 和托管域名 *.blogspot.com 均被MainLand所Ban。但是接下来来,我会讲讲如何打造一个能在国内大陆访问的Blogger 1. 注册Blogger 众所周知,请善用技术上网。 用谷歌账号登录 ( https://www.blogger.com ) ,没有?不是⑧不是吧不是扒,都0202年了,还不会去注册一个谷歌账号? 进入控制台,新建一个博客: 绑... 阅读全文
高可用用户中心设计 概述 我们公司现在的账户体系比较混乱,每个系统都有一套自己的账户体系,没有办法进行统一的账户管理,比如统计一个人在哪个系统有账号,这样操作是比较麻烦的,还有就是我们如何进行用户行为分析,最终综合用户的信息进行用户的画像。这些都是需要解决的问题。 常规的用户设计是统一账号和统一登录验证,统一注册等信息。但是结合我们公司的实际,发现这样的话我们的系统可能会出问题,我们无法屏蔽很多细节。我们的现状是: 系统需要向用户隐藏是同一个公司的这个事实。也就是说我们做了用户中心的设计,但是不能让用户感知这个系统的存在。也就是说多个系统之间的登录都是需要隔离的。离论上不能做统一账号的登录,但是可以做统一账号的验证。 同一个系统可能有多个马甲app,我想马甲app之间也需要登录隔离,虽然他们调用的是同一个后台系统,那么我们不得不面对一个问题,同一个用户同时下单的逻辑处理,需要后台做这种处理,否则就会出现严重的并发错误,而开发人员可能都没有注意到这个事实的存在,从而导致一些稀奇古怪的事情出现。 web端与app端应该是需要同时登录的,我们好像没有web的要求,但是好像有微信的web端的事情。假如我们有web端的登录,那么问题来了,我们要不要实现二维码登录web。目前看是可以先不实现的,但是作为设计考量我们不得不考虑这些。 第三方账户的登录,我们是通过手机号作为唯一标识,那么不太好实现第三方的登录注册。但是我们可以后期实现,如果实现第三方的登录注册,那么问题来了,我们的设计貌似不支持,需要改动,就是改掉手机作为唯一标识的问题,但是想想好像是不影响的,只要数据能插入问题就不大,因为没有手机号,这些用户是不能登录需要手机的app,但是有的系统可以做特殊处理,从而支持第三方账户的登录注册。但是这样做也有缺点,就是用户利用多种方式进行注册,也就是说我们不得不解决一个问题就是用户可能存在多个账户的可能性。加入用户有微信注册的账户,然后又用手机登录,绑定微信,这个时候我们可能需要去系统中用微信的unionId或者openId查找一下是否有用户,有就不能绑定,没有才能绑定。如果有我们可能也知道了这个人有重复号的可能性。这个可能需要在做的时候处理。 验证保密问题,公司居然都没有人提到这点。不过也对我们是通过手机号进行验证的。但是如果以后我们不在使用手机号,可能我们需要验证问题。还需要判断用户的活动记录... 阅读全文
群晖硬软件的的各种坑及解决方案 适用对象: 白群晖用户,不愿意折腾,对数据敏感性较强(装了很多家庭照片,文件,宝贵的**姐们); 不适用对象: 黑群用户,有些问题会涉及到硬件,由于黑群配置差异极大,很难找到原因;关于硬件推荐:本人与群晖无任何商业联系,因此不在此帖推荐任何硬件,只是以个人角度说一下使用过硬件的一些优缺点; 最后更新日期: 2021 年 9 月 2 日 (DSM 7.0 , 以群晖的牙膏性,这篇文章应该在未来2年都不会过时); 不折腾玩转群晖NAS的通用建议: 用企业级硬盘: 多花点钱买企业级硬盘,现在10-16T的企业级硬盘价格真的不贵,耐心搜索本版帖子就能找到靠谱商家的合适价格(2021 年9月差不多120块钱1T)。既然是用白群了,那就要知道群晖的是根据盘位费卖硬件的,尽量不要用普通硬盘,尤其是淘汰下来的N 年旧硬盘做 NAS,问题多多,每月都有人求助群晖“存储空间损毁”的问题。另外,NAS 盘,除了对静音有极致要求,现在也不推荐,不仅价格贵,性能低、还吃了好多亏(SMR红盘坏了好几块)。 加内存是性价比最高的性能提升方式: 群晖有一篇非常冷门的 文章 ,提到了RAID/网络/内存对性能的影响,简单的总结就是,8G->16G内存,性能可以提升 30%以上,16G->32G内存,写性能还能提升 30%。当然这个测试都是基于“旗舰级”硬件测试的,但对于家用机,200多块钱的内存升级仍是最有效的性能提升方式,推荐大家无脑堆到支持内存的上限。 RAID不是数据保险箱: **姐有价,数据无价,如果真的想要保护数据,仅靠NAS是不够的,RAID而是用来保证某硬盘损坏时候依然能提供相关服务,而不是用来保证数据不丢的。为了数据安全,切记使用 “3-2-1”法则 保证数据安全。否则接收开盘数据恢复价格1T=1k; 群晖机器的性价比计算方式是价格/盘位: 群晖各阶机型CPU性能差异不太明显,但后期扩充盘位费极贵。因此简单计算性价比的方式就是价格/盘位,从而能比较出 2、4、5、6、8 盘位机器的性价比。注意只关注主机有多少个盘位,不要把扩展 DX517 这种算进去,大部分家庭用户很难再去买一个 DX517 用于扩容,所以不要想着买两盘位的720+,想着未来在买一个 DX517做成7盘位,应该直接买1621+直接上到 6盘位。... 阅读全文
星际蜗牛安装黑裙(群晖)制作家用nas 说重点,群晖安装 选哪个型号哪个版本呢? 之前用的5.2版本功能不够多,docker装上去运行个迅雷,隔一段时间就卡死了。download station里的rss订阅时间长了也更新不了。同时考虑到同步办公文件,这次得找个稳定的版本安装。 网上流传一个ds3617的二合一版本,正好可以安装到固态上。装完以后开机显示的画面有乱码 ,虽然乱码不影响使用,可总感觉不够稳定,再加上第一次插上硬盘以后重启了下,发现硬盘损毁,更不敢用了。(现在回过头来发现,应该是我插上去的那块硬盘是从别的nas上拆下来的,系统不识别造成的吧 ) nas论坛上走一遭发现还是乖乖用优盘引导安装吧。 网上最多的是918、916、3617、3615四种型号,群晖版本一般是6.1.7、6.2、6.2.1,选来选去选了6.1.7版本的3615,网友说这个版本稳定运行几年了。希望它稳定运行到天荒地老 小白注解 : 群晖安装文件分两部分,引导文件和系统安装文件,黑群晖为啥黑就是引导文件是大神破解的。系统安装文件都是官方的,不用修改。 软件下载 逛坛子发现有两个好东西,一个是XPEnology多功能工具箱V1.2,软件长这样,首页就是引导文件 第二页是系统安装文件 需要用到的工具也都集成在里面了, 但是我从这里面下载下来的引导文件解压不了。于是找到了第二个神器——黑群晖工具获取器。 打开软件点下加载,然后依次选择型号,版本就全出来了。这里面也带了工具软件,不过我没用。用黑群晖工具获取器下引导文件挺快的,浏览器下载就行,但是系统安装文件就不行了,没速度 ,换迅雷就OK了。 我把引导文件、系统安装文件还有其他工具软件一起放网盘里,大家可以直接下载。 所有文件我都是上传的压缩包,解压以后使用 。 百度网盘链接 : 提取码:sle3 工具准备 一台电脑,一个独立的 显示器 、显示器与NAS的连接线,usb接口键盘。 上面的安装的时候需要,安装完就不用了。 找个闲置的64m优盘,没有的话大一点也可以,就是浪费容量而已。这个优盘以后一直要插nas上了 你们准备完了吗? OK,正式开始折腾 制作引导优盘 大致流程是 先记录优盘VID和PID 删除原优盘分区, 往优盘上写引导文件 修改引导文件。 首先,拿出64m的优盘,插电脑上,打开XPEnology多功能工具箱,去制作工具栏里找到ChipGenius, 打开,我装了360,... 阅读全文