Archive

Archive for the ‘Uncategorized’ Category

Debian上安装l2tpd/IPSec VPN服务

June 24th, 2010 Wei No comments

本文主要介绍在Debian Lenny下安装l2tpd/IPSec VPN服务。

配置openswan

运行如下命令安装openswan

sudo apt-get install openswan

编辑/etc/ipsec.conf,修改如下行:

net_traversal=yes
virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12
protostack=netkey

并在在文件最后一行,加上:

include /etc/ipsec.d/l2tp-psk.conf

复制l2tp-psk.conf文件

cp /etc/ipsec.d/examples/l2tp-psk.conf /etc/ipsec.d/l2tp-psk.conf

编辑l2tp-psk.conf文件,修改如下,并将其中的YOUR.IP.ADDRESS.HERE替换为主机的IP地址:

conn L2TP-PSK-NAT
    rightsubnet=vhost:%priv
    also=L2TP-PSK-noNAT

conn L2TP-PSK-noNAT
    authby=secret
    pfs=no
    auto=add
    keyingtries=3
    rekey=no
    ikelifetime=8h
    keylife=1h
    type=transport
    left=YOUR.IP.ADDRESS.HERE
    leftprotoport=17/1701
    right=%any
    rightprotoport=17/%any

编辑/etc/ipsec.secrets文件,其中YourPSKHere为将来PSK的Secret,YOUR.IP.ADDRESS.HERE为主机IP:

YOUR.IP.ADDRESS.HERE %any: PSK "YourPSKHere"

禁用accept_redirects和send_redirects,运行如下的命令(可能需要root用户权限)

