iPic可以直接从MAC的App Store下载,如果你使用的Windows也不要紧,可以使用PicGo来替代(配置基本类似我就不详细展开来讲了)
安装完成iPic后,点击更多—偏好设置,即可打开设置页面,在图床里面,可以很方便的增加你使用的图床,以我使用的腾讯云COS为例,只需要配置Buckid、密钥和网址
同时点击网址前缀后面的…可以打开网址的详细设置,可以配置路径,文件名,以及后缀(后缀是COS基本通用的一些功能,用于图像的一些基本处理)
Typora的安装配置就比较简单了,直接去Typora的官网 https://typora.io/ 下载即可。
在偏好设置—图像中,可以选择插入图片时,自动上传图片,像我写这篇文章的时候,每次用截图软件截图,在Typora里面直接粘贴,就会自动按照iPic里面设置的规则来进行图片的自动上传并插入到粘贴的位置了。
当然,下面的“上传服务设定”里面,要选择iPic,然后点击“验证图片上传选项”,确认两者连通没有问题
Typora还有一个比较好的特性是支持很丰富的主题设置,比如我现在使用的就是跟我的博客主题Next配套,可以去Typora官网或者第三方下载相关主题,放到主题文件夹后,在这里切换即可。
目前基本的配置就是这些,利用好Typora+iPic+Hexo+Github&Action+腾讯COS+CDN,我的博客写作环境就完全搭建好了,本地协作完成后,直接Git提交,自动生成网站静态文件,自动上传到COS,自动刷新CDN缓存,一气呵成,快哉!
]]>根据Adguard Home官网介绍,Adguard Home可以被部署到几乎所有平台/移动设备上,这里我一般建议大家部署到路由器/独立的主机上,而不是直接部署到终端设备,这样可以一次部署让所有的设备都能使用,今天我选择了部署在一台腾讯云的ECS上,底层系统是Ubuntu。
部署方式非常简单,使用如下命令安装即可
1 | #安装snapd |
安装完成后,即可通过IP:3000来访问adguard home的后台了,首次打开Step by step完成简单设置即可。
常规设置基本无需更改,基本保持默认即可,一般情况下你也不会使用浏览安全和家长控制服务,保持过滤器的勾打上,一般24小时更新一次过滤器足够。
这个页面属于核心设置之一,我们的防污染的设置主要就依靠这个区域的来进行设置。一般来说,海外DNS防污染但是速度慢,国内DNS污染严重但是速度快,因此我们选择通过域名进行分流的方式来主动选择海外/国内的DNS进行解析,我这里选择的是把gfwlist的域名交给google的dot服务tls://dns.google,不在列表中的域名则交给dnspod的dot服务tls://dns.pub。通过 https://github.com/kpivy8/gfwlist2AdGuardHome 这个开源项目可以很方便的进行格式的转换,但是转换后会发现一个问题,那就是内容长度太长,直接复制到上游DNS服务器里面会报错,那怎么处理呢?
Adguard Home的开发者已经提前帮我们考虑到了这个问题,可以在AdGuardHome.yaml文件中,通过upstream_dns_file来指定导出的文件,我就使用了这个办法,所以在页面上是显示“配置路径dns.txt”,原因就是我把dns内容都写在了这个txt中。
Bootstrap DNS服务器简单来说就是把上述DNS列表中的域名转化为IP的服务器(比如dns.pub,dns.google),这里我直接使用了dnspod的119.29.29.29即可
在DNS服务配置中,由于是私人使用,所以速度限制可以直接改为0,另外把EDNS、DNSSEC和禁用IPV6勾上,EDNS可以让dns服务器返回最合适的IP给你(主要是面对CDN服务),DNSSEC可以帮你校验DNS的签名避免出错,IPV6的话,目前普及程度还比较一般,建议还是使用IPV4来进行访问。
DNS缓存配置就是把解析记录在Adguard Home进行缓存,避免同一个域名重复请求,这里保持默认即可。
加密设置就是让Adguard Home可以通过DoH、DoT和DoQuic(实验)来对外提供DNS解析服务,这些服务由于需要域名,因此也需要一张有效的SSL证书,把证书内容填写在对话框中即可
这里就是Adguard Home的广告过滤设置了,设置起来也非常简单,直接订阅CN的列表即可,其他不用改变。
经过如上设置,你就已经拥有一台私人的、去广告、无污染的DoH/DoT DNS服务器了,至于如何在你的终端上使用,下次我再详细介绍。
Umami基于Node开发,数据库支持MySQL或者Postgresql,因此你需要一台能够运行Node程序的服务器以及上述两种数据库之一,如果你有独立服务器那就非常简单,直接从源码下载安装即可
1 | git clone https://github.com/mikecao/umami.git |
当然,现在有很多免费的APP Hosting服务,例如Vercel、Netlify等,其实使用Vercel部署会更简单,我的统计服务就是部署在Vercel上,点击这里进行部署即可
部署过程中,你需要填写你的MySQL或者Postgresql数据库的地址,如果你是本地部署,则创建包含如下内容的env文件
1 | DATABASE_URL=数据库连接字符串 |
其中数据库连接字符串按照如下结构来填写
1 | postgresql://username:mypassword@localhost:5432/mydb |
并且,你需要提前对数据库进行初始化,直接用如下命令即可
1 | #MySQL |
如果是Vercel部署,则直接在环境变量中输入上述的内容,你的Verlcel服务就部署完毕了,本地部署可以通过localhost:3000进行访问,Vercel部署则通过绑定的域名进行访问,默认的用户名是admin,密码是Umami,进入后在后台右上角可以进行语言的选择,默认支持简体中文。
进入Umami后台,在设置——网站中,可以直接添加网站
网站添加完成后,点击网站旁的</>按钮即可获取统计代码
将上述统计代码添加到你网站,即可完成部署
部署完成后,刷新一下你的网站页面,即可在后台的“实时”页面下,看到你的事实访问记录了,非常简单&简洁!
基本上目前大部分家庭都已经实现了FTTH的光线入户的宽带接入方式,那必不可少的就是光猫设备,光猫一般大家都直接使用宽带运营商赠送的,这个基本使用问题也不大,但是有几个需要注意的点:
1.如果你的宽带接入速率超过100M但是小于1000M,那么你需要和运营商确认给你更换了千兆光猫,否则你的网速会被限制在100M
2.如果你的宽带接入速率大于等于1000M,最好的办法是找运营商更换万兆光猫,但是实际上绝大部分城市都不提供,则可以参考我上一篇文章的教程,合并多千兆网口实现突破千兆限制
3.一般情况下,都建议使用桥接的模式来让自己的路由器进行拨号,如果使用路由模式,一方面你如果接入二级路由,则暴露内网设备端口比较麻烦,其次是大部分地区在路由模式下还会限制终端设备数量,用桥接模式则不会受此限制,而且通常来说光猫路由性能较差,使用自己的路由器进行拨号的话,能够获得更好的网络性能
当然如果你的运营商提供的光猫性能实在太差,又不给你更换,那可以自行购买光猫进行替换,推荐购买华为MA5671,铁盒4千兆Lan口,稳定性非常不错。
路由器这部分,如果展开来讲可以分好多篇文章,但是总结下来其实就核心几个关键:
1.大部分家庭直接购买了无线路由器,鉴于目前大部分终端设备都已经支持Wifi6,为了获得更好的wifi性能,建议选购wifi6路由器
2.路由器不用刻意追求wifi速度,事实上绝大部分设备的天线数量有限,因此2400M左右的无线路由已经可以满足绝大部分家庭的诉求
3.如果你的房子面积比较大,可以考虑使用ac+ap或者mesh路由的方案,我个人建议是如果提前部署好了网线,那么尽量采用ac+ap的方案来进行,tp-link的方案其实就很不错,如果没有提前部署好网线,那么无线mesh也是一个选择,这个时候推荐Linksys的Velop系列
4.如果你有科学上网之类的诉求,那么一台可以刷OpenWRT固件的路由器会非常适合,具体教程网上比较多我就不详细介绍了
目前在我家里使用的方案,是使用软路由(运行在一台Gen10服务器上的的OpenWRT虚拟机)来作为网络入口,一方面实现了多Wan口的突破千兆的网速,一方面也实现了科学上网,无线部分使用了一台Linksys的E9450作为AP接入,带家里大约20+的无线设备完全没问题
这部分通常很多家庭都会忽略,因为绝大部分设备都用无线连接,加上路由器上本身就已经带了多个网口,相当于一个交换机,这部分就按需配置,我把我家的情况分享下:
1.Gen10上,我安装了一张双光口的网卡,其中一个光口作为OpenWRT的Lan口使用,一个光口作为Esxi的内部虚拟交换机,提供给虚拟机使用
2.使用一台Qnap的QSW-804-4C的万兆交换机作为核心交换机,Gen10的两个光口和群晖1621+(也购置了万兆网卡)的光口都接入到这台交换机上
3.由于电口数量不足,另使用一台水晶的千兆交换机,从万兆的电口接出,上面接入一些对于带宽不台敏感的设备,比如电视机顶盒等
这样的情况下,基本实现了家庭网络核心设备(包括Gen10、NAS、PC台式机)的万兆接入,也实现了其他设备(例如电视机顶盒)等的千兆有线接入
其实网络架构对于大部分家庭来说,从头到位一台无线路由器足够,但是随着智能设备的发展和带宽诉求的增加,合理的架构还是能够帮助你的家庭网络质量实现更进一步的提升,如果有这方面的相关问题,欢迎留言讨论。
]]>目前一般电信给的光猫虽然Lan口只有千兆,但是往往都有多个Lan口,虽然单口速度只有930M左右,但是我们可以通过bond绑定多个(通常2个就足够)Lan口的方案,来突破Lan口千兆的瓶颈,从而实现跑满1200M宽带的诉求。
1.你的路由器需要至少3个网口,且其中只要有一个网口具备2.5G或者万兆的速率以作为Lan口使用
2.你的路由器支持OpenWRT系统
3.光猫使用桥接的接入方式
刚好我使用HP的Gen10作为软路由,且插了一张PCI-E的万兆网卡,因此符合条件
1.首先给OpenWRT安装必要软件包,以启用bond的支持
1 | opkg update |
2.在自动启动脚本中增加如下配置,以便在开机时自动创建bond网卡
1 | vi /etc/rc.local |
需要添加的内容如下(添加至 exit 0之前),需要根据实际情况修改网卡名称(即下方的eth0和eth1为你的两张接到光猫上的千兆网卡)
1 | ip link add bond-wan type bond mode balance-rr #添加 bond 类型的虚拟接口 名称为 bond-wan |
3.修改 wan 接口的网卡为 bond-wan ,重启软路由后正常拨号即可
测速基本可以保持在1180M左右,已经超过千兆Lan口极限,绑定成功,而且相比于多播只有一个Wan IP地址,不会带来网站访问的问题。
实际下载也能轻松突破140M/s
如果你之前使用了Valine系统,那么数据迁移几乎是没有成本的,评论数据存储仍然推荐继续使用Leancloud,也无需做任何修改,我们要做的只是部署一个服务端来代替原先浏览器直接读写Leancloud的数据,改为由服务端来进行读写。
官方推荐使用Vercel进行部署,详细的教程在这里:https://waline.js.org/guide/get-started.html 我就不重复介绍了,只是Vercel毕竟在国外,我选择在云主机上直接使用Docker独立部署的方式,其实也非常简单,参考https://waline.js.org/guide/server/vps-deploy.html 即可快速完成部署,然后套了一个Nginx作为反向代理,负责实现https协议的访问。
至于效果么,直接点开评论区域就可以看到啦,有任何疑问欢迎随时沟通。
]]>办理过程也非常简单,访问 https://www.1888.com.mo/std/plan2020 ,填写相关资料后,就会收到电话核实相关信息,然后电话卡就会直接通过顺丰邮寄给你,收到卡后按照流程进行激活即可使用,通过微信公众号可以方便的使用支付宝/微信进行话费充值
插件在Curse可以进行下载,https://www.curseforge.com/wow/addons/simulationcraft ,插件的安装我就不多做介绍了,放到Interface/Addons文件夹下即可,然后进入游戏,输入/simc后,即可弹出对话框,复制其中所有的字符串,字符串里包含了你当前身上所有的装备以及背包中的所有装备信息,因此如果你有需要对比的装备,记得要放在背包,不要存在银行
打开https://www.raidbots.com/ 网站,选择“Top Gear”,并在下面的对话框中,粘贴刚才复制的字符串内容
粘贴后,网站会自动解析字符串,并展示当前身上的装备、天赋等信息,如下图所示
接下来,就可以选择对比方案了,例如我需要对比饰品的差别,我就可以在饰品位置选择我要加入对比的饰品,如下图所示,我想对比460切割器的DPS
选中460切割器的饰品后,就可以在下方看到ITERATIONS: 15,000 / 2,000,000 (3 COMBINATIONS),其中3 COMBINATIONS代表现在有3个方案对比(因为饰品有两个,当你增加1个后,两两组合就有三种不同的配装方案)
当然,我还可以选择不同的珠宝/附魔对比,在下图中选择珠宝/附魔,并勾选Replace Existing Gems/Enchants
也可以选择不同的艾泽利特精华、天赋进行对比,这里我就不一一介绍了,直接在页面上多选你需要对比的方案即可,需要注意的是,当你的对比项选择的越来越多,那么排列组合的数量会指数级增加,网站对于免费/付费用户有不同的限制,如果你的ITERATIONS超出了限制变成红色,那么可以一次少对比一些,比如先对比不同装备,再对比不同天赋等。
在Simulation Options里面,我们可以选择模拟方案,常用的模拟方案有两种,一种是纯单体,即Patchwerk,后面Boss数量建议不变选择1,然后可以选择战斗时长,其他选项不建议更改
目前Raidbots还支持模拟大秘境下的方案,更多考虑了小怪阶段的输出,我们可以在Fight Style里面选择Dungeon Slice(Beta),其他选项保持不变,就是模拟大秘境下的输出
然后点击底部的“Find Top Gear”,即可开始进行模拟,免费账户需要排队(通常几分钟也不会太久,我们稍作等待即可)
模拟运行完成后,即可看到类似下图的模拟结果
首先上半部分介绍了当前模拟组合下,最高DPS的最优配装、天赋、宝石等,其中和当前你装备有差异的地方会高亮显示,比如对我这个结果来说,我在天赋中对比了洪荒烈火和炸弹,我之前选择的炸弹,但是显然在纯单体战斗中,洪荒烈火DPS更高,因此建议我选择洪荒烈火
下半部分针对不同的方案,系统给出了方案间的DPS差异,其中Equipped这一行是当前你穿着的装备天赋,可以看到如果选择洪荒烈火+切割器+PVP饰品,可以增加43DPS,如果选择洪荒烈火,饰品不换是最优解,可以增加524DPS,当然还有比较差的,比如把PVP饰品如果换成切割器,那么DPS会降低1243
到这一步,相信大家已经有了一个初步的选择了,但是更多时候,模拟使用的是相对完美的输出手法进行的数据测算,有时候不同手法间的容错率也会有很大差别,因此也要考虑方案配装对于自己熟练度的把握,如果DPS差异并不大,但是一个是熟练的配装手法,一个比较陌生容易出错,那选择熟练手法的效果可能更好。
]]>Esxi支持在线更新,但是考虑到国内的网络环境,还是建议大家先把补丁包下载到本地,然后上传到Esxi的数据存储中进行更新,避免网络出错带来的问题。
官方补丁的下载地址是:https://my.vmware.com/group/vmware/patch#search ,在这里Procuct选择Esxi,然后选择你的大版本,点击Search,即可看到所有的补丁列表
点击右侧的Download即可下载,下载后上传到Esxi的数据存储中
1 | esxcli software vib install -d "/vmfs/volumes/datastore1/patch-directory/ESXi500-201111001.zip" |
其中,/vmfs/volumes/datastore1/patch-directory/ESXi500-201111001.zip是你下载的补丁包上传到数据存储中之后的路径
在第二步命令执行完成(一般需要一段时间,大概几分钟)后,即可看到执行的结果,然后重启服务器,即可完成更新。
]]>需要注意的是,如果你把主板的Sata控制器做了直通,那么意味着你的Esxi系统只能安装在U盘或者NVME硬盘上,如果你的Esxi系统的硬盘也刚好接在主板的Sata控制器上则无法直通。
在Esxi的Web界面,选择“主机”,然后选择“操作”–“服务”–“启用安全Shell(SSH)“即可开启SSH服务
1 | lspci -v | grep "Class 0106" -B 1 |
如果正常,应该可以看到类似如下的返回内容
1 | 0000:00:17.0 Mass storage controller SATA controller: Intel Corporation Sunrise Point-H AHCI Controller [vmhba0] |
这个就是你的主板的Sata控制器了,如果看到这个代表已经成功一半
使用编辑器(vim等)打开/etc/vmware/passthru.map,然后在文件的末尾增加如下内容
1 | # Intel Corporation Sunrise Point-H AHCI Controller |
其中,8086是PCIE设备的供应商ID,a102是PCIE设备的设备ID,这两个参数在第二步中获取,不要填写错误,d3d0和false则直接复制即可
重新引导服务器后,即可在硬件页面看到Sata控制器从灰色变成了黑色,只是这个时候直通是禁用的,点击菜单的“切换直通“,把设备改为直通,然后再次重启服务器即可
完成上述步骤后,即可在虚拟机中添加Sata控制器了,选择“添加其他设备”–“PCI设备“,然后选择直通的Sata控制器即可
阿里云OSS的每个存储空间称之为Bucket,首先我们要给博客创建一个Bucket,方法很简单,在阿里云对象存储的控制台上,点击“创建Bucket”即可,其中名称随意,地区可以选择离你较近的地区(其实无所谓,后续使用CDN加速,和地区关系不大),其中需要注意的就是读写权限,由于我们的网站是对外访问的,因此需要选择“公共读”,其他选项保持默认或者根据自身需要调整即可。
OSS Bucket默认是需要输入完整的URL路径才能进行访问的,因此我们需要开启Bucket的静态页面设置(相当于Rewrite),这样当我们访问 example.com 的时候,就会自动打开 example.com/index.html 的页面了,开启方式也很简单,在Bucket的基础设置-静态页面中,填写默认首页和默认404页面的文件名即可,同时也要开通子目录首页,这样当访问子目录的时候也会展示自目录下的index.html,文件404规则可以选择Redirect即可。
在之前的Netlify的方案里面,Netlify会自动监控Github仓库的变更,在变更后自动使用自己的NodeJS环境帮你编译生成好博客,并推送到它自己的CDN网络中,Github Action原理类似,但是功能更强大一些,只是配置起来也稍显繁琐。
首先,在仓库的Actions下面,选择创建你的Action Workflow
Workflow使用yml格式来书写,下面是编译博客的代码,可以参考我的备注了解详情
1 | name: CI #workflow的名字,这个自己取名即可 |
这部分单独拿出来讲,要把博客发布到阿里云的OSS,我们需要用Github Action自动推送文件到OSS中,首先要生成阿里云的access key和secret,用于鉴权,首先我们进入阿里云的账户Access Key管理页面,创建我们的Access Key
生成的Key,我们保存到Github的Secrets里面,之所以这么保存,是为了保护Key的安全,在workflow中直接调用,而不是明文写入,避免泄露风险。
然后我们在刚才的workflow中,增加如下代码
1 | - uses: manyuanrong/setup-ossutil@v1.0 #使用阿里云的ossutil工具 |
到了这一步,你的设置已经完成了,你可以尝试把hexo的本地目录直接push到你的Github仓库,然后点击Action的Tab,即可看到所有的任务执行情况
切换到阿里云的OSS文件夹,也能看到生成好的静态文件了,后续就只用绑定域名包括CDN即可,这部分教程很多,就不赘述了。
过去好多年时间我一直都是没有划分VLAN的,相信对于大多数家庭而言,甚至连支持划分VLAN的交换机都没有,那划分VLAN的意义到底在哪里,结合这些天的摸索,我总结了以下几点:
1.划分广播域:通常来说一个局域网内所有的机器都在一个广播域内,在一个交换机下,所有的设备在发送消息时,都是广播给所有局域网内的机器的,再由这些机器进行过滤筛选自己需要的数据,显然,当局域网内的机器比较多时,广播占据的交换带宽变高,用户带宽自然就变小了,因此通过划分VLAN可以把广播域划分开来,节省带宽,提升网络处理能力。
2.增强安全性:不同VLAN内的报文在传输时是相互隔离的,即一个VLAN内的用户不能和其它VLAN内的用户直接通信,必须通过路由器进行。目前家庭环境下接入网络的设备越来越多,其中相当一部分是常年不更新的智能家居设备,这些设备极易受到攻击,一旦发生问题,如果和家里的NAS等重要设备在一个域内,就有可能产生安全风险,因此给这些设备划分单独的VLAN很有必要。有的人会给访客单独划分VLAN,也可以避免访客访问家庭的核心数据。
3.单线复用:有的家庭弱电箱到电视只有一根网线,但是同时需要看IPTV和连网,通过VLAN可以方便的实现单线服用,两边都使用支持VLAN的交换机,通过这跟网线TRUNK,即可实现一根网线同时传输IPTV和互联网服务,互不干扰。
4.按需科学上网:这个估计是我的特别需求,我家并没有在主路由上直接部署科学上网服务(UDM-PRO也不支持),我在局域网内单独有一台机器部署了旁路的科学上网服务,但是如果直接在DHCP设置网关和DNS,这会导致所有机器都会通过旁路上网,如果不通过DHCP这又导致需要科学上网的机器要手动设置IP、网关和DNS。通过划分VLAN,可以给不同的VLAN开启不同的DHCP服务,把VLAN绑定到SSID后,即可实现家里多SSID,需要科学上网时只需要切换连接的wifi即可。
Unifi的VLAN设置和传统交换机略有差异,感觉把二层和三层的应用做了一层打包整合,对于用户来说显得非常方便,下面介绍下步骤:
在Unifi控制器的设置–网络中,可以很方便的创建网络,如上图所示,我们根据需要创建了一个给智能家居使用的VLAN网络,Vlan ID为10,并且为这个网络设置了 192.168.20.1/24的网段,在这个网段内设置了 192.168.20.6-192.168.20.254 的DHCP服务器,当然,在这一步中,如果需要实现刚才介绍中的按需科学上网,那么可以在这一步中DHCP域名服务器和DHCP网关IP的地址,把网关IP和DNS设置为你的旁路科学上网设备的IP,即可实现连接这个VLAN就自动使用旁路设备进行上网的需求。
完成网络创建后,在设置–配置管理–交换机端口中,即可看到刚才创建的网络配置
这一步非常简单,在设置–无线网络中,创建一个无线网络,其他配置按需设置即可,只需要注意上图中箭头所指的地方,在VLAN中勾选“使用VLAN”,并填入刚才在网络中设置的Vlan ID即可。
针对有线网络如果需要绑定VLAN的话,也非常方便,只需要在设备中找到你的交换机,在端口中,选择你需要配置VLAN的端口,点击“编辑”后,在“交换机端口配置”中选择你创建好的网络配置即可。
重复上述的步骤后,即可完成所有VLAN的创建,根据不同的SSID或者端口连接相应的设备后,在客户端中即可验证效果,可以看到所有的智能家居设备都连接在了iot网络上,并分配到了192.168.20开头的网段地址,其他设备则连接在了normal的常规网络上,并分配到了192.168.10开头的地址,VLAN之间测试并不能互通,完美实现了上述的1-4的需求。
Unifi的全家桶还有很多值得分享的内容,后续会专门抽空给大家做个介绍。
]]>Netlify是一家位于旧金山的云计算公司,为静态网站提供托管和无服务器后端服务。主要包含两大模块,一个是Netlify Build,从Git进行连续部署,集成了很多流行的部署脚本,另一个是Netlify Edge,类似于Cloudflare的CDN服务,提供部署完成后的页面的网络访问服务,而且支持与Let’s Encrypt的完全集成。我们通常使用免费方案即可完全满足个人博客的诉求。
下面介绍下如何使用Netlify和Github持续部署Hexo博客
本地安装Hexo博客非常简单,参考Hexo的官方网站 https://hexo.io/ ,安装Nodejs后,直接使用 npm install hexo-cli -g 的命令即可完成Hexo的安装,安装后使用如下的命令创建你的博客:
1 | $ hexo init <folder> |
创建完成后,即可开始你的博客创作了,这部分不属于今天的核心内容,大家可以参考Hexo的官方教程,地址在 https://hexo.io/zh-cn/docs/
Github是全球最大的代码托管服务平台,官网地址是 http://github.com/ ,注册一个账户后,即可创建自己的仓库。
这里需要注意的是,如果你不希望你的博客分支被其他人看到,你可以选择Private,这样别人就无法搜索/查看你的博客分支了,同时我们不要勾选和添加任何README以及gitignore文件,直接选择“Create repository“即可完成仓库的创建。
创建完成仓库后,我们需要把本地的Hexo目录Push到仓库的分支去,在你创建仓库时,默认已经有了master分支,这个时候,我们使用如下的命令
1 | $ cd <folder> |
通过上述步骤,你就完成了Hexo到Github的代码提交
这时候我们打开Netlify的官网 https://www.netlify.com/ ,注册一个账户,并进入创建站点的页面
这个时候选择Github并跳转到Github网站进行授权,授权之后,返回到Netlify的网页即可看到你的Github的仓库地址,此时选择好你上一步创建的仓库
选择仓库后,就会自动识别你的分支与代码,可以看到已经识别出了事Hexo的博客,会自动默认hexo generate的部署命令以及网站默认的public目录,这里我们不用做任何更改,点击“Deploy site”即可完成
此时博客就已经创建完成了,并且Netfily会自动监控你在Github的任何代码提交,一旦提交以后会自动拉取代码并开始重新部署你的博客。
当你部署完博客后,默认会分配一个 ****.netlify.com 的域名,此时你可以进入Site Settings,选择Domain management,并点击Add domain alias,即可绑定自己的域名,同时在域名的dns里面设置域名CNAME到默认的网站域名即可,在这个页面的下方可以看到HTTPS的选项,当你的域名完成解析以后,即可在这里启用HTTPS,Netlify会使用Let’s Encrypt自动给你的站点进行加密。
完成上述步骤后,就完成了Netlify和Github持续部署Hexo博客了,考虑到我目前主力使用Cloudflare的Pro版本比Netlify的速度更快,我在Netlify上只是做了一个博客的备份,可以通过 https://backup.jayshao.com/ 访问看看体验下速度。
]]>很多人使用Cloudflare除去方便之外,其实也看中了Cloudflare的免费的SSL,虽然现在Let’s Encrtpt的项目使得SSL证书已经基本普及,不过使用起来还是有一定的门槛,当然如果你想要快速使用,可以参考我之前的一片文章《Caddy,简单好用的Http服务器》,使用Caddy可以很方便的启动并自动维护你的Let’s Encrypt的证书。那么如果你想使用Cloudflare来加密HTTPS,有哪些需要注意的事项呢?
Cloudflare的SSL设置如下图所示,事实上,因为CDN的存在,所以SSL需要分为两部分,一部分是浏览器到Cloudflare CDN服务器的传输加密,一部分是Cloudflare CDN服务器到你网站服务器之间的数据传输。一般来说,如果选择Off,那你的网站全程都没有SSL加密,如果选择Flexible,那么Cloudflare CDN服务器到你网站服务器之间是明文传输,有可能存在一定的被监听风险,如果选择Full,则全程都是用SSL加密,但是并不校验网站服务器的证书有效性(所以当被中间人攻击时,仍然会有数据被监听的可能性),如果选择Full(strict),那么不仅全程都SSL加密,并且Cloudflare会验证网站服务器证书,需要是受信任的证书或者由Cloudflare签署的专门用于服务器上的证书。
加密这一段流量非常简单,你只需要在上面的SSL设置中,选择Off以外的其他选项,即可完成这一段的SSL加密,默认情况下,免费版本的Cloudflare提供Universal SSL证书,这类证书目前基本被大多数浏览器所信任,只是在证书名称上你看到的可能是sni.cloudflare.com的域名。如果你希望提升SSL证书的兼容性,那可以在SSL/TLS下的Edge Certificates菜单中,单独订购SSL证书,独立证书5美金一个月,订购之后,您的证书就会像下图一样属于独立域名证书,兼容性也会更好,当然,如果你有钱(例如有的企业需要OV甚至EV证书),那么你可以购买Enterprise Plan后,选择上传自己的证书,只是价格么就贵了。
加密这一段流量,就需要您在Nginx上做HTTPS的配置了,一般情况下,订购一个受信任的证书总是费钱的,Cloudflare建议你使用他们的Origin CA,证书周期15年且免费,使用方法也非常简单,首先在SSL/TLS的Origin Server菜单下,选择”Create Certificate“,创建一张证书,选择Cloudflare创建CSR即可,域名和时常一般不用更改,创建之后,即可保存证书和私钥,Nginx一般使用pem格式,因此把证书和私钥保存成cert.pem和key.pem两个文件,并上传到你的服务器上。
第二步,打开你的Nginx配置,加入如下的设置(假设你的证书都储存在/usr/local/nginx/conf/ssl/目录下)
1 | listen 443 ssl http2; |
保存并重启你的Nginx服务器后,在SSL/TLS下选择Full(strict)模式,即可完成Cloudflare CDN服务器到你网站服务器之间的加密了。
Authenticated Origin Pulls保证了客户端在获取你网站服务器的内容时,需要提交客户端证书验证,否则不允许访问,这个设置通常可以进一步防止你的服务器数据被非Cloudflare CDN服务器访问,当你的源站全站采用CDN后,可以打开这个选项进一步提升安全性,在打开之前,需要在Nginx上做如下配置:
1.下载Origin Pull证书:https://support.cloudflare.com/hc/zh-cn/article_attachments/360044928032/origin-pull-ca.pem ,并保存为origin-pull-ca.crt
2.在Nginx的配置中,加入如下两行配置(假设你的证书都储存在/usr/local/nginx/conf/ssl/目录下)
1 | ssl_client_certificate /usr/local/nginx/conf/ssl/origin-pull-ca.crt; |
3.重启Nginx,此时再访问你的网站,会出现400错误,那说明Nginx已经配置成功,这个时候去Cloudflare后台打开Authenticated Origin Pulls的开关,即可实现对源站内容的进一步保护
当然,终极策略,我们可以考虑在Nginx上,屏蔽一切非Cloudflare CDN服务器的访问,我们可以在 https://www.cloudflare.com/ips/ 看到所有Cloudflare使用的IP,我们可以在新建一个如下的cf.conf的配置,填写如下内容:
1 | # https://www.cloudflare.com/ips |
然后,我们在Nginx的配置下,增加如下配置
1 | include cf.conf; |
这样,所有非Nginx IP访问都会被拒绝,这样的话,整个源站的保护基本已经做到比较完善的程度了。
]]>既然说到ZIL和L2ARC是否该启用,首先需要先普及下这两个缓存在ZFS文件系统中到底起到什么作用:
首先看下官方文档中对于ZIL缓存的解释:
ZFS provides a write cache in RAM as well as a ZFS Intent Log (ZIL). The ZIL is a storage area that temporarily holds synchronous writes until they are written to the ZFS pool
不难看出,ZIL是针对同步写入的场景,把同步写入转换为异步写入,使得系统不必卡住等待写入完成,而从而提升系统整体的写入性能。因此只有当你的存储存在大量同步写入的场景时,通过低延迟的SSD等设备来缓存写入场景才能让ZIL明显的提升性能,官方建议在NFS over ESXi以及数据库应用等这类高同步写入场景中来使用ZIL,而且由于ZIL设备一旦出现问题会导致数据丢失,因此建议先针对SSD等设备做双盘镜像后再用于ZIL。
重点来了,在SMB、AFP和iSCSI这类我们常用的家庭NAS共享协议场景下,同步写入的场景是非常非常少的,因此使用ZIL并不能明显提升性能,因此,在家用场景下,官方并不建议我们使用专门的设备来启用ZIL。
既然写入缓存无用,那L2ARC这类读取缓存是否有必要呢?同样的我们先了解下什么是L2ARC
ZFS provides a read cache in RAM, known as the ARC, which reduces read latency. If an SSD is dedicated as a cache device, it is known as an L2ARC. Additional read data is cached here, which can increase random read performance.
ZFS默认使用内存来作为读取缓存,但是也可以把SSD作为二级缓存来进行使用,逻辑上来讲自然是设置二级缓存是好的,但是官方文档中,还存在如下一段描述:
L2ARC does not reduce the need for sufficient RAM. In fact, L2ARC needs RAM to function. If there is not enough RAM for a adequately-sized ARC, adding an L2ARC will not increase performance. Performance actually decreases in most cases, potentially causing system instability. RAM is always faster than disks, so always add as much RAM as possible before considering whether the system can benefit from an L2ARC device.
事实上,二级缓存需要依赖更大的内存来发挥作用,根据官方建议,针对小于32G的内存场景下,不推荐开启L2ARC缓存,并且L2ARC的缓存大小一般不能超过内存的10倍。
综上所述,针对家庭应用场景(比如想我这种用一台Gen8提供NAS服务的),一般来讲由于使用场景偏文件共享,系统内存一般也都不会超过32G,完全没有必要使用单独的SSD来启用ZIL和L2ARC,至于我这块SSD如何继续发光发热,我再想想办法吧~
]]>全屋Wifi覆盖,大体可以分为几种方法:1.使用多个独立的路由器,配置相同或者不同的SSID实现;2.使用AP+AC的方案,实现无线漫游;3.最新的Mesh路由方案。
方案1相对比较简单,可以利用当前的设备,只是不管是相同或者不同的SSID,终端设备都不会主动去选择信号更好的路由连接,走到不同的房间后,往往需要手动切换才能连接到更好的信号,目前采用的已经比较少。方案2的话是目前绝大多数企业采用的方案,特别是思科、华为、H3C这类企业级解决方案,非常稳定,不过价格相对来说也会高一些,虽然目前有TP-Link的平民方案,但是TP-Link并没有真正支持网络漫游,属于阉割版本,因此方案2相对适用于不差钱的别墅等特别多节点的场景使用。方案3是这两年的新兴产物,各大企业(Google、Amazon、Linksys等都推出了Mesh的组网路由),价格相对平民,针对中小户型信号稳定性和速度也不逊色于AP+AC,而且实施难度低,没有太多网络专业知识的人也能快速上手,因此成为了目前相对最为平衡的方案。今天要介绍的Amplifi HD就是基于Mesh的组网解决方案。
Mesh组网方案大体分为两种。
针对家庭装修时,网线埋的比较好的情况,我比较推荐使用有线回程的方案,即多个Mesh路由节点采用有线网络和终端路由器来连接,优点是信号传输更稳定、延迟低、速度快。这个方案下,我比较推荐购买的是Linksys的Velop套件,大促时大约一个节点价格在400-500元左右,根据户型不同,部署多个Velop节点即可。
如果装修时并没有预埋网线,或者像我家虽然埋了网线,但是位置不是特别好,不适合放一台设备在那边的场景,那Ubnt的Amplifi HD就是一个特别好的解决方案,即使是使用无线回程,即多个Mesh罗有节点采用无线网络互相连接,并和终端路由器通信,但是只要不要出现某个节点和所有节点间隔的太远,那么整体还是可以实现很好的无线性能。Amplifi HD单主机+2节点的套装大约售价在2800左右,比Velop的方案稍微一些。
Amplifi安装起来非常简单,主机的话和直接和路由器的Lan口对接即可,当然主机也能独立作为路由器使用,连接光猫可以实现PPPoE/DHCP的上网方式。节点的安装的话就更加方便了,直接找个三口插座,插上即可。
物理安装完成后,通过手机安装Amplifi的APP,即可直接对网络进行控制,默认情况下新的节点是不会加入到Mesh网络的,需要你在配置完主机后,把节点加入到你的网络中,这样系统就会自动建立连接,在APP内也可以方便的设置例如无线信道、加密方式等,非常方便。
实际使用体验的话,从测速来看,在主机附近的话,基本可以跑满300M的宽带,内网传输实际速率大约在500M-600M左右,如果是在节点附近,由于节点多一道无线传输的原因,实际连接速率大约在150M-200M左右,延迟非常稳定,在节点之间切换,基本不太会出现丢包的情况,实际在王者荣耀、魔兽世界这类延迟高敏感的网络游戏中,也很少出现卡顿的场景。
如果你有一些关于家里Wifi组网的问题,可以在评论中留言,我非常乐意回答~
]]>2018年的开头,去了一趟南极,经历了几十小时的飞行,经历了狂风巨浪的德雷克海峡,终于登上了这片纯净的土地,1984年200多名勇士为南极设立了第一所中国的科考站,我也算是南极科考的一份子了。南极有着无法形容的魅力,从未有人类攀登的2000米高的冰山,整片冰面的企鹅,海豹海狮。南极之后,再无远方。
2018年,工作发生了很大的变化,年初的时候还沉浸在天猫海外业务中不可自拔,每天都在琢磨如何让海外消费者更加方便的购买到天猫/淘宝上丰富的商品,4月的时候就突然来了一次组织变动,虽然在阿里价值观中就有一条是拥抱变化,公司呆了7年多时间也早已习惯了变化,但是这一次的突如其来还是有一些措手不及,没几天的交接时间,我就变成了天猫消费电子行业的产品,开始着手研究如何帮助消费电子行业的商家提升效率、消费者提升购物体验。
2018年,在这样的工作变化下,慢慢发现自己其实已经到了职业的天花板,在天猫这样成熟的产品体系下,我能负责的领域已经很难在产品层面有质的突破,组织架构又决定了我暂时也没有更好的机会来负责更大的地盘。依稀记得刚加入工作没多久的时候,有个前辈跟我说:要么你在这份工作上能够得到快速成长,要么你所负责的业务能够快速增长,否则你工作的价值就微乎其微了。因此在这样的背景下,下半年开始也逐步在寻找一些新的机会,恰逢熟悉的同事在阿里健康,聊过一番后,发现健康领域其实现在还是一片互联网相对空白的区域,因此8月底从集团辞职,9月4日正式加入了阿里健康,成为了医疗健康领域的一份子。
2018年,趁着年中的假期,也去了一趟英国,英国是美国之外,第二个让我愿意居住下来的地方,虽然英国烹饪一塌糊涂,只有满街的fish&chips,但是英国迷人的建筑、剑桥牛津的城府以及人与自然和谐的美景依旧让人不可自拔。努力工作,只为以后退休能在这样的地方安度晚年。
2018年,股市动荡,依稀记得5月的时候,阿里巴巴股价还在200美金以上,还在憧憬再熬一熬,准备在杭州再买一套改善型住房,结果中美贸易战打响,商人出身的特朗普根本不讲政治那一套,年年都及时套现的我今年押宝在了投资者大会,结果资产自此以后一路下跌,买房,可能要再等两年。
2018年,魔兽世界发布了8.0版本《争霸艾泽拉斯》,记得从2007年的9月开始到现在,历经了2.0-8.0这么多版本,无数次的AFK,但是看到新的CG依旧激动的像条狗,看NGA的帖子都会感动到眼泪哗哗,从来没有一个游戏可以像魔兽世界这般吸引我,一玩就是11年,打开账号重新开始,在繁忙的工作中还是硬生生抽出3天晚上参加公会Raid,并成功在12月1日晚上击杀了当前版本守关Boss史诗难度的戈霍恩,也算没有留下什么遗憾。
2018年又要过去了,年纪越大,时间过的越快,如果到了人生的终点,回看这一生,2018年,会不会留下点什么?
]]>首先要感谢Deserts Pan大神连夜制作了Disqus的数据迁移工具,经过测试数据迁移也非常简单。
更新:由于Deserts Pan的迁移工具相对开发时间较早,目前Valine已经支持的回复楼层等功能没有支持,非常感谢评论区的TaoSky根据最新的特性开发了新的数据迁移工具,大家可以尝试体验下,工具地址:https://valine.mou.science/
登陆到Disqus后台后,选择Export,即可导出站点下面所有的评论内容。
由于Valine使用LeanCloud来作为评论数据存储的平台,因此首先需要去LeanCloud注册一个账户,注册后在后台创建应用。
创建完成后,需要在应用的设置中,选择“应用KEY”,找到你的APP ID和APP KEY。
然后访问Pan大的Disqus2LeanCloud的后台,输入你刚才的APP ID和APP KEY,并上传你之前在Disqus后台导出的XML文件,点击开始,即可进行数据导入,视你的数据量大小,大约2分钟左右即可完成导入
完成后在LeanCloud后台即可看到导入的Disqus的评论数据了。
另外需要注意的是,这个导入的数据会有一个安全风险,需要手动把ACL的设置里面的权限改为所有人读,否则别人可以轻易删除掉你的站点的评论,这个问题已经提交给Pan大,后续优化掉。
完成数据导入后,需要配置下应用的Web安全域名,限制只有你的站点的域名才能对数据进行访问。
针对大多数Hexo的博客来说,已经内置了Valine的评论系统,点击这里可以查看到绝大多数Hexo的博客的启用办法,比如对于Hexo的Next的Theme来说,只需要在主题的Config文件里面,修改这一段即可:
1 | # Valine. |
把其中的APPID 和APP KEY修改为你对应的LeanCloud上面获取的内容即可。
对于任何第三方页面,也可以通过自己加入代码的方式来使用,样例代码如下所示:
1 | <!DOCTYPE html> |
好了,差不多了,如果你看到你的文章页面出现了如下图所示的评论框,那么恭喜你,你已装逼成功,赶紧去炫耀吧。
这个配置的含义就是,外网通过HTTPS协议访问5002端口的话,都转发到群辉本地的443端口,这样就实现了通过5002端口来访问群辉的DS Photo了。当然做完这一步以后,要记得在路由器上配置群辉5002端口的端口转发才可以。
]]>转籍的第一部就是先提档,这个步骤对于沪C的车辆来说也是最痛苦的一个过程,主要原因是绝大多数其他地方拍照提档基本是可以当天完成的,但是沪C就需要一周左右,这也意味着你在这一周内,没有车牌也没有临牌,车子只能停在车库不能移动。
提档需要的材料有行驶证、车辆登记证书、车主身份证,由于我是需要转入到浙A,因此还需要杭州的指标证书。提档之前需要把车辆的违章全部处理完成,并且如果你有任何外观改装的话,也需要一并恢复原厂。
车子开到上海,验车后即可回来,卸下拍照寄回上海后,就是漫长的等待过程,大概一周左右,车辆档案和30天的全国临牌就会寄过来,等待了一周车子终于可以重新上路了。
拿到档案后,即可前往杭州上牌了,外地车辆转入的上牌都是在石祥路汽车城进行,由于这里每天等待验车的特别的多,建议早上7点半左右就过去排队,这样差不多9点之前就可以完成排队验车。
验车完毕后,就可以去选号机上选择心仪的号牌了(更新,杭州目前已经采用了网上选号,更加方便),最后选完交钱,等待差不多30分钟左右,就可以拿到行驶证。
车牌由于需要制作,一般3个工作日左右,会寄到指定的地址,然后自己拧几颗螺丝就能搞定啦。
]]>