2013年12月1日星期日
Raspberry Pi为iPad搭梯子
1. 首先是把原来的xbian刷成了archlinux,
然后肯定是修改mirrorlist啦,果然台北的源比北京清华大学的快很多
安装的软件有:
bftpd:用来在电脑和Pi之间传文件用,用户配置文件在/etc/ftpdpassword,启动用bftpd -d
python和python2:oh yeah你不知道下载下来的goagent适用于哪个版本所以都要装
python-pyopenssl、python2-pyopenssl和nss:同上
至此,就能运行goagent了,目前的版本是用python2.7 proxy.py这个命令
2. 路由器的设置:当然是把Pi的IP固定比较好,比如为192.168.1.5
3. proxy.ini的设置:
127.0.0.1全部换成192.168.1.5
profile=google_cn换成google_hk,虽然慢一点,但是起码你用whizz的时候不会访问不了google服务
proxy.pac的设置: 127.0.0.1全部换成192.168.1.5
4. 给goagent生成key:用管理员账号运行下列命令
rm -rf ~/.pki
mkdir -p ~/.pki/nssdb
certutil -d ~/.pki/nssdb -N
虽然官方说法不是这样,但是确实每次启动goagent都要用root账号才行有木有
5. iOS的代理设置:某个wifi名称后面点"i",然后http代理里面选自动,填"http://192.168.1.5:8086/proxy.pac"
注意:"http://"不可省略!
6. 给iOS安装证书:用safari直接打开http://192.168.1.5:8086/CA.crt的方法是很(xing)机(bu)智(tong)的!乖乖给ipad上的邮箱发封带有CA.crt附件的邮件好了。安装时的密码是锁屏密码来着
7. APP解决方案:至此,用safari可以访问twitter、facebook了,youtube不能看视频,使用twitter和facebook的客户端则无法访问,折中的办法是安装google whizz,web app嘛,勉强接受了
8. 最后一击:前面的步骤都成功以后,就可以考虑让Pi自己运行goagent不去管它了,当然最简(wu)单(nao)的办法就是一直通电,运行一次goagent就好。为了避免关掉putty窗口时goagent进程被冻结,应该
nohup python2.7 proxy.py &
看到output被转到某文件后,按回车回到CLI,然后输exit退出
2009年7月13日星期一
在Linuxtoy上看到的firefox优化方法
进入.mozilla/firefox/xxxx.default
执行sqlite3 places.sqlite vacuum和sqlite3 formhistory.sqlite vacuum,然后启动firefox,速度貌似确实有了较大改善。
不过按照我对vacuum这个词的理解,貌似这个优化方法不算一劳永逸来着?
2009年7月11日星期六
Sed也要万分小心的教训
find . -exec sed -i 's/bbs\.xxxx\.xxx\.cn/111.222.333.444/g' {} \;
且不说把其中的bin和lib文件夹中的一些二进制文件改了,这个好办,重新编译生成这些二进制文件就解决了。要命的是kbs的bbs系统在boards、mail这些存放数据的文件夹里面也全部都是二进制文件,使用上面的命令之后,由于bbs.xxxx.xxx.cn与111.22.333.444相差一个字符,直接导致被修改的部分之后完全乱套。
解决办法是:
1. 对于被搞乱的版面,进入boards下相关文件夹,备份.DIR和.ORIGIN,然后
sed -i 's/111\.22\.333\.444/111.22.333.444 /g' .DIR .ORIGIN
其实就是在末尾多了个空格来达到字符数平衡,多数都能解决。
2. 对于被搞乱的邮箱,同样进入mail下相关文件夹,备份之后进行替换
sed -i 's/111\.22\.333\.444/111.22.333.444 /g' .DIR .SENT .DELETED
另外:如果在bbs文件夹里面建立一个NOLOGIN的空文件,就只有telnet 127.0.0.1可以登录,可以用来测试。
2009年7月1日星期三
更改gtk的字体和主题
其实以前没有想到有这么简单,直接修改~/.gtkrc-2.0即可。例子如下
include "/usr/share/themes/Nodoka-Silver/gtk-2.0/gtkrc"
style "user-font" {
font_name = "Microsoft YaHei 10"
}
widget_class "*" style "user-font"
gtk-font-name="Microsoft YaHei 10"
#Nodoka-silver是使用gtk-nodoka-engine的主题,只依赖gtk2。对于不想多装依赖的本人来说,比murrine引擎要好一些。
2009年6月25日星期四
OpenVPN翻墙
首先想到的是tor。tor确实好配置,不过龟速实在难以忍受,于是想到了OpenVPN。目前找到了两个免费的OpenVPN服务,分别是ultravpn和alonweb。首先到alonweb的官方网站下载必要的文件,解压到家目录中。然后把解压出的alonweb.conf中的"redirect-gateway"改为"redirect-gateway def1"(如果你自己是处于一个LAN网络中已经有一个default gateway的话)。
modprobe tun,然后sudo openvpn --config alonweb.conf --ca alonweb.crt就可以启动openvpn了,不要忘了先要安装openvpn这个软件,和在alonweb的官网上注册。
然后就可以测试了,ping xxx.xxx.0.1(这是启动openvpn时提示信息最后几行中显示的),如果能ping通,就成功了一半。至此,就建立了自己的电脑到远程vpn服务器的一个隧道。如果启动openvpn时把"redirect-gateway"注释掉的话,使用route命令查看一下本地的路由表,会发现只有到xxx.xxx.0.1的连接会通过新建立的隧道,而其它通信还是通过原来的网关。但是我们用vpn的目的就是用来翻墙,所以必须要进行一些额外的配置。其第一步,就是在配置文件中设置redirect-gateway def1(刚才我们已经完成了),接下来还有2步:
1. sudo sysctl -w net.ipv4.ip_forward=1,允许内核进行ip forward
2. 设置iptables:
iptables -t nat -A POSTROUTING -s xxx.xxx.xxx.0/24 -o eth0 -j MASQUERADE
/etc/rc.d/iptables save
/etc/rc.d/iptables start
注意这里的xxx.xxx.xxx.0/24是你自己所处的实际内网的网段,与OpenVPN的输出信息完全无关。我就是在这里纠结了好长一段时间,后来想想,这里的含义应该是:由于我处于这个内网,我的所有访问必然会经过这个内网,所以只要把与这个内网的所有通信都route到隧道就可以了。
经过以上的设置,本机所有的网络通信都通过隧道进行,这显然不是最合理的。至于如何精细调节,可能就要在iptables或route上下功夫了,不在本文讨论之列。经测试,速度还是可以忍受的,比tor要快得多。
最后ps一下:alonweb是有广告的(ultraweb还没试),不过这对于我来说反而是一种安慰——自由软件事业还是需要大家的支持。
2009年5月3日星期日
用Scribefire发布blogger文章注意
然后就是发布的文章总是草稿,还需要再登入blogger控制台进行发布。
Powered by ScribeFire.
2009年5月2日星期六
更快的查看mldonkey进度的方法
以前要查看mldonkey,比较简单的方法是用web界面或第三方gui如sancho。下面介绍更简单的利用telnet查看进度的方法。
1. 编辑~/.bashrc,加入一行:
alias m='(echo "auth username password";echo vd) | nc -q 1 localhost 4000 | awk '"'"'/\[D/{print"\033[0;32m"$7"\t\033[4;31m"$8"%\033[0m\t",$14"KB/s"} /Down:/'"'"' |head'
然后source ~/.bashrc就可以用m来查看前10条进度记录了。
2. 多用户的权限配置策略
如果是单用户的话,没什么好说的,把你的用户名和密码写在上面的命令中,然后想办法保证.bashrc文件不会被别人看到就ok。
如果是多用户,假设自己是管理员user1,还有一个一般用户为user2。我想查看所有用户的进度,但是user2只能查看自己的进度。并且为了安全起见,用于查看的用户没有管理员权限,则可以如下配置用户和组:
user========group=====================admin
admin=======mldonkey==================true
user1=======mldonkey group1==============true
user2=======group2=====================false
view========group1 group2===============false
group============admin
mldonkey==========true
group1===========false
group2===========false
并把user1的默认group设置为group1,如此设置的效果为:admin基本不用;user1具有管理员权限,但是它下载的文件属于group1组,能够被view用户看到;user2只能看到自己的下载的文件,但是view用户也能看到user2下载的文件。剩下的就只需要保证.bashrc不被别人看到了,其实看到了也无所谓,大不了把我下载的文件取消了,至少无法改变我的设置
3. 可能用到的命令
以下为telnet命令:
groupadd group1 true/false #true则该组具有管理员权限
useradd user passwd group
useraddgroup user group #把user加入到group组中
userdgroup user group #设置user的默认group
chgrp num none/group #把某一个下载进程的所属组改为group,none则为只有其所属用户才能看到
以下为shell命令:
cd ~/.mldonkey && mv files.ini temp && cat temp |sed 's/mldonkey$/group1/g' > files.ini && rm temp #把以前用管理员帐号下载的文件的group值都改为group1
Powered by ScribeFire.
2009年4月30日星期四
VIM的插件式输入法
自家的xterm一直没有搞定中文输入(可能是因为ibus本身就不太完善的关系?),因此虽然终端和vim能够显示中文,但是在终端vim下无法输入中文很是郁闷。安装了这个vimim插件之后,奇迹般的搞定了终端vim的中文输入而且不会出现ibus的种种奇怪问题,可以说是最近除了完成LFS的创建以外最振奋人心的事。
一下是安装过程:
1. 到这个网站的下部下载插件
2. 在这里下载码表,我下载的是拼音码表
3. 把上述文件放到~/.vim/plugin文件夹下,如果没有的话直接创建即可
然后就可以测试了:
vim test
在插入模式下按下ctrl+^(实际上就是6)键,此时vim的提示区显示为"--插入(语言)--",然后输入拼音就会出来选字框了,空格选字。其它很多种玩法在这里有介绍,还没有来得及全部试,试了一下“点石成金”貌似很好玩。
另外,firefox也有一个嵌入式输入法名为fireinput,我用opera不准备尝试,有兴趣的朋友可以一试。
linux下的chromium试用成功
安装:
arch下直接使用AUR即可,如果安装了yaourt,直接yaourt -S chromium-browser
其它发行版自己看看不稳定仓库里面有没有吧,或者可以自己用google code上的源代码编译
运行:chromium-browser
测试:打开普通的英文网页和中文显示都没有问题,下载也还行,会自动的在家目录建立一个“下载”的文件夹。打开gmail等google本家的服务也没有问题。
问题:
1. 貌似无法弹出对话框?想要设置options和登入一个需要密码的网站都未能成功(可以在地址中直接写下用户名和密码来登入)。
2. 对https的支持不太好还是怎的,blogspot的页面显示不出来
3. 中文输入法还无法使用
4. 有时候会莫名其妙崩溃退出
结论:基本可用,但是离取代opera还有较大距离,只能作为备用浏览器。
2009年4月26日星期日
lfs手记之二
echo 'main(){}' > dummy.c
cc dummy.c -v -Wl,--verbose &> dummy.log
grep -B1 '^ /usr/include' dummy.log
又表明确实是在/usr/include里找头文件的。于是只有怀疑gcc的源文件有问题,仔细想了一下,第二次编译gcc时对源文件进行了修改,而第三次编译时图省事直接用的原来的源文件夹。虽然gcc, binutils和glibc都是在源文件夹以外的文件夹中编译的不存在编译污染问题,但是直接修改了源文件的话还是可能会导致错误的。于是删除原来的gcc-4.3.2/文件夹,重新解压,make通过。
总结:对于源文件夹的处理,个人有以下建议:
1. 只进行了patch的可以不管
2. 如果对源文件进行了其它修改,要么事先有备份,最简单的还是删除&重新解压
3. 如果在源文件夹中直接configure和make的,而又没有修改源文件,可直接make clean而不用删除文件夹
4. LFS手册的建议还是要采纳,其实手册开始写了建议安装完成一个包之后就把源文件删除,我没有动脑子而大胆采用省时做法,结果适得其反
lfs手记之一
第一次lfs,在glibc pass1的时候就失败了(谢天谢地),原因是:
>
> make[2]: *** [/mnt/lfs/sources/glibc-build/ucontext_i.h] Error 1
> make[2]: Leaving directory `/mnt/lfs/sources/glibc-2.8-20080929/csu'
> make[1]: *** [csu/subdir_lib] Error 2
> make[1]: Leaving directory `/mnt/lfs/sources/glibc-2.8-20080929'
> make: *** [all] Error 2
这是一个致命的错误,我在开始LFS竟然没有检查host系统的架构,而LFS是仅针对32位系统的!看了一下gentoo的/etc/make.conf,发现里面的CHOST是64位,晕了。
解决方法有二:一是转投向CLFS,它是针对64位系统的,但是貌似更加复杂;二是另外找一个32位系统做host。对于我来说显然后者更容易,于是在另外一台服务器上重新开始。
另外又要发泄一下GFW给我造成的痛苦:出现上述问题时,google解决方案,只有www.mail-archive.com上有同样的条目,但是不知道为什么这样一个网站竟然会被GFW河蟹掉,十分难以理解!最后花了10多分钟找到web proxy才算解决。
2009年4月25日星期六
freenx所导致的设置冲突
但是设置了freenx之后,需要改动/etc/ssh/sshd_config把authorizedkey文件改为~/.ssh/authorized_keys2,而这个文件在上述文件夹中实际上不存在?这样,前述的id_rsa.pub的内容就没有去向了,当然也就无法实现不需要密码的ssh连接。
目前是把sshd_config改回原貌了事,不过如果找到authorized_keys2的工作机制之后应该可以两者共存
2009年3月31日星期二
2009年3月30日星期一
2009年3月28日星期六
Gentoo安装lxde整理版
1. emerge安装layman和mercurial
2. layman -S更新overlay的列表
3. layman -a lxde添加lxde的overlay
4. 在/etc/make.conf中添加source /usr/portage/local/layman/make.conf
5. lxde的包都被Mask了,最简单的解决方法是emerge autounmask
6. 确保/etc/portage/package.keywords文件存在,然后autounmask lxde-base/lxde-common-9999-r1,注意最后的包要给出确切的版本号,用autounmask直到可以进行下一步为止
7. 安装lxde:emerge lxde-common virtual/lxsession pcmanfm lxpanel openbox gpicview -av
8. 在.bashrc中添加exec startlxde即可
Bingo!灰常简单的*-to-linux远程桌面
如果你google一下linux remote desktop的话,所有的结果可能会告诉你用vnc吧。我尝试了tightvnc,不那么好用,而且根本没有连上,可能是我太笨吧...sign。偶然的在一个讨论tightvnc的帖子中发现有freenx这个东东,其声称是新一代的远程桌面解决方案。也是,人家tightvnc的说明文档都好多年以前的了,试试这freenx吧。
如果你用gentoo,搜搜freenx安装就好了。咱也不去hack它的配置,安装好了之后
nxsetup --install --setup-nomachine-key --clean --purge
就可以用了。
如果不行,一般都是ssh的配置有问题,可以检查以下条目:
1. /etc/ssh/sshd_config文件中Port 22前面的注释已经去掉
2. 上述文件中PubkeyAuthentication yes前面的注释已经去掉
3. 上述文件中AuthorizedKeysFile为.ssh/authorized_keys2
4. 如果client登录时总是停留在waiting authentication阶段然后因"280 exiting on signal 15"而失败,可能是新的ssh输入密码的方式问题。解决办法是编辑/etc/nxserver/node.conf,把里面的ssh验证改为0,SU验证改为1,然后把su加入wheel用户组。
这里要说一下nx的机制,它是默认是直接通过ssh协议进行通讯的,所以对于服务器重启之后要不要找找看需不需要重新开启服务这种问题,遇到问题再说吧。
好了,以上是服务器端的配置,简单得想撞墙吧。注意服务器上必须是要有xorg和至少一个窗口管理器的,我的是dwm。
然后是client端。我的笔记本用的是archlinux,搜了一下安装源里面的nxclient要用29M空间,而nomachine官方提供的client只要4M多,所以去下官方的client吧(前面都说了我这个人有系统洁癖)。貌似client和server的版本号可以不一致也没关系。
至于client的配置,只有两个地方要注意:
1. 如果你的服务器上有kde,gnome等桌面环境的话,就没啥可注意的,在Next...Next的时候看到选择环境选对应的那个就好了。否则,比如用的是dwm,那么你就要选Custom->连接的时候执行命令->输入exec dwm,还要在下面选择打开新的virtual desktop(晕吧,见末尾的图)
2. dwm是很好的一个二奶窗口管理器,如果没有头绪的话,知道默认的功能键是Alt, Alt+Shift+Enter打开xterm,Alt+Shift+c杀掉聚焦窗口应该就可以了。我的笔记本用的是awesome,老爸和儿子在一起还真是协调呢:_P
client端的使用,一个最基本的tip就是你不用每次都logout,只要disconnect就可以了,所有的进程还保持运行状态。要做到这一点,只要把nxclient的窗口关掉就可以了,这时候会跳出一个对话框问你想要干吗,然后选择suspend即可。
btw:截图是用
scrot -s -d 5
弄出来的,60kb左右的小软,很好用啊

