更换SSL Certificates

鉴于众所周知的原因,一直想换个CA的证书,Let's Encrypt是一个很好的选择,免费!支持ACME protocol(Automatic Certificate Management Environment,全自动服务器身份验证协议)、支持ECC证书、使用简便,非常推荐!我要去给它捐赠,贡献点绵力。

获取证书我没有使用官方的方法,而是使用了acme.sh,比官方的脚本更加简便。另外还有一个类似的acme-tiny,有兴趣也可以看看。

1、获取脚本

git clone https://github.com/Neilpang/acme.sh

 

2、申请证书:我采用的DNS验证,操作完成后需要按提示设置DNS对应TXT的记录;ec-256表示ECC证书

acme.sh --issue --dns -d xxx.net -d www.xxx.net --keylength ec-256

 

3、生成证书:DNS生效后,就可以获取证书了;--ecc表示ECC证书

acme.sh --renew -d xxx.net -d www.xxx.net --ecc

 

4、最后把生成的cert key和full chain certs配置到Nginx中即可。

 

 

5、自动化更新:写个脚本定期执行下即可

acme.sh --renew -d xxx.net -d www.xxx.net --ecc
acme.sh --renew -d xxx.net -d www.xxx.net --force --ecc   #未到期强制更新

 

观察几个月,如无问题,就准备全站HTTPS了。

 

参考文章:《Let's Encrypt,免费好用的 HTTPS 证书》、《开始使用 ECC 证书

 

搭建自己的私有云服务

个人很多数据都是存放在360云盘,照片在百度云盘,最近各大网盘陆续倒下,感觉很有必要自己搭建一个私有的云服务,这样就不怕哪天数据回不来了。

 

常见的解决方案就是买家用NAS,群晖、QNAP都是名家,可是要掏不少银子,个人需要最低2盘位+2*4TB的RAID1组合,最少也需要4K。。。最后发现了这个:Seafile(海文云盘:安全、可靠、快速的企业文件云存储),社区版免费!试用下,可以满足我95%的需要,而且安装和使用都比较简便,剩下那5%主要是手机客户端不支持目录、文件的备份还有就是批量上传,其他几乎完美!这两点希望Seafile今后能优化下呀~~~!

 

翻出一台赛扬CPU的陈年笔记本,2G内存,300GB硬盘,装了CentOS和linux版本的Seafile服务端,大概还有290GB的空间可以存放文件,把日常除了照片以外的全部数据丢了上去,目前用了16GB。最后测试了一下功耗,峰值20W出头,一般10多W,一个月估计消耗10度电;一开始还考虑用HTPC Win7装个win版的服务端来用,测试了一下功率基本都在80W以上,还是笔记本省电呀。

 

不错!重要的是没有任何新的投入,陈年的东西也利用上了!

 

可以网页访问;

阅读全部

Buffalo WHR-G300N V2刷OpenWRT开双WAN

工作需要用到两个网络,一个是公网,一个是专网,日常很多资源都是通过公网访问,但是也有一些特定的资源需要使用专网,经常切换很不方便。

 

 

阅读全部

创见SSD遭遇X250死机

一台Lenovo ThinkPad X250,加了块创见 Transcend MTS400 128G NGFF的SSD固态硬盘,安装Win7 64位专业版,开始一切都好,后来发现开机后,一段时间不使用,鼠标能动,但是点击任何图标都没有反应,Ctrl+Alt+Del任务管理器都出不来,死机了。。。SSD的固件已经升级到厂家的最新版,貌似兼容问题。

 

折腾了几天,最后发现在BIOS设置里面把Intel Rapid Storage Technology / RST关闭后一切平静了!!! 有些情况可能还需要看看是否安装了相关的软件,在程序管理里面查找“快速存储技术”、“Rapid Storage Technology”或“RST”删除!

解决安装SSD的thinkpad笔记本Windows7登录慢问题

自己用的ThinkPad X230安装了SSD之后,启动速度很快,但是某天开始输入登录密码后进入到桌面的速度变慢了,有一个明显的停滞时间,无硬盘活动,最少10秒,有时甚至更长。一直以为是安装了某个软件造成的,还使出了Process Monitor的Boot Logging,找过几次也没有头绪。

好吧,灵光总在一瞬间,前几天突然想起,在Win7右下角的“搜索程序和文件”框里查找“rapid”,联想RapidBoot Shield出现在我的视野,打开,在界面上关闭了“启用 RapidBoot Shield”,一切恢复~!

解决WIN7下Capture NX、View NX和Windows 图片查看器都偏色的问题

本来一直好好的,有天突然发现Capture NX、View NX和Windows 图片查看器打开NEF和JPG都出现了色彩偏红的问题,用ACDSee等其他软件查看却都是好的。

查看Capture NX、View NX两个软件的配置中的色彩管理,都选择了sRGB IEC61966-2.1,并且勾选了“用此代替嵌入的配置文件”,奇了怪。

想到Windows 图片查看器也偏色,就进入 控制面板>外观和个性化>显示>屏幕分辨率>高级设置>颜色管理,在弹出界面中选择颜色管理>高级>校准显示器,按照提示重新进行一次矫正,其实整个过程基本就没有任何改变,保存后发现所有软件的偏红都消失了。

只能认为Windows抽风了,配置乱了。。。

解决SSD固态硬盘在WIN7的体验指数(WEI,Windows Experience Index score)测试中主硬盘项得分低的问题

X230笔记本加了块Plextor PX-128M6M SSD固态硬盘,虽然X230的msata只能发挥SATA2 3G的威力,但是实际用起来还是感觉提升非常大,Plextor的4K性能还是挺不错的,超过正在用的三星840。原来重启动到进入桌面可以随意操作基本需要3-4分钟,现在30秒!



