• 轻量级本地/局域网DNS缓冲:DNSMASQ

    March 30, 2010

    这次折腾Arch,因为觉得2009.8的包都太旧了,就完全使用了网络安装。网络环境是静态IP,安装前用ifconfig、route、resolve.conf这些配置好,再运行安装程序。网络速度并不慢,使用163的源,下载都有几百K,但是看着pacman,每个包开始前都在那里挂上10来秒,觉得很不妥,有些包很小,下载过程才1秒,但要等这么久才下载,为何呢? 趁着装包,我换到另外的tty测试,比如wget g.cn,因为最近这个域名会被先转到google.cn,再转到google.com.hk,所以看着wget,每次解释域名就得等待10来秒。用w3m打开网站,也一样,在Open socket那里挂着好几秒才开。我用的是google提供的DNS 8.8.8.8,速度不至于这么慢吧,nslookup g.cn,速度很快,一秒钟内就返回了,换了几个DNS,包括本地电信的,OpenDNS的,效果都一样;又怀疑跟IPv6模块有关,跑了v6发现不通才走v4,往modprobe.conf里面禁用了ipv6模块,故障依然。 最后试着做本地的DNS Cache,安装了dnsmasq,没做什么配置,直接启动/etc/rc.d/dnsmasq start,然后resolve.conf里面写nameserver 127.0.0.1,wget马上变得迅速起来了,再看pacman,全都正常。 清空dnsmasq的缓存可给它发送个SIGHUP,如sudo killall -s SIGHUP dnsmasq。(国内的DNS常常收到GFW污染,缓冲了受污染的DNS记录,出现用vpn连出去后上不了某些网站的情况) 以前没留意过本地DNS缓冲有这么大影响,不知道会不会跟最近国内的网络环境有关。

  • vim-project 速记

    March 30, 2010

    快捷键打开关闭:Project (P):给.vimrc添加 nmap <silent> <Leader>P <Plug>ToggleProject 项目信息记录在~/.vimprojects Project窗口可直接编辑,添加删除完全跟vim编辑文件一致: 删除项目:zm折叠全部,光标移动到项目行,dd。 在Project窗口,对光标文件名按Return(Enter),即在右窗口打开该文件; 水平分割右窗口,增加打开该文件; 在右边窗口打开文件,同时水平打开一新窗口(跟help描述不符!!) 如果安装有miniBufExplorer插件,当打开超过一个文件,顶部出现一个MiniBufExplorer,相当于tab,在相应位置按即可在右窗口打开该文件;至于关闭,按d就是。按在该窗口内按<Tab>、<S-Tab>可以前后选中各个文件。可用tabbar插件替代,增加了Alt+1,2,3 或者ctrl+tab这样切换各个标签。 以下命令,大写为递归作用。 \r \R 更新项目 \c \C 创建项目 \w \W 删除文件 \g \G 搜索文件 vim-project的Help,中文版翻译:http://www.cppblog.com/DrMagic/archive/2007/11/19/36964.html (发现部分特性跟Help描述不符,可能vim版本问题) 另外一篇实用手记:http://lebenbeck.blogspot.com/2009/01/vim-project-plugin.html PS: g G搜索功能是按quickfix list返回的,quickfix用法速记(quicklist本来作用是记录编译器出错的信息,以下的“错误”指找到的文本): :cc 显示当前错误 :cl[ist] 显示列表 :cN[ext] next :cp[revious] previous :cr[ewind] 【num】 调到某错误 :cope[n] 打开错误窗口 :ccl[ose] 关闭错误窗口 另有Location List,作用跟用法完全一样,只是命令的开头字母c换成l。

  • PDB远程调试Python多进程子程序

    March 14, 2010

    此前文章《最简单方法远程调试Python多进程子程序》利用了Unix管道文件以及简单的bash来配合调试多进程子程序,但也因此没法跨平台支持windows下的子进程调试,这次简单使用socket接口写了个模块,利用类文件对象传给Pdb的构造,因此不仅可以跨平台,甚至跨机器,跨网络调试都没问题(通常不会这么BT的)。 使用方法,用回之前的例子: 先在终端运行调试服务端: python -c "import rm_pdb; rm_pdb.server()" 在另外的终端运行这个文件: multiproces_debug.py 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 #!/usr/bin/python   import multiprocessing import pdb import rm_pdb   def child_process(): print "Child-Process" rm_pdb.pdb().set_trace() var = "debug me!"   def main_process(): print "Parent-Process" p [...]

  • aircrack-ng 系列工具使用笔记

    March 7, 2010

    初始化工作 airmon-ng start wlan0 9 打开一个网卡监听设备,并设置到channel 9; channel可用iwconfig修改 airodump-ng mon0 无参数启动airodump-ng可查看所有接收范围内的AP、Client信息 aireplay-ng -9 -e (bssid) -a (AP Mac) ath0 测试注入攻击链路质量 airodump-ng -c (channel) --bssid (AP Mac) -w output ath0 监听AP在频道的所有数据包并保存到output文件,此步应在以下步骤提到airodump的时候执行 WEP: aireplay-ng -1 0 -e (bssid) -a (AP Mac) -h (Host Mac) ath0 伪认证联机请求 aireplay-ng -1 6000 -o 1 -q 10 -e (bssid) -a (AP [...]

  • 最简单方法远程调试Python多进程子程序

    March 5, 2010

    Python 2.6新增的multiprocessing,即多进程,给子进程代码调试有点困难,比如python自带的pdb如果直接在子进程代码里面启动会抛出一堆异常,原因是子进程的stdin/out/err等文件都已关闭,pdb无法调用。据闻winpdb、Wing IDE的调试器能够支持这样的远程调试,但似乎过于重量级(好吧前者比后者要轻多了,但一样要wxPython的环境,再说pdb的灵活可靠它们难以比拟)。 其实只需稍作改动即可用pdb继续调试子进程的代码,思路来自这个博客:子进程的stdin/out/err关闭了,那可以自己重新按/dev/stdout的名称打开来用。当然这指*nix下,win下要麻烦一些,后面再说。 pdb支持自定义输出输入的文件,我再稍作改动,使用fifo管道(Named Pipe)来完成pdb的输出输入的重定向,这样的好处是,可以同时对父子进程调试! multiproces_debug.py 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 #!/usr/bin/python   import multiprocessing import pdb   def child_process(): print "Child-Process" pdb.Pdb(stdin=open('p_in', 'r+'), stdout=open('p_out', 'w+')).set_trace() var = "debug me!"   def main_process(): print "Parent-Process" p = multiprocessing.Process(target = [...]

Page optimized by WP Minify WordPress Plugin

 
Powered by Wordpress and MySQL. Theme by Shlomi Noach, openark.org