Category: Notes

逗比记事:怎么自己修VPS的网络配置错误,重置root密码,如果面板不能提供这个功能

自己弄错了,改错了网络设置,然后就保存并重启了。 果然上不去了。 机器是KVM,面板不能改root密码。 不求客服,自己解决:   KVM进去。Vultr的KVM是图形界面。。。而且默认不开root登陆。 我恰好还没有另一个低权限的我记得密码的可以登陆的东西。。 Guest是不成的。 这时,https://www.vultr.com/docs/boot-into-single-user-mode-reset-root-password  : 进入单用户模式: 重启,马上进KVM(这里是VNC),按Esc,进入GRUB引导菜单。 按e修改第一项。 找到内核行们也就是“linux /boot/”这行,在后面加 init=”/bin/bash” 。按Ctrl+X或者F10重启。 这样就可以进入一个root的CLI模式。 敲”mount -rw -o remount /”,挂载硬盘。 这样就可以nano掉错误的网络,并重启了。 需要改密码,直接passwd 修改。

翻译:使用带strongSwan的L2TP,即使是OpenVZ

      3 Comments on 翻译:使用带strongSwan的L2TP,即使是OpenVZ

译者注:希望你看英文不晕,否则请关掉吧。 yep, pretty strong swan 如果你想找一个全平台制霸,连路由器都不用刷的VPN,那基本上就是PPTP和L2TP+IPsec这两个中选了。因为安全和NAT穿越(以及GFW——Beining注)的问题,这年头不流行PPTP了。而L2TP的无用内容(overhead)有点多,而且还有个L2包的传输——这玩意有啥用啊。 挺奇怪,虽然IPsec很灵活,很成熟,网上却没有非L2TP的IPsec指南。黑喂狗。 深♂入IPsec 大体上,“所有的IPsec都是VPN”不大准确。IPsec不是为了VPN开发的,是为了签名并端到端发送加密IP数据的。IPsec在IP层的上面(OSI的第3层——网络层,相对于PPTP和L2TP的第二层——数据链路层  Beining注)和一般创建一个新的网络层,数据被路由到上面的VPN不同,IPsec只加密外部服务器和客户端的连接。神奇吧。 现代的IPsec使用这些东西: 认证头(AH),“保证被传输分组的完整性和可靠性”(wikipedia——Beining注)。这不仅仅加密数据,也包括包头,除了有些可变的东西,例如ToS和TTL。 封装安全载荷(ESP),“对分组提供了源可靠性、完整性和保密性的支持”。 安全关联(SA),“为了提供安全的通讯环境”。 因特网密钥交换(IKE/IKEv2),”归属于IPsec协议族之下,用以创建安全联结”。 AH和ESP都在IP头有自己的协议号。在大局域网要建成,满地都是内网IP的时候,这种东西更加常见。IPsec支持ESP包的UDP封装,可以内网穿越;AH不能和NAT共用。 IPsec有两种模式: 透明模式:签名IP头和数据(AH),或签名并加密数据(ESP)。不隐藏目标IP。在L2TP+IPsec中使用。 隧道模式:签名(AH)而且加密(ESP)整个包。 IKE协议允许你使用X.509证书,预共享密钥或者扩展认证协议(EAP)认证。二元认证也可以。 所有的现代桌面操作系统(Windows  Vista以及以后,OSX,Linux),移动系统(Android,iOS, Blackberry,甚至WP)以及一些路由器支持IPsec使用ESP的隧道模式,我们就用这个。 注意:是IPsec,不是那个Cisco IPsec。 Linux下的IPsec IPsec(AH/ESP, SA)在内核模式工作,只需要为客户端安装并设置IKE守护进程。虽然选择不少,但是只有两个还活跃:strongSwan和libreswan。第二个我不评价,没用过。(我也没用过——Beining注)第一个不错。而且,这个东西是唯一自带IPSec用户空间的,所以可以和OpenVZ的老内核一起用(这个东西的IPsec路由是坏的) OpenVZ的IPsec注释 OVZ可以开L2TP,但是路由有问题。可以加防火墙规则解决,但是问题是——不可能这么做。你需要用strongSwan用户IPsec空间,libIPsec。编译strongSwan时,加上… Read more »