可是WIN7的体验指数WEI测试中,硬盘依然是最低分,永远是5.9分。常见的优化都已经做过了,开启AHCI、4K对齐、关闭索引和预读取、开启TRIM等等都做过了,可是分数就是定定的5.9!?

中文网站搜了半天没解决,最后在国外发现个帖子http://franktovar.de/2011/09/26/about-the-windows-experience-index-score/,说的是因为WEI的WinSAT工具在硬盘测试中必须要分配一定的连续磁盘空间才能完成,一查C:\Windows\Performance\WinSAT\DataStore下面的Disk.Assessment的xml日志,其中果然有“<Responsiveness Reason="UnableToAssess" Kind="Cap">TRUE</Responsiveness>”的记录,解决方法是进行磁盘碎片整理,老外推荐用UltraDefrag整理。

照着做,然后执行“winsat disk -scen 2009 -drive C:”,发现依然出错。。。后来认真看了C:\Windows\Performance\WinSAT\winsat.log,发现现在的错误是“storage\diskprof.cpp:2324: Unable to open temporary file.  Largest available contiguous space was: 4096MB”,磁盘空间是够了,但是打不开临时文件?!

突然想到我用了RAMDisk,虚拟了2GB的内存作为临时磁盘,把系统的TEMP目录都junction到里面去了,曾经就发现过360云盘的同步版在这种情况下安装后,文件管理器里面“计算机\360云盘同步版”上面的管理条就是出不来,因为程序也是使用TEMP目录资源出错,导致安装不完整造成。

于是C盘建个TEMP2目录,修改环境变量,重启,测试成功,硬盘指数到7.8!

如何获得国内的IP地址段?

这里有权威数据:http://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-latest

中国区还可以区分CN、HK和TW

『转』Thinkpad电源管理器在Win7下无法启动的解决方法

故障现象:
Win7下启动Thinkpad电源管理器后,停留在启动界面,不显示程序界面。
补充:其实不光电源管理器,其他的FingerPrint指纹管理器、Access Connection等都可能会出现,打开任务管理器发现CPU中一个核占用率全满

解决方法:
1、控制面板-管理工具-服务,找到显示名称为“Windows Presentation Foundation Font Cache 3.0.0.0”的服务,将其停止。
2、删除文件,“C:\Windows\ServiceProfiles\LocalService\AppData\Local\FontCache3.0.0.0.dat”
3、启动“Windows Presentation Foundation Font Cache 3.0.0.0”服务。重新启动Thinkpad电源管理器,

微软对“Windows Presentation Foundation Font Cache 3.0.0.0”描述如下:通过缓存常用的字体数据来优化 Windows Presentation Foundation (WPF) 应用程序的性能。WPF 应用程序将启动此服务(如果尚未启动)。可以禁用此服务,尽管这样做会降低 WPF 应用程序的性能。

原文地址:http://thinkbbs.lenovo.com.cn/forum.php?mod=viewthread&tid=50057

如何高效的进行大数据量比对

最近讨论到一个问题:
A、B两个文本文件里面都有手机号,A文件是千万甚至上亿行,B文件是上百万行,如何高效的将A文件手机号存在于B文件中有的提取出来?

比较常见的答案:
1、将文件导入数据库,用一条SQL解决,类似select * from A where num in (select distinct num from B)
2、将B文件号码按条取出,通过类似grep脚本逐个过滤A文件

这些由于涉及数据的导入导出、数据库查询机制、文件的多次遍历因素的影响,都不是最佳方案。


要想效率到极致,主要考虑两个方面:
1、A和B文件只能遍历一次
2、查询号码是否存在的效率一定要高,且复杂度应该为常数,而不是线性甚至指数


记得很久之前,在网上看到一篇文章介绍google在GMAIL中如何解决海量垃圾邮件名单的问题,大致是初始化一个很大的文件,将邮件地址摘要化(例如MD5),使用摘要作为文件偏移量,在文件对应位置写入标识,用一个bit代表一个邮件地址;查询的话也是先计算摘要,再通过摘要直接读取文件对应文字看有否标识,这样的话就解决了每次可以快速查询邮件列表是否是黑名单,且查询复杂度为常数;如果不同的邮件地址出现了相同的摘要会出现误判(虽然这个概率很低很低),但误判的邮件地址用户发现后可以选择加入白名单,白名单的数量从理论上来说就是很少很少的,查询效率有保障。


基于这个思路,我们可以考虑使用手机号码作为偏移量,直接在文件或内存中建立一个结构;现在号段是13、14、15、18,号码最大差值是6*10^9,如果用1 bit代表一个号码,只需要6*10^9 / 1024 / 1024 / 8 = 716MB,放在内存里面也不多,比磁盘效率高百倍!再来,还可以按1x号段来建立多个标识串,比如13、14、15、18分别1个,就只需要大概477MB内存;甚至还可以细分到1XX号段。


软硬件环境:Lenovo X230,i5-3320M CPU@2.6GHz,12GB RAM,日立7200转500G缓存32M硬盘(HTS725050A7E630),64位WIN7
开发环境:Microsoft Visual Studio 2008,C++,64位编译
测试文件:A文件有3000万手机号码,380MB;B文件有150万手机号码,19MB;随机产生的,可能有少量重复
测试结果(DEBUG模式):内存消耗约750MB;遍历B文件初始化数据结构耗时2秒;遍历A文件中B文件有的号码,保存到C文件耗时42秒,大小约196K,有1万5千多个号码。


一次遍历和高效查询,确保了结果也是很高效的!

测试代码猛击这里下载