Sep 26
二选一应该就行了:

(1) 客户端:修改/etc/ssh/ssh_config ,

    增加ServerAliveInterval 15,这样客户端会在空闲时每15s给Server发送一个null包

    增加ServerAliveCountMax 3 (默认值就是3),如果连续3次null包没有收到回应就会断开连接

(2) [类似地] 服务端:修改/etc/ssh/sshd_config,

    增加ClientAliveInterval 15,这样服务端会在空闲时每15s给Client发送一个null包。

    增加ClientAliveCountMax 3 (默认值就是3),如果连续3次null包没有收到回应就会断开连接

详情可以 man ssh_config 或者 man sshd_config 查看。
Jul 2

DIY一个虚拟现实设备 不指定

felix021 @ 2014-7-2 16:30 [杂碎] 评论(0) , 引用(0) , 阅读(3064) | Via 本站原创
UPDATE@9.24 在淘宝上弄了个Google Cardboard的国内山寨版,效果不是很好,一个是焦距调得不好,我得带上眼镜才能看,另一个是瞳距好像不太对,看着容易晕。还是自己DIY的用着舒服啊。等暴风魔镜正式版出来以后可以再弄个来试试看。

Oculus Rift DK2自从3月发布以来,大家都翘首以待,今天终于确定了,7月发货1w台,比预期的少,后下订单的估计有得等了。想起去年ChinaJoy在Intel展区体验了一下1代的Oculus Rift,演示程序是RiftCoaster,就是那个经典的过山车,回想起来还是很带感。这么火爆的设备,估计在今年的ChinaJoy也可以体验到,真是令人相当期待。在这等待的时间里,还是可以做点其他事情的,比如DIY一个属于自己的虚拟现实设备。

网上早就在流传把诸如小米3之类的手机改造成VR设备,之前也有了解过,看起来貌似很复杂的样子;直到前几天GOOGLE I/O大会,发布了一个Cardboard,然后到Oculus Rift贴吧里看了一下,发现有些网友的自制设备可寒酸了,就是拿了个纸盒子打孔,固定手机和透镜就行,才意识到其实自己DIY一个也很简单的,手机可以作为显示屏,自己手头有瓦楞纸(就是快递用纸箱的那种纸皮)、宽胶带、小刀、剪刀、尺子,唯一缺少的材料就是一对合适的凸透镜——求助万能的淘宝就行了。
Jun 15
挺早之前就有设想过这样一个Python模块,基于共享内存(Linux下的mmap)的哈希表实现,使得多个Python进程之间可以方便地共享一些数据。

某天心血来潮,花了几个小时居然写出来了,然后花了两天时间陆陆续续修补完善。

由于偷懒,没有做信号量/锁之类的东西,所以只适合一些简单的场景。

性能还凑合,但是没经过正经的测试和实际使用,仅供参考。

pypi页:https://pypi.python.org/pypi/pyshmht

Github:https://github.com/felix021/pyshmht
May 30

量子效应代码 不指定

felix021 @ 2014-5-30 16:47 [IT » Python] 评论(1) , 引用(0) , 阅读(3421) | Via 本站原创
好久没写Blog了,今天来发一段带有量子效应的冷代码。

我们知道在杨氏双缝实验里面,观测与否会导致迥异的实验结果——即使是在电子通过双缝以后再观测也一样。

这段代码也有类似的效应:相信你注意到了,第6/7行被我注释掉了。你可以理解吗?是否注释这两行,会导致第5行print的结果不同哟。
a = 1

def foo():
    locals().update(globals())
    print locals()
    #print a
    #a += 1

foo()
Apr 15

为SSH添加两步验证 不指定

felix021 @ 2014-4-15 21:42 [IT » 网络] 评论(2) , 引用(0) , 阅读(5612) | Via 本站原创
今天从@Zavior同学那里听说了Google的开源项目Google Authenticator,它除了为Google帐号的两步验证功能提供了对应的app(安卓/iOS/黑莓)之外,还将这个功能开放出来、配套一个PAM模块,使得将两步验证功能代入ssh变得非常简单,回想起以前在B公司实习时用的那个硬件token,那真是又贵又麻烦。