记录:关于GPGMail编译的一个坑

      No Comments on 记录:关于GPGMail编译的一个坑

https://github.com/GPGTools/GPGMail 原来免费。和Mail.app整合很好。 现在这个东西收费了。很缺德。 编译很简单: Xcode啥的都准备好,包括python等一干环境。 git clone 后,make时会出错:

如果不是他故意埋的坑。。。。 解决办法: 在clone来的GPGMail目录运行:

如http://support.gpgtools.org/discussions/problems/24976-how-to-build-yosemite-branch 所示。 祝各位加密愉快。

摘抄:关于Python多进程,以及生产者-消费者模型

      1 Comment on 摘抄:关于Python多进程,以及生产者-消费者模型

http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/0013868323401155ceb3db1e2044f80b974b469eb06cb43000 多进程 461次阅读 要让Python程序实现多进程(multiprocessing),我们先了解操作系统的相关知识。 Unix/Linux操作系统提供了一个fork()系统调用,它非常特殊。普通的函数调用,调用一次,返回一次,但是fork()调用一次,返回两次,因为操作系统自动把当前进程(称为父进程)复制了一份(称为子进程),然后,分别在父进程和子进程内返回。 子进程永远返回0,而父进程返回子进程的ID。这样做的理由是,一个父进程可以fork出很多子进程,所以,父进程要记下每个子进程的ID,而子进程只需要调用getppid()就可以拿到父进程的ID。 Python的os模块封装了常见的系统调用,其中就包括fork,可以在Python程序中轻松创建子进程:

运行结果如下:

由于Windows没有fork调用,上面的代码在Windows上无法运行。由于Mac系统是基于BSD(Unix的一种)内核,所以,在Mac下运行是没有问题的,推荐大家用Mac学Python! 有了fork调用,一个进程在接到新任务时就可以复制出一个子进程来处理新任务,常见的Apache服务器就是由父进程监听端口,每当有新的http请求时,就fork出子进程来处理新的http请求。 multiprocessing 如果你打算编写多进程的服务程序,Unix/Linux无疑是正确的选择。由于Windows没有fork调用,难道在Windows上无法用Python编写多进程的程序? 由于Python是跨平台的,自然也应该提供一个跨平台的多进程支持。multiprocessing模块就是跨平台版本的多进程模块。 multiprocessing模块提供了一个Process类来代表一个进程对象,下面的例子演示了启动一个子进程并等待其结束:

执行结果如下:

创建子进程时,只需要传入一个执行函数和函数的参数,创建一个Process实例,用start()方法启动,这样创建进程比fork()还要简单。 join()方法可以等待子进程结束后再继续往下运行,通常用于进程间的同步。 Pool 如果要启动大量的子进程,可以用进程池的方式批量创建子进程:

执行结果如下:

代码解读: 对Pool对象调用join()方法会等待所有子进程执行完毕,调用join()之前必须先调用close(),调用close()之后就不能继续添加新的Process了。 请注意输出的结果,task 0,1,2,3是立刻执行的,而task… Read more »

为什么OpenVPN这么慢?(演义版本)

      7 Comments on 为什么OpenVPN这么慢?(演义版本)

