Tag: Linux

使用RAMHost的Mini VPS翻牆

Posted by – 2010/06/28

突然之間翻牆就成了必備技能之一。
我用RAMHost的Mini VPS嘗試了幾種翻牆的方式。
操作系統是Debian 5.0。

通過VPN翻牆 – OpenVPN+Tunnelblick

全局都翻牆且不用設置瀏覽器,客戶端一點就可以。

具體步驟參考RAMHost用戶論壇的第四個帖子。唯一需要注意的是第四步在/etc/rc.local中加入每小時自動重啟OpenVPN的命令。這還真是必須的,因為/dev/tun會在重啟的時候丟掉,可能是OpenVZ的原因吧。

我使用Tunnelblick做客戶端來連VPN。
下載安裝後,需要將openvpn.conf放在如下位置~/Library/Application Support/Tunnelblick/Configurations/

openvpn.conf中引用的*.crt和*.key也放這裡即可。

當晚(其實大概天快亮了-_-!)試過看HuluYoutube等高清視頻很流暢。

好處多多,壞處就是得拷貝那几個證書文件給客戶端。(更喜歡PPTP要求用戶名密碼的方式,但OpenVZ)

代理服務器 – Squid

GFW是強大的,直接用Squid仍然會被墻。

更安全的代理服務器 – Squid+Stunnel

請教了一下Fantix,他用Stunnel給Squid加密的方法來解決這個問題。

我用的Squid3,需要啟用lenny-backports才能找到。其實默認的Squid2.7也可以。裝好後,默認配置就能用。

$ sudo apt-get install squid3

簡化版的配置如下:

visible_hostname proxy.sunliwen.com
cache_effective_user proxy proxy
http_port 3128
acl localnet src 127.0.0.0/24
http_access allow localnet

$ sudo /etc/init.d/squid3 start

因為我要用Stunnel加密,所以只允許本地訪問。
配置Stunnel之前先測試一下Squid是否可以走通。

export HTTP_PROXY=http://localhost:3128
elinks www.youtube.com

配置服務器端Stunnel(可參考這篇博客)

主要有以下幾個步驟:

1. 生成證書

$ sudo openssl genrsa -out privkey.pem 2048
$ sudo openssl req -new -x509 -key privkey.pem -out cacert.pem -days 1095
$ sudo cat privkey.pem cacert.pem >> /etc/stunnel/stunnel.pem

2. 更改證書屬性

$ sudo chmod 0400 /etc/stunnel/stunnel.pem

3. 更改chroot目錄的owner

$ sudo chown stunnel4:stunnel4 /var/run/stunnel4

4. /etc/stunnel/stunnel.conf編輯如下

cert = /etc/stunnel/stunnel.pem
chroot = /var/lib/stunnel4/
pid = /stunnel4.pid
setuid = stunnel4
setgid = stunnel4
; debug = 7
; output = /var/log/stunnel4/stunnel.log
client = no
[http]
accept = 8080
connect = localhost:3128

客戶端也需要安裝stunnel,這裡是MacOSX

$ sudo port install stunnel

然後在客戶端本地運行

$ sudo stunnel3 -c -d localhost:8080 -r proxy.sunliwen.com:8080

或者創建包含如下內容的配置文件 stunnel.conf (我這立的位置在 /opt/local/etc/stunnel/stunnel.conf )

client = yes
[proxy]
accept = 127.0.0.1:8080
connect = proxy.sunliwen.com:8080

然後 http://localhost:8080 便成了一個安全的代理。

比較

前者比較方便,但不是很穩定,鏈接會自動斷開,重新鏈接VPN可以恢復。
後者需要在瀏覽器上進行設置,但比較穩定,沒出過什麼問題。

兩種方法速度差不多,都比裸的Squid慢。

PS:Hulu - 通過VPN可以看,Squid代理卻不行。
後者具體情況是,在播放完廣告之後報告一個錯

Sorry, we are unable to stream this video. Please check your Internet connection and try again.