for each in /proc/sys/net/ipv4/conf/*
do
    echo 0 > $each/accept_redirects
    echo 0 > $each/send_redirects
done

IPSec的配置就已经结束了。可以运行

sudo ipsec verify

来确认配置是否正确。输出的结果如下:

$ sudo ipsec verify

Checking your system to see if IPsec got installed and started correctly:
Version check and ipsec on-path                                 [OK]
Linux Openswan U2.6.24/K2.6.18.8-x86_64-linode10 (netkey)
Checking for IPsec support in kernel                            [OK]
NETKEY detected, testing for disabled ICMP send_redirects       [OK]
NETKEY detected, testing for disabled ICMP accept_redirects     [OK]
Checking for RSA private key (/etc/ipsec.secrets)               [OK]
Checking that pluto is running                                  [OK]
Pluto listening for IKE on udp 500                              [OK]
Pluto listening for NAT-T on udp 4500                           [OK]
Two or more interfaces found, checking IP forwarding            [OK]
Checking NAT and MASQUERADEing
Checking for 'ip' command                                       [OK]
Checking for 'iptables' command                                 [OK]
Opportunistic Encryption Support                                [DISABLED]

最后一项的DISABLED并不会影响配置。另外,如果在检测Pluto时提示了Command not found。请安装lsof。

重新启动ipsec,使配置生效

sudo /etc/init.d/ipsec restart

配置xl2tpd

运行如下命令安装xl2tpd

sudo apt-get install xl2tpd

编辑/etc/xl2tpd/xl2tpd.conf

[global]
ipsec saref = yes

[lns default]
ip range = 10.1.2.2-10.1.2.255
local ip = 10.1.2.1
length bit = yes
;require chap = yes
refuse chap = yes
refuse pap = yes
require authentication = yes
ppp debug = yes
pppoptfile = /etc/ppp/options.l2tpd

复制/etc/ppp/options.l2tpd

cp /etc/ppp/options /etc/ppp/options.l2tpd

编辑/etc/ppp/options.l2tpd,修改其中项目如下:

require-mschap-v2
ms-dns 208.67.222.222
ms-dns 208.67.220.220
asyncmap 0
auth
crtscts
lock
hide-password
modem
debug
name l2tpd
proxyarp
lcp-echo-interval 30
lcp-echo-failure 4

配置VPN用户,编辑/etc/ppp/chap-secrets文件,添加如下行(替换其中的username为今后登录的用户名,password为密码)

username l2tpd password *

启动xl2tpd

sudo /etc/init.d/xl2tpd restart

设置iptables转发

iptables –table nat –append POSTROUTING –jump MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward

设置ipv4转发,修改/etc/sysctl.conf中的如下行:

net.ipv4.ip_forward=1

运行如下命令:

sysctl -p

l2tp VPN至此就已经配置完了。使用如下参数配置VPN客户端,即可连接:
服务器(Server):YOUR.IP.ADDRESS.HERE (或对应的域名)
用户名(Username):username (在/etc/ppp/chap-secrets)
密码(Password):password (在/etc/ppp/chap-secrets)
密钥(PSK/Secret):YourPSKHere (在/etc/ipsec.secret中配置的)

如果客户端连接显示“server did not respond”,通常说明openswan的版本不对,Debian Lenny自带的版本貌似有些问题。在命令行运行如下命令,即可安装openswan-2.6.24:

sudo aptitude install libgmp3-dev gawk flex bison
wget http://www.openswan.org/download/openswan-2.6.24.tar.gz
tar xf openswan-2.6.24.tar.gz
cd openswan-2.6.24
make programs
sudo make install
sudo apt-get remove openswan
sudo /etc/init.d/ipsec restart
Categories: Uncategorized Tags:

月租50块、100块、400块和600块车位的区别

June 13th, 2010 Wei No comments

每月50块的:

只是进门费,没车位就不让进。

每月100块的:

随便进,随便停,只要不堵路中间。

每月400块的:

随便进,保证有车位了,就是你得慢慢找。B1没有去B2,B2没有去B3,总有一位留给你。

每月600块的:

进门问好,出门帮忙刷卡。这个车位就是你的,谁给占了,保安帮你打架去。

Categories: Uncategorized Tags:

Migrate Single Disk to RAID5 in QNAP 409 Pro

April 11th, 2010 Wei 3 comments

由于NAS上的硬盘即将告急,又赶上近期硬盘稍有降价。就趁机添置了2块1TB的硬盘,准备添加到NAS上使用。目前的情况是,当硬盘容量超过1TB时,一个好的灾难恢复机制就显得非常重要了。3块硬盘正好组建RAID5,可以容许1块硬盘损坏,但总容量则变为:最小单块容量×(硬盘数-1)。

QNAP 409 Pro号称有Online RAID Migration功能,我的理解就是,所谓Online,就是所有的服务都不需要停止,也不会在此过程中出现中断。然而,QNAP的RAID迁移过程,还是让我受了不少罪的。

Day 1:直接在Web管理界面上选择Single Disk,然后迁移到RAID5。迁移过程开始后,进度基本按照每半小时1%的速度进行着。在将近48小时的时候,未知原因,迁移过程中断。没有错误提示,没有日志,没有数据丢失。

Day 3:经过搜索论坛后,发现有人与我有类似的经历,解决的的方法是关掉所有的后台服务。依此进行,关掉全部AFP、SAMBA、MySQL等服务。仍然是在50%的位置中断。在SSH查看过程时,发现前10%有个mke2fs的进程;从11%到50%,则有一个cp -a的进程。

Day 5:重新启动NAS,确保kill掉所有的无关进程,重新迁移。从11%起,硬盘进入Read Only模式。但在50%时,再次中断。此时却发现_httpd_进程没有了,web管理页面自然也就没有了,重启后仍然没有。

Day 7:准备采取最后的方案,备份数据,然后重新设置服务器。在备份数据的时候,突然想到其他的方案。采用其他的迂回方案。首先remove以前的Single Disk,插入新的2块硬盘。在Web页面(经过换盘重启后不知道什么原因恢复了),创建新的RAID1(镜像)。然后在线插入以前的硬盘,识别后,通过SSH,将全部数据复制到新的Volume里面。接下来重新从Web管理页面将RAID1迁移到RAID5。然而,我却发现,这个迁移过程和之前的过程如出一辙,仍然是将RAID1的一块硬盘,与新硬盘组成一个新的Volume,然后把旧的数据复制进去。再进行迁移。可这次居然再50%之后没有停下来,Web页面能够看到迁移过程,提示剩余600分钟。。在此经过大约8小时,迁移完成,数据也没有丢失。

Single Disk to RAID 5的迁移过程

这个迁移的过程,貌似有些山寨:

  1. 新增的两块硬盘,组成新的Volume(degraded RAID5),加载点为/share/mdx_tmp(迁移过程的0%到10%)
  2. 通过cp,直接复制旧数据到新的volume,在此过程中,磁盘属于Read Only模式(迁移过程的11%到50%)
  3. 将旧的磁盘格式化,合并到新的volume里面
  4. 通过RAID5的sync,最终实现RAID5

RAID1迁移到RAID5的过程与之类似,因为RAID1两块硬盘互为镜像,所以迁移的过程中,可以直接断开一块硬盘,并执行上面的过程。

从这里看出来,这个迁移过程并不能算是完全的“online”。首先,需要停止所有的网络服务(包括SAMBA,AFP等);其次,即使可以不停止这些服务,迁移过程的11%~50%也是Read Only模式的,并不能实现完整的服务。

这里的经验是:

  • 迁移之前,停止所有的服务,并且停止所有有访问硬盘的进程
  • 备份,迁移之前备份还是非常重要的
  • 大约1TB的数据,迁移的时间大约为72小时。其中创建degraded RAID5大约需要2个小时,复制数据需要48小时,剩下的大约24小时为最后的迁移和sync的过程

迁移至Linode VPS

August 14th, 2009 Wei 5 comments

考虑再三,终于还是决定把主机迁移到Linode VPS了。

什么是VPS呢?Virtual Private Server,简单说就是虚拟机,与之类似的概念可以提到Hyper-V、VMWare等等。VPS利用虚拟机技术,在一台物理主机上安装多个虚拟主机。每个VPS主机都相当于独立的操作系统,与像Dedicated Hosting一样。

VPS(Unmanaged Virtual Private Server)与Shared Hosting的相比:

  1. VPS的资源是独立的,分配给你100MB内存,这些内存就是你的,别人抢不走
  2. 虚拟机操作系统上只有你一个人使用,拥有root权限,想装什么都装什么,想怎么tuning,就怎么tuning
  3. 可以安装多种操作系统,从Fedora到Ubuntu,再到CentOS。玩儿腻了,重装一个就行。

而与Dedicated Hosting相比,最大的优点就是价格了。Dedicated Hosting动辄就是每月上百甚至几百美元的费用,对于一般的用户来说,也是承受不起的。再者,Dedicated Hosting提供的硬件配置,一般也是用不到的。

当然VPS的独立操作系统既是它的优点,也是它很大的缺点。系统是独立的,你需要自己安装软件,自己配置,自己做performance tuning。对于Linux操作系统的能力还有有一定要求的。

这样,基于种种这些原因。VPS就浮现到我的迁移计划中。经过反复的比较,终于在SliceHost、fcksvps和Linode之中选中了Linode。其实SliceHost和Linode口碑都是非常不错的,唯一的缺点是SliceHost的机房到中国的速度比较低,而Linode这个老牌的VPS服务提供商,有全美4个机房的选择。我则选择了号称最快的Fremont, CA, USA机房。

我选择了Linode VPS最便宜的方案:RAM 360MB,Storage 16GB,Bandwidth 200GB,基于Xen的虚拟机技术。配置不高,而对我这样一个小的网站来说,很合适了。与超售严重、资源要求苛刻的Shared Hosting来说,这个配置是非常值得的。

在操作系统上,我选择了Ubuntu 9.04 64bit。在经过1~2个网站迁移后的试用之后,觉得正式全部迁移过来。

在目前的配置上,我使用了Apache2、MySQL、PHP5。具体配置如下:

Apache:

KeepAlive                 On
MaxKeepAliveRequest       20
KeepAliveTimeOut           5
<IfModule mpm_prefork_module>
    StartServers           5
    MinSpareServers        3
    MaxSpareServers       10
    MaxClients            25
    MaxRequestsPerChild  500
</IfModule>

PHP:

memory_limit = 64M

本来为了内存设置,想设置memory_limit=16M,可设置为16M、24M和32M,WordPress不是显示有问题(白屏),就是不能升级。权衡一下,还是保留了64M。

MySQL:

key_buffer             = 16K
max_allowed_packet     = 3M
thread_stack           = 64K
thread_cache_size      = 8
table_cache            = 3
#skip-innodb

在如上配置情况下,内存占用是这样的:

.            total       used       free     shared    buffers     cached
Mem:           360        355          4          0          1         27
-/+ buffers/cache:        326         33
Swap:          255        129        126

从配置和性能上看,剩余物理内存只有33M,这时的SSH也会变慢。如果准备在VPS上host较多的网站,还是采用高一级别(540M)的配置比较好,或是使用高性能、轻量级的web服务器(比如nginX或Lighttpd)。Linode支持升级,无论是单一的内存、流量、磁盘,还是统一的level升级,都可以做。而这些只需要在后台即可完成。

如果你也对Linode VPS感兴趣。可以通过下面链接申请(链接带有推荐代码):

http://www.linode.com/?r=d399a85050ef9caca9080683c2b2249dd45454f6

Categories: Uncategorized Tags: , , , ,

京东(360buy)现在太不靠谱了

July 1st, 2009 Wei 3 comments

京东现在越来越不靠谱了。唉~~~

因为订单问题,我的NAS和硬盘需要分两张订单购买。这里主要说硬盘的订单,我在6月24日周三下的订单购买WD的硬盘一块,下订单的时候,产品库存状态显示“有货”(不是“在途”、“预定”、“无货”)。结果,之后的周四、周五,订单一直处于“等待打印”状态。直到周六下午,京东在订单上留言,要求取消订单,原因是缺货。

我很愤怒,因为下订单的时候仍然显示有货,而且,缺货的话,3天都不处理,第4天才有回复,再者,订单缺货连个电话都没有,显然不把我们钻石客户放在眼里阿。为此,我在商品咨询(为的是让大家都看到)上写下如下关于库存管理的留言:“京东现在有点儿过份了。下订单时显示有货,3天没人理,接着就是订单留言缺货,要求取消订单。连个电话都不打,太不把客户放眼里了吧”。留言是在周六晚上发的,发送之后,该条留言可以在商品咨询中看到,但没有京东回复。周一,该留言从商品咨询中消失,但是在后台仍然能看到该留言,状态为“未回复”。周一晚上,该留言彻底消失。[[[京东现在太绿坝了~~~

因为缺货,周六晚上重新下订单购买其他品牌的硬盘。该订单出库迅速,但一直停留在“等待扫描”的状态,打印和出库的日期均为周一上午。直到周二,我们突然发现,订单仍然为“等待扫描”的状态,这次我们准备直接投诉。在写投诉内容时,却发现打印和出库时间均被修改为周一上午。这直接导致我们的投诉改变了方向,转为投诉订单处理滞后和修改订单。2小时后,该投诉在后台的“我的投诉”中消失。订单迅速扫描+打包完成。

我理解京东最近因为促销,订单量剧增。但上述两个问题均不是由于订单量增加出现的问题,完全是人为因素。何况,还删贴。至此,我的硬盘从首次下单开始已经1周了,至今还未收到。

Categories: Uncategorized Tags: , ,

Flash小游戏——Untangle

February 8th, 2009 Wei No comments

这其实是一个说起来挺简单的游戏,只是要把缠在一起的线解开,让任意两条线没有交叉点。不过说起来容易,做起来难。

想玩儿的话,点这里进去:http://www.nonoba.com/chris/untangle

Categories: Uncategorized, game Tags:

总得写点儿什么

January 29th, 2009 Wei No comments

好久没有更新了。再不更新就该有人说这个blog关闭了。先祝大家春节快乐,不管晚不晚。大家担待吧。

最近工作正式发生变化了。变得忙了不少。本来12月底到1月份正好是美国的大假,本来都已经轻松了,结果就在春节放假前1周,我突然收到BD经理发来的邮件,这下有活儿干了,而且deadline是1月底,看来春节是过不好了。不过BD经理是个好人,之所以提前说这事儿,就是怕耽误我们过节玩儿的时间。

正月初三那天,全家聚会,20多口子,拖家带口的。King也跟着去了,也算露了个脸。

Categories: Uncategorized Tags:

赌博害死猫

October 13th, 2008 Wei No comments

话说赌博真不是件什么好事儿。周末去了位于大悦城的嘉斯猫,完全就是一个赌场,里面虽然有游乐项目,却大部分是类似与赌博机的东西,什么老虎机、推币机之类。价钱倒真是不算太贵,每个币需要1块钱,而单次消费最多的的机器也只需要4个币,绝大多数都是1个币就可以玩儿的。

然而这却绝没有想象中的那么轻松。300多个币,在短短的1个多小时时间里,就全都用完了……

Categories: Uncategorized Tags:

简述北京奥运会开幕式

August 9th, 2008 Wei 1 comment

总体来说是很不错的。张艺谋基本上没让人失望。但也存在一些遗憾:

  1. 中央台的转播太差了,镜头切换太没水平了;该近景的不近景,该远景的不远景,简直就是乱七八糟。
  2. 卷轴运用的有些多了,几乎每个项目都有卷轴的踪迹;
  3. 李宁最后的点火仪式,还是不错的。可在绕场一周的时候居然跑过了卷轴,更郁闷的是,最后还放慢速度被卷轴抄过去了。不过不好说是不是就这么设计的。
  4. 被称为机密的焰火表演,特色部分只有脚印吗?不得不承认,这29个脚印挺有特色的,效果很好,可对于期待的效果而言,不如rehersal的时候那么让人觉得惊奇。
  5. 这其实是挺重要的一条,福娃那哥五个哪儿去了?整个开幕式都不见福娃?作为第29届奥运会的吉祥物,居然完全没有在开幕式上出现?

WordPress upgraded to 2.5

March 30th, 2008 Wei 1 comment

WordPress just released vertion 2.5. I have been using 2.5 RC from demo site of WordPress China. The backstage management is re-designed and it is amazing. Accordingly, I have also upgraded my site.

Since I have never upgraded my WordPress site from version 2.1 when I initially set up the site, WP2.5 is a big progress for me: native tagging, new backstage management, etc.

There was a problem that defining the permalink while writing new post, since the “Permalink” section only displayed after post had been saved. While I’m using in 2.5 Final, the auto saving will make “Permalink” section appeared, so there is a chance to update the link. That never be a problem now.

I also re-grabbed the plugins and themes, so at the very begining, the theme will be set to default and will be assigned new themes once everything goes okay.

Update Mar 30@19:05: Theme is decided and all plugins are available now. Sitemap is re-generated w/o Category, Tag, and Archive pages to improve SEO. Some legacy plugins are remained since some posts rely on it.

Update Mar 30@23:16: Just found that the theme is designed for WordPress v2.2, so it is using UTW as tagging plugins, not the new native tagging. In that case, the theme will not show the buildin tags. And the design will not show Permalink, Trackback and Categories in main page. Simply edited the theme file, to make these available.

Update Apr 1@17:17: I finally disabled “Add to any” and “Add to any subscribe” plugins, which made my blog loaded really slow.

Categories: Uncategorized Tags: ,