2009年3月19日星期四
锁屏软件slock
之前在awesome下一直用xlock,比xscreensaver是要小得多,但还是包含了一些屏保选项。今次在google上碰运气,找到了slock这个软件。
如其页面所说,可能的确是史上最小的锁屏软件了,只有几K。而且及其纯粹,运行slock就锁成黑屏,直接输入密码回车就解锁,根本没有用来输入密码的界面。够weird!
官方网站在这里,该网站上还有一些比较weird的软件,比如也是以kb计的窗口管理器/桌面环境dwm :_P
2009年3月5日星期四
opera的flashblock和附带tor配置
1. tor的配置
参见archwiki,需要注意的是向config里添加的那一行最后的英文句点是必需的
这里贴一个opera自动配置代理的脚本,存成~/.opera/opera.pac然后在opera的代理中设置成自动使用这个脚本就可以了,在这个脚本里添加的域名是使用tor的域名:
function FindProxyForURL(url, host){
host=host.toLowerCase();
if(
dnsDomainIs(host,"wikibooks.org")
||dnsDomainIs(host, ".wordpress.com")
||dnsDomainIs(host, ".livejournal.com")
||dnsDomainIs(host, "my.opera.com")
||dnsDomainIs(host, ".uncyclopedia.wikia.com")
||dnsDomainIs(host, "whatsmyip.net")
)
return "PROXY localhost:8118";
else return "DIRECT";
}
2. flashblock的配置
十分简单,参见这里,把那个Flashblocker.zip下载后看说明就可以了
2009年2月22日星期日
Ibus图标:只能用神奇来形容
安装ibus-git和ibus-pinyin-git后,在启动ibus-daemon时要加上--xim参数。之后Opera等Qt程序中可以使用ibus,但是xterm和urxvt等终端程序中无法使用。
还有图标问题,任务栏中是空的,输入状态bar上也是5个叉。百思不得其解。之后的神奇事件是:安装了firefox及其依赖,然后把这些软件包全部卸载,图标竟然可以正常显示了。更是百思不得其解。
还有就是,ibus用起来其实有点慢,至少比之前使用scim时要来得慢。
2009年2月19日星期四
命令行样式定制
1. 修改PS1样式:就是提示符的样式了。编辑.bashrc,加入类似下面的语句:
export PS1='\[\033[0;36m\]\h\[\033[0;35m\] \W>\[\033[0m\] '
注意类似于PS1="\[0;36m\h \W> \[0m"的表示方法会导致换行问题,而上面的语句是从Gentoo的/etc/bash/bashrc抄出来的,经测试没有问题
2. 让文件显示颜色:使用dircolors,方法如下:
dircolors -p > ~/.dir_colors
echo "eval \`dircolor -b ~/.dir_colors\`" >> ~/.bashrc
echo "alias ls=\"ls --color\"" >> ~/.bashrc
之后通过编辑~/.dir_colors就可以修改ls时显示的颜色样式