步骤非常简单:

注意:如果是远程操作,请先开启一个应急连接,万一失败了还有救……

0. 安装对应的app,详见项目主页

1. 编译安装(@ubuntu)

$ sudo apt-get install libpam0g-dev libqrencode3 libtool
$ git clone https://github.com/google/google-authenticator.git
$ cd google-authenticator/libpam
$ ./bootstrap.sh && ./configure
$ make && sudo make install

[update@2016-01-04] 不知道从哪个版本开始,在ubuntu下,make install不会把pam模块拷贝到指定地点,需要手工操作:
$ sudo cp .libs/pam_google_authenticator.so /lib/security/

2. 配置openssh

$ sudo vi /etc/pam.d/sshd
  #最上方加一行 "auth required pam_google_authenticator.so"
  #这个配置可以更复杂一些,加上一些参数,详见 libpam/README
  #注:如果遇到仍然需要输入密码的情况,改成 "auth sufficient pam_google_authenticator.so" 试试。

$ sudo vi /etc/ssh/sshd_config
  #将 ChallengeResponseAuthentication 选项的 no 改成 yes
$ sudo /etc/init.d/ssh restart

3. 生成密钥

$ google-authenticator    #注:运行这个命令的是需要登录的用户,不是root用户
Do you want authentication tokens to be time-based (y/n) y  (确认:基于时间的认证token)
【这里会显示生成二维码的地址、二维码、密钥明文、应急码】
Do you want me to update your "/var/www/.google_authenticator" file (y/n) y (确认:更新配置文件)
......
size of 1:30min to about 4min. Do you want to do so (y/n) n (token有效期是1.5min,选y就是4min)
......
Do you want to enable rate-limiting (y/n) y (30s内只允许尝试三次)

4. 在app里扫二维码,或者手动输入密钥,即可看到token每隔30s更新一次了

5. 尝试登录
$ ssh localhost
verification code: 【输入验证码】
password: 【输入密码】


最后,提醒一下使用SecureCRT的同学,你需要在Session Options -> Connection -> SSH2,将Authentication中只选用 "Keyboard Interactive" ,否则没法正常登录。
Mar 12

mixo进阶 不指定

felix021 @ 2014-3-12 12:30 [IT » 网络] 评论(0) , 引用(0) , 阅读(2618) | Via 本站原创
去年8月份发布的 MIXO 翻墙代理好像有时候会遭遇被RESET的情况,最近又弃用chrome,改用firefox翻墙,发现似乎翻墙变得很困难了,于是倒腾了一番,找到一个凑活的解决方案:

a) 忽略所有的reset包

    参照 www.cl.cam.ac.uk/~rnc1/ignoring.pdf 设置了iptables

    iptables -A INPUT -p tcp --tcp-flags RST RST -j DROP

    p.s. 客户端和服务器端都要加上

b) 设置远端dns解析

  firefox地址栏打开 about:config ,把 network.proxy.socks_remote_dns

然后使用firefox翻墙就毫无压力啦。
Jan 22
本系列的上一篇已经是两年多前的事情了……

当时那个版本一直用到今天,已经有点勉强了,主要是基于XP的PE不能识别这两年新出的主板SATA(比如现在这块B85),很蛋疼,得先到BIOS里改成IDE模式再进PE才能操作磁盘。于是今天找了下小聪同学的TonPE,发现也已经物是人非,TonPE已经出售,风格大变,也不太好用了(安装包里的关键文件都用密码加密了,至于吗),哎,后妈就是不一样啊。幸好万能的互联网保存了早先发布的版本,于是找到了基于Win7的PE,Ton7PE_V3.3(基于Win8的Ton8PE_V4.0也能找到,但是在VBox里测试有问题,所以就没用它)。V3.3这个版本做得很赞,不仅能识别SATA,连USB3接口都能识别,而且所有文件都打包到一个WIM里头,不需要像上次那样做一些蛋疼的改动就能用。