點“reload the video”,重新放了一遍廣告,錯誤依舊。可能Hulu已經不僅僅在播放前查IP了

RAMHost的VPS

Posted by – 2010/06/18

讀了很多VPS評測的文章,最後選擇了非常有誘惑力的Ramhost (基本只有好評)

第一次使用ssh登錄

https://ramhost.us/?page=vps-console

添加用戶

# adduser liwen

安裝sshd

# apt-get install openssh-server

安裝vim

# apt-get install vim

安裝sudo

# apt-get install sudo

安裝apache/php5

# apt-get install apache2-mpm-prefork libapache2-mod-php5 php5-cgi php5-mysql php5-mcrypt php5-gd php5-sqlite

安裝ZendOptimizer (參考:http://www.debiantutorials.net/installing-zend-optimizer/)

# wget http://downloads.zend.com/optimizer/3.3.9/ZendOptimizer-3.3.9-linux-glibc23-i386.tar.gz

安裝mysql

# apt-get install mysql-server

添加用戶到www-data組

# usermod -G www-data liwen
# id liwen
uid=1000(liwen) gid=1000(liwen) groups=1000(liwen),33(www-data)

解決locale錯誤信息

perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = (unset),
LANG = “en_US.utf8″
are supported and installed on your system.
perl: warning: Falling back to the standard locale (“C”).

解决方法

# apt-get install locales

# dpkg-reconfigure locales

查看vps狀態
https://my.ramhost.us/v2/vps/cp/?page=main

Mozilla Prism的Defect

Posted by – 2009/03/18

昨天,3月17日,是比较不幸的一天。下午因某些原因我在Windows Live Mail里回复邮件,可以说是我写过的最长的邮件,而且此邮件充斥着我的真情实感。我有个习惯发出去的邮件在Sent目录检查一下。但我发现这封邮件发出去后内容为空。我就崩溃了。难道这封邮件设置了“禁止转发”?没记得email支持这样的功能,如果是某些脚本捣的鬼,浏览器也应该提示我。

我使用Mozilla Labs的Prism启动的Windows Live Mail。用其他浏览器(Firefox, Opera)实验了一下,发现这是一个defect。gg了也没有发现同样的case。后来任同学帮忙在Windows下试了一下也有同样的问题。

去了#prism的IRC,没有人响应,可能另一个半球的同学都在睡觉。于是我默默的file了一个defect

将Python程序编译并转换成Windows可执行程序

Posted by – 2009/03/10

因为要在桃园学校的电脑上安装rur-ple,Pockey和Fred翻译了主程序和前三节课程,rur-ple网站的win32安装包没法merge到一起。所以我重新打一个临时的包。

在编译和打包之前需要安装下面的包:

Python2.5
http://www.python.org/download/releases/

wxPython 2.6
http://www.wxpython.org/download.php#binaries
http://sourceforge.net/projects/wxpython/files/wxPython/2.6.4.0/wxPython2.6-win32-unicode-2.6.4.0-py25.exe/download

py2exe 0.6.5 – 第一个支持Python2.5的版本
http://www.py2exe.org/

编译程序

参照:http://effbot.org/zone/python-compile.htm

进入要编译的python文件所在目录如下。

D:\sunlw\projects\ygclub\teaching\rurple1.0rc3>python
Python 2.5.4 (r254:67916, Dec 23 2008, 15:10:54) [MSC v.1310 32 bit (Intel)] on
win32
Type “help”, “copyright”, “credits” or “license” for more information.
>>> import compileall
>>> compileall.compile_dir(“./”, force=1)

编译完成后运行一下,确认正常。

D:\sunlw\projects\ygclub\teaching\rurple1.0rc3>rur_start.py

貌似运行起来快了一点。

将程序打包成exe

参照:http://www.py2exe.org/index.cgi/Tutorial
添加setup.py文件如下 (http://www.py2exe.org/index.cgi/Tutorial?action=AttachFile&do=view&target=setup.py)

from distutils.core import setup
import py2exe
setup(console=['rur_start.py'])

然后执行

D:\sunlw\projects\ygclub\teaching\rurple1.0rc3>python setup.py py2exe

运行exe程序试试

D:\sunlw\projects\ygclub\teaching\rurple1.0rc3>.\dist\rur_start.exe

成功。

安装包

另外我简单的将编译好的文件用7zip打成自解压程序。

注:
尽量保证依赖的库版本低一些,方便一些安装Windows 2000的电脑使用。

Linux教育笔记本

Posted by – 2009/03/08

先前在BLUG认识了pockey,了解到一些关于她所在团队Gdium的一些情况。于是去了一下他们的公司(也是BLUG的总部)聊了很多。3月7日,在众阳光志愿者Gdium团队的共同努力下,我们在朝阳区崔各庄实验学校(非公立,非政府承认)展开了一次教育笔记本体验活动(召集贴总结贴)。

总结如下:

有5个三年级的孩子,和4个的五年级的孩子参加了计划中的项目。

包括:
1) ”我明白了“ GCompris 数学、英文生词、打字、用鼠标等练习(初学者也可以应用的)
2) 一个关于地里的简单练习(就是在地图上找出国内不同城市的位置配对)
3)机器人游戏(输入简单的键来控制机器人的方向)
4)怎么用计算机录像 与 怎么用简单的绘画工具来绘画