翻译自:http://lowendtalk.com/discussion/40099/why-openvpn-is-so-slow-cool-story#latest 作者:ValdikSS 转载请注明原出处,本出处,以及翻译:cnbeining 我经常看见小白在网上问,为什么用OpenVPN连接两个网站的速度比链接速度慢的多,例如,2Mb/s的链接只有400Kb/s的速度,或者百兆只有20Mb/s的速度。有些人推荐将MTU调大到48000,有些人说应该调整mssfix,但是都不管用。有些人说OpenVPN就这样,老娘就这个速度。扯淡! 一点老黄历 2004年7月。当时发达国家一般家庭网速为256-1024kb/s,在发展中国家网速为56kb/s。Linux2.6.7刚刚发布,带有默认启动TCP窗口大小调节的2.6.8版本一个月前刚发布。OpenVPN已经活跃地开发了3年,即将发布2.0版本。 一名开发者想加入socket缓冲区的代码,估计是想统一各个系统的缓冲区大小。在Windows下,如果人工设置缓冲区大小,网络适配器的MTU会出错,最终是这个结果:

  技术层面 如果你用过OpenVPN,你肯定知道OpenVPN支持TCP和UDP。如果你手工设置TCP连接缓冲区大小到64 KB这么小,TCP 窗口大小调整算法不能将窗口大小调节到64K以上。什么意思?假如你的连接水管大但是延迟高,例如从美国到毛子,ping差不多100ms,用默认的OpenVPN设置,你的速度肯定不能高于5.12Mb/s。要50Mb/s的速度,缓冲区至少要640 KB。UDP因为没有窗口大小所以快点,但是也快不到哪去。 怎么破? 你已经猜到了,现在的OpenVPN还在用64 KB的默认缓冲区大小。怎么修?最好的办法是禁止OpenVPN设置自定义缓冲区大小。在服务器和客户端的配置文件加入:

  这样缓冲区大小就由操作系统控制了。对于Linux,这个固定值对于TCP是net.ipv4.tcp_rmem 和net.ipv4.tcp_wmem, UDP是net.core.rmem_default 和 net.core.wmem_default 两个值除2. 如果客户端配置文件不能修改,那么你需要从服务器推送更大的缓存大小:

  UDP和TCP不同,没有窗口大小这一说,虽然不是整个系统都需要。但是缓冲区过小也有可能降低速度。如果你把缓冲区调成0后还是慢,你应该要么在系统层面增加缓冲区大小(net.core.rmem_default 和… Read more »

小脚本:迅速AES加密文件/目录

      2 Comments on 小脚本:迅速AES加密文件/目录

需要srm: ./bash/profile:

参考: https://github.com/JElchison/encrypt-tool/blob/master/encrypt-tool.sh http://blog.extracheese.org/2010/05/the-tar-pipe.html https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man1/srm.1.html http://netsecurity.51cto.com/art/201301/378513.htm http://www.361way.com/openssl-encrypt-file/2692.html  

笔记:在LNMP下部署HHVM

      4 Comments on 笔记:在LNMP下部署HHVM

LNMP,http://lnmp.org/  ,是我目前看见的最方便的一键部署脚本。什么都不用担心,全傻瓜(bi)化操作。 但是,由于他几乎更换了所有的默认目录,HHVM会认不出这货。 网上所有的教程都是从0开始安装Nginx。这多不爽。 这里记录一下具体操作。 环境: Ubuntu 12.04 x64(<—-重要!x86不能安装,在这里浪费了两个小时) 1.准备环境,安装HHVM: Ubuntu有deb包,不必自己编译了。 具体列表看这里:https://github.com/facebook/hhvm/wiki/Prebuilt%20Packages%20for%20HHVM

最后你会看见:

2. 修改/usr/share/hhvm/install_fastcgi.sh 替换L187~220:

执行。 3.修改相关文件: 1) /usr/local/nginx/conf 将所有的vhosts都改成

2)修改~/vhosts.sh: 同样修改。 4.删除启动项: 停止php-fpm服务,删除/etc/init.d/ 里面的php-fpm,这样这东西就不自动启动了。… Read more »

详细纯小白向教程:如何使用Mailvelope对你的邮件进行签名和PGP加密(3个月,终于写完了。。)

更新: 我的中文翻译已经merge了,大家可以看中文了。 Beining       之前一直没有推荐Mailvelope。因为这货不能签名,所以一直使用GPGTools。 但是这东西必须和系统整合,所以携带不便。当然有个优点是可以一并加密文件。 现在Mailvelope支持了签名,而且进行了安全审计。所以开始推荐这个东西。 对于不方便使用软件的地方,Mailvelope是极其好用的工具。   以下都以Chrome举例,FF类似。 国产浏览器,安全软件绝对不推荐。     初级篇: 1.安装: https://www.mailvelope.com/ 去Chrome网上商店可以安装。 2.初次使用,设置密钥: 点Options。 如果你没有密钥: 创建密钥:   稍候就好了。 如果你已经有了密钥:   2. 加密邮件 0…. Read more »