装到U盘第二个分区的好处如上一篇所说:1. 跟U盘的正常数据区分开来,不会误删,甚至格式化U盘分区都无所谓;2. PE是单独的分区,而且永远不会被Windows载入,不用担心病毒感染;3. (相比于量产+ISO的U盘)在资源管理器里不会显示多余的分区。

具体的操作流程如下:

1. 用Disk Genius给U盘最后留下90M的空间,格式化成FAT16分区,激活该分区(即设置启动标志)

2. 用Disk Genius把TonPE_V3.3.iso里的内容导入(新版是在邮件菜单中选择“复制文件到当前分区”)到该分区(在分区参数右边有个“浏览文件”的TAB),或者可以在Linux下挂载后拷贝进去

3. 用BOOTICE.exe修改第二个分区的引导记录为“BOOTMGR引导程序”

然后就可以用这个U盘启动啦。

上面涉及到的所有工具/文件都放在这里啦: http://pan.baidu.com/s/1qW4PogW ,包括最原始的安装文件。
Jan 5
UPDATE@2014.02.19 升级到windows8.1以后似乎一切都正常了,买了个start8,慢慢习惯不习惯的地方吧……

最近给机器升级了CPU(i5 4570s)和主板(ASRock B85M-Pro4,C2步进),然后经常出现机器卡死的情况(一天一次的频率),有时候等上一两分钟还能活过来,有时候不行。事后查看windows事件查看器,没发现什么异常的地方。

升级之后的另一个蛋疼问题是,手头这块PLU ML-G3000青轴在打字的时候偶尔会出现几个随机按键(有次还“随机”到直接关机了)。频率也是一天1~2次的样子。前两天把键盘换成以前的Dell 8115以后暂时没有再出现,可能是键盘自己有点问题。

升级之前是AMD X3 450 + GigaByte 880GM-USB3,机箱内其他配件都没动(海盗船DDR3.1600[4G×2]、日立1TB、三星830.64G、TT XP420),升级之前系统相当正常,使用了2年几乎没遇到什么问题,用得挺爽的,平时中度使用,VBox虚拟机也常驻后台,机器是长期不关机,晚上都让它待机。

先怀疑是待机有问题(8系列主板C1步进的那个BUG也跟睡眠有关,但是我的主板是C2步进),这几天都没有用睡眠,但还是出现卡死的情况。

又怀疑硬盘出了问题,用HDTune的错误扫描把SSD和HDD都扫了一遍,全都是绿块很正常。

So,暂时不知道还可以做些什么,求建议。


== UPDATE@2014-01-05 23:59 ==
有人说可能跟Intel Rapid Storage Technology(就是Intel的SATA AHCI驱动)有关,在AS SSD Benchmark里面显示是iaStor,卸掉后变成了msahci(微软的驱动),但是刚刚还是假死了十几秒(然后恢复了)。

看到有人说到Windows 7 的这个BUG: “当你将磁盘设备使用的SATA模式更改为AHCI标准后,使用Windows 7和Server 2008 R2的计算机或某些应用程序会出现随机假死、60秒或更长时间没反应的情况。” 按照这个页面的说法,是M$的驱动有问题,我装了Intel的RST驱动应该正常了才对。搞不明白是咋回事啊……上面这个知识库里给的hotfix下载了提示“此更新不适用于您的计算机”……仔细看了下,这个页面提到的受影响的msahci.sys的文件日期是2009年的,我系统里的是2010的,可能已经修复了。

== UPDATE@2014-01-11 23:43 ==
升级到最新版的Intel RST驱动12.9.0.1001版以后,到目前为止没有再出现过假死的情况。

== UPDATE@2014-01-15 22:51 ==
又出现了一次,没死彻底,又恢复了。

@23:10 发现另外一个可能导致假死的BUG(win7/server 2008 r2,跟lsass有关的,但是同样提示“不适合我的计算机”,摔!
分页: 5/94 第一页 上页 1 2 3 4 5 6 7 8 9 10 下页 最后页 [ 显示模式: 摘要 | 列表 ]