不过能明显看出,孩子们最感兴趣的是电脑中的游戏,如泡泡龙。孩子天性嘛!
但我们应该让他们知道可以利用电脑做很多其他的事情。

值得一提的是,逻辑发展这个环节,虽然给定的机器人没有向右转的功能。
但大部分五年级的孩子都能很快的想到机器人“左转”三次就等于“右转”一次。
有的五年纪的孩子能理解给出的三个英文命令的中文意思:“前进“、“左转“和“停止“。
一个五年级的孩子最后成功的用程序画出了一个正方形。
然后这个孩子负责教了其他几个孩子写这个程序,还积极的演示给来参观的志愿者看。

pockey给三位崔各庄的老师介绍了“开放教育”的一系列内容。
随后这几位老师和pockey、浮游和fredthered等同学聊了好一阵子。
我觉得老师对这种体验活动都很接受和欢迎。

朱力安演示了一下教师终端控制学生电脑的功能。很好很强大~
播放了准备的用开源软件制作的动画片,投影到黑板上,孩子们很开心的以此为背景玩手影游戏。

去看了一下崔各庄的机房,比桃园学校好一些,机器多一些。刚配置的这匹二手电脑,看起来还不错。
据说还要安装网络。

最后几个孩子还问我们下周会不会来。我说回头来把今天用的软件拷给他们,或者装到学校的机器上让他们用。

现在已经确定下周六(2009年3月14日)在桃园学校再办一次体验活动,
番茄JJ建议之后在汇蕾学校也办一次。
因为崔各庄实验学校的校长今天不在,所以下周六还会再去一次崔各庄。

=====
一直以来大家在讨论Linux以及开源软件与我们所熟知的MS Windows世界的异同。很多朋友在尝试之后发现,从功能上确实可以互相替代,但最后因为习惯,游戏支持,办公软件或者因为企业部署成本的原因又回到Windows上。这种争论还会继续下去。
但从这次活动我们可以看到,对于孩子来说用什么软件不是很重要。他们也没怎么想过这是运行在什么操作系统上,运行的是什么软件,他们只看到了实质的内容:控制机器人,或者好玩的游戏。鼠标点击就可以开启一个游戏或者开启一个文字处理的界面。
先前还曾担心,让孩子们学习python编写的机器人小游戏(rur-ple),他们会觉着陌生乏味而没法继续下去。但实际的反应却超出预期。
对于孩子们的教育方式,我觉着还需要再想想,再调整。
不过无论如何,so fay so good!