-
2012年02月10日
如何在VPS上利用SSH搭建转发Tor安全隧道
-
2011年10月08日
在Android手机上搭建DNSMasq并使用
警告:本教程具有一定的危险性,不熟悉Android和Linux系统请勿使用,否则可能会导致手机变砖。
提示:本操作基于HTC Desire(Oxygen 2.3,Android 2.3.7)进行,同时需要ROOT权限和ADB开发环境,不能保证所有手机都能适用。
注意:使用该方法后,手机自带的Wifi热点会失效!
首先,将手机设置为开发模式,然后通过数据线接入电脑。
本站提供了2个模板文件和一个修改版的dnsmasq,请先下载该压缩包:
http://www.chenshaoju.com/downloads/blogbus/dnsmasq.zip
下在回来后,解压,会看到三个文件,分别是 dnsmasq , dnsmasq.conf , resolv.conf 。
首先,需要对域名解析进行基本配置。
用高级文本编辑器(比如PSPad)打开 dnsmasq.conf 文件。
注意:请勿使用Windows自带的记事本打开,该文件使用的是Linux的换行符,不兼容Windows的换行符,用记事本打开可能会都堆在一起没有换行。
找到:#address=/double-click.net/127.0.0.1 ,并新起一行,然后添加内容,比如:
address=/www.baidu.com/119.75.218.45
address=/www.sina.com.cn/202.102.75.147
如果,有域名需要泛域名解析,那么可以这样:
address=/vnet.cn/127.0.0.1
如果如上配置,所有以 .vnet.cn 结尾的域名都会解析到127.0.0.1上。
请按照自己所需的实际情况一行行的添加解析。
当所需要映射的服务器配置完成后,再往下翻或按Ctrl + F,找到 #no-hosts ,并删掉前面的#号。
这样做是为了避免dnsmasq去读取本机的Hosts文件。
配置完成后,保存文件,然后打开 resolv.conf 。
打开 resolv.conf 文件后,可以看到有四行内容,这四行是中国骨干网的DNS,一般情况下不用修改,如果你在国外,或者使用的是特殊的网络,可以删掉原有的IP地址,设置为你所在地的DNS。
当都配置完成后,保存文件,然后退出。
启动adb shell,然后运行:
mount -t yaffs2 -o rw,remount /dev/block/mtdblock3 /system
注意:不同的手机和系统可能会不一定,该命令是将 system分区挂载为读写,也许你的手机可能不是这个分区和类型,请注意判断并按照实际情况填写。
运行结束后,输入 exit 退出 adb shell,然后用 adb push 命令将 dnsmasq.conf 和 resolv.conf 推送到 /etc/ 目录下:
adb push D:\dnsmasq.conf /etc/dnsmasq.conf
adb push D:\resolv.conf /etc/resolv.conf
注意:路径可能不一样,请按照实际情况填写。
当文件都推送完成后,请注意,以下步骤是用于判断你手机内置的DNSMasq是否存在并且工作正常。
开启两个 adb shell 窗口,其中一个运行 top –m 9 命令,该命令会检测当前手机的负载情况。
然后在第二个 adb shell 窗口运行:
dnsmasq --pid-file=/cache/dnsmasq.pid
注意,按下回车后请留意运行 top –m 9 命令的窗口,看是否有一个名为 dnsmasq 的进程占用了超过90%的CPU资源,如果没有,则继续,如果是,请再启动一个 adb shell ,然后运行:
killall dnsmasq
并继续往后看。
如果没有出现CPU爆满的情况,请回到第二个运行dnsmasq的窗口,然后按下Ctrl + C,并回到运行 top-m 9 命令的窗口,看是否有一个名为 dnsmasq 的进程占用了超过90%的CPU资源,如果没有,则继续,如果是,请再启动一个 adb shell ,然后运行:
killall dnsmasq
并继续往后看。
如果出现了以上CPU爆满的情况,则说明手机内置的dnsmasq存在问题,需要更换。在本篇文章上方提供的压缩包下载里有一个修改版的dnsmasq,解决了该问题。
用 adb push 将该 dnsmasq 推送到 /system/bin/ 目录下:
adb push d:\dnsmasq /system/bin/dnsmasq
然后启动一个 adb shell ,并设置其权限为751:
cd /system/bin/
chmod 751 dnsmasq
推送完成后,回到 adb shell ,然后创建开机启动项:
cd /etc/init.d/
echo dnsmasq –pid-file=/cache/dnsmasq.pid >>89dnsmasq
chmod 750 89dnsmasq
输入完毕后,就创建了开机启动项,这样在系统启动的时候,会自动启动dnsmasq。
最后,我们需要用第三方的软件来开机自动配置DNS,将DNS指向127.0.0.1:
访问安卓电子市场,并安装 DNS Changer:
https://market.android.com/details?id=com.eddypcz.dnschanger
安装后,在界面上可以看到配置主要DNS的地方,我们将其输入为127.0.0.1,第二个输入框保持空白,然后点击SET按钮。
然后,按下Menu键,点击Setting,选中Auto apply for WIFI 和 Auto apply for 3G,并且点击Set Primary DNS,输入127.0.0.1,然后选中Auto set primary DNS。最后,按返回键返回。
现在,你的手机就按照内置的DNSMasq进行工作了。
补充:
默认情况,该配置文件会使得dnsmasq绑定在 0.0.0.0 的IP上,也就是说手机所在的Wifi局域网里都能使用该手机作为DNS服务器(一般情况),如果你不希望这样,可以在修改 dnsmasq.conf 文件的时候,搜索:
并新起一行,输入:
server=127.0.0.1
那么DNSMasq就只会监听127.0.0.1,不会让其他人访问到了。
参考资料:
修改版DNSMasq: http://forum.xda-developers.com/showpost.php?p=17744219&postcount=2
DNSMasq默认配置文件: http://www.thekelleys.org.uk/dnsmasq/docs/dnsmasq.conf.example
-
2011年08月05日
Ubuntu下在进入休眠后唤醒蓝牙失效(无法启动)的解决办法
最近安装了Ubuntu 11.04,笔记本自带的蓝牙+WLAN模块在系统进入休眠后,再次唤醒蓝牙会处于一种奇怪的状态:
如上图,点击蓝牙后,只有一个关闭蓝牙,蓝牙状态也是开,但是在这种状态下,无法连接其他蓝牙设备,其他蓝牙设备也无法发现笔记本。
在网上搜索后,发现有两种解决方案:
1.硬件关闭蓝牙,然后再开启。
2.重启蓝牙服务。
很明显,后者具有优势,但是每次唤醒后就得输入命令,的确很麻烦,因此,如果要彻底解决该问题,则最好通过休眠进程的脚本来解决该问题。
以下是修复步骤:
1.启动终端,输入:
cd \etc\pm\sleep.d
确认进入 sleep.d 目录后,输入:
sudo vi 18_rstbt.sh
会要求输入管理员密码,输入完管理员密码后,会进入 vi 编辑器界面,先按一下 Ins 键,进入编辑-插入模式。
然后,输入以下内容:
#!/bin/sh
case "$1" in
thaw|resume)
/etc/init.d/bluetooth restart
esac输入完成后,按一下ESC键,然后按下 :wq 回车,编辑器会保存该文件。
最后,我们还得修改一下权限,让其成为可运行的脚本:
chmod +x 18_rstbt.sh
最后,就可以试一下看看是否生效了。如果不生效,则说明可能存在输入问题,必须仔细检查。
参考资料:
-
2011年07月01日
GMail被入侵后的扩展追踪和封停措施
注意:对于普通用户,如果完成了Google提供的步骤后,将没有必要执行下列操作,以下步骤仅针对高级用户。
注意:本例中的入侵者真实存在,但是该IP地址和最后管理者的联系方式并不一定适用于其他入侵者的IP地址。请按照自身实际情况进行操作。
1.打开GMail底部的登录日志,记录入侵者的IP地址(如下图是117.18.99.171):
2.访问 http://news.nic.com/cgi-bin/whois ,搜索该IP地址所属的管理机构:
在本例中,搜出来的IP地址范围 117.0.0.0 – 117.255.255.255 属于APNIC管理,而说明里说如果要查询具体IP地址的管理机构,则需要访问 http://www.apnic.net/apnic-info/whois_search2/abuse-and-spamming ,我们直接访问此网址即可。
3.打开了上面的网址后,在页面中部有一个名为“APNIC Whois Database”的链接,点击它(如下图):
在新出现的页面的 Search for 输入框中输入需要查询的IP地址,也就是入侵者的IP。
4.搜索结果显示后,则会显示出该IP地址所属的具体机构(如图),入侵我的GMail邮箱的IP是属于IXTech Limited公司的,页面中还会提供该公司的管理员联系方式,比如电子邮箱和电话。
5.最后,我们就可以写信给管理者的电子邮箱,要求对这个IP采取限制措施。
一般情况,管理者会在24小时内(如上图)处理邮件请求,并且封掉入侵者所使用的IP地址。
而通常,该IP地址仅仅是一个跳板(比如入侵者远程桌面到该IP地址的服务器上进行的入侵GMail操作等。
至此,就完成了对该IP地址的具体措施,至于是否会追查到该IP的使用者,则取决于托管商的具体行为。
-
2011年06月05日
手动移动dalvik-cache到sd-ext分区
警告:该操作非常危险,错误的操作可能会引起手机变砖,在开始前,请确认手机至少具备50%以上的电力。
部分第三方的手机ROM已经具备该功能,在执行本文中的命令前,请检查 /sd-ext/ 目录中是否已经存在dalvik-cache目录。如果有,则无需进行以下操作。
提示:本操作已忽略先决条件,基于Oxygen 2.1.2进行(HTC Desire,S-OFF),请自行检查是否具备Android SDK开发环境,ADB Shell,以及busybox。
上一篇博文中,叙述了我的手机内置存储紧缺的问题,当时采取了删除部分应用的办法来解决。
不过,由于Android实际上是基于Linux系统的,在安装了Busybox,并且对存储卡进行ext2/3/4分区后,可以通过创建一个链接将data分区中的dalvik-cache连接到sd-ext分区上,并将data分区中的dalvik-cache移动到sd-ext上。
在开始前,需要将手机引导到Recovery环境下,然后执行以下步骤:
1.检查/data和/sd-ext是否已经挂载:
df –h
Filesystem Size Used Available Use% Mounted on
/dev/block/mtdblock3 90.0M 88.1M 1.9M 98% /system
/dev/block/mtdblock5 337.6M 299.5M 38.2M 89% /data
/dev/block/mtdblock4 10.0M 1.1M 8.9M 11% /cache
/dev/block/mmcblk0p2 629.9M 437.6M 160.3M 73% /sd-ext如果没有看到 /data 或 /sd-ext ,则说明需要手动挂载,一般情况下,在Recovery里可以直接挂载。
如果看到了 /data 和 /sd-ext 目录,则可以继续。
2.检查sd-ext分区空间是否够用:
首先,先查询 dalvik-cache 目录大小:
cd /data
du -s * | sort –n
1 app
1 app-private
2 dontpanic
2 lost+found
4 local
4 property
4 secure
15 backup
42 anr
46 misc
505 system
135462 dalvik-cache
161988 data结果显示dalvik-cache占用了135462KB的空间(约为132MB左右)
对比第一步命令所得出的空间,目前sd-ext分区还有160MB左右的空间,因此足够稍后的操作了。
警告:如果空间不足,请不要继续,否则会引起灾难性故障!如果坚持继续,请关机并取出存储卡,备份所有数据后对存储卡进行重新分区。
3.复制dalvik-cache到sd-ext分区:
cp -a /data/dalvik-cache /sd-ext/
警告:该复制过程不会有提示,请勿按Ctrl+C终止复制或拔出数据线,否则可能会变砖!
执行该命令后没有提示,完成后会回到提示符,但是可以运行该命令来检查是否复制完成:
ls /sd-ext/
app app-private dalvik-cache
如果已经存在dalvik-cache目录,则说明复制成功,下面,需要删除手机内存原有的dalvik-cache,并创建链接:
4.删除原有dalvik-cache并创建到/sd-ext/的dalvik-cache链接:
首先是删除:
rm –r /data/dalvik-cache
删除过程也不会有任何提示,耐心等待。回到提示符后,就可以创建链接了:
ln -s /sd-ext/dalvik-cache /data/dalvik-cache
切记不要弄错顺序,第一个是 /sd-ext/ 目录的,第二个才是 /data/ 目录的。
命令运行后,也不会有任何提示,执行以下命令检查是否已经创建成功:
ls /data/ –l
drwxrwxr-x 1 system system 2048 May 14 16:26 anr
lrwxrwxrwx 1 root root 11 May 14 15:50 app -> /sd-ext/app
lrwxrwxrwx 1 root root 19 May 14 15:50 app-private -> /sd-ext/app-private
drwx------ 1 system system 2048 May 15 12:55 backup
lrwxrwxrwx 1 root root 20 May 15 12:53 dalvik-cache -> /sd-ext/dalvik-cache
drwxrwx--x 1 system system 2048 May 14 22:42 data
drwxr-x--- 1 root log 2048 May 14 15:50 dontpanic
drwxrwx--x 1 shell shell 2048 May 14 15:50 local
drwxrwx--- 1 root root 2048 May 14 15:50 lost+found
drwxrwx--t 1 system misc 2048 May 15 12:54 misc
drwx------ 1 root root 2048 May 15 09:24 property
drwx------ 1 system system 2048 May 14 15:50 secure
drwxrwxr-x 1 system system 2048 May 15 13:02 system如上面的内容,如果是 dalvik-cache –> /sd-ext/dalvik-cache ,就说明创建成功了。
我们可以用df命令检查一下/data/分区是否多出了空余空间:
df -h
Filesystem Size Used Available Use% Mounted on
/dev/block/mtdblock3 90.0M 88.1M 1.9M 98% /system
/dev/block/mtdblock5 337.6M 168.5M 169.2M 50% /data
/dev/block/mtdblock4 10.0M 1.1M 8.9M 11% /cache
/dev/block/mmcblk0p2 629.9M 571.3M 26.7M 96% /sd-ext现在 /data/ 分区已经有50%的剩余空间了,而存储卡则缩减到了4%,不过还有26MB的可用空间,应该没什么问题。
最后,重启手机即可完成全部操作。

















