OpenVPN 101 简明教程
本指南仅仅是保证OpenVPN服务能够正常运作起来,并打开Internet转发,文末附送iPhone OS使用OpenVPN简短指南。
安装 OpenVPN
我使用的是系统是GNU/Linux Debian,所以以下安装方式和一些配置文件位置并不能应用在所有Linux系统上,不过既然大家都自己搭VPS了,装个软件包找个配置文件应该不在话下了。
apt-get update
对于Debian来说,这个是每次安装前必做的事情。
apt-get install openvpn udev
除了安装openvpn外,我们还需要添加tun设备,所以装个udev比较方便。
在Apache2下启用SSL(https)
这是一份快速教程,并没有顾及到方方面面,敬请谅解。
自签证书
a2enmod ssl
mkdir /etc/apache2/ssl
openssl req -new -x509 -days 365 -nodes -out /etc/apache2/ssl/apache.pem -keyout /etc/apache2/ssl/apache.key
第一行用来启用Apache2的ssl模块,第三行用来生成一个自签名证书。
配置Apache2使用自签证书
编辑”/etc/apache2/ports.conf”,确保有ip:443这样的设置,默认启用ssl模块后系统会自动添加。
NameVirtualHost 12.34.56.78:443
编辑VirtualHost文件:
<VirtualHost 12.34.56.78:443>
SSLEngine On
SSLCertificateFile /etc/apache2/ssl/apache.pem
SSLCertificateKeyFile /etc/apache2/ssl/apache.key
……
</VirtualHost>
前三行是设置启用SSL和设置证书位置,接下来按照正常的站点设置就可以了,可以参考《VPS建站LAMP 101》。
最后重启Apache就可以了。如果你对Linode有兴趣可以用这个地址注册:http://www.linode.com/?r=2423bd4b1aea90e0163241cd71513fe1b81108d3或者在注册的referral code中填2423bd4b1aea90e0163241cd71513fe1b81108d3,大约在三个月后我能得到一些好处,当然你直接跑去注册也没问题,以上链接并不会给你带来更多的优惠(当然也没什么坏处)。我个人在这里提供一个首月返还$10的Promo Code:storecrowd,这个是实在的优惠。
Debian跨版本软件包安装
Debian GNU/Linux这个伟大的操作系统任何时候都提供三个版本选择:stable, testing, unstable。stable就是公开发布的的版本,软件版本比较老,但是最稳定。testing是stable的预备版,软件版本比较新,相对stable会有较多Bug。unstable是版本最新,最不稳定的一个。所以一般来说作为服务器都会选择最稳定的stable,但是有时候stable里软件的版本实在太老了。比如stable里的Nginx版本是0.6.32,而我更想要testing下的0.7.64,因为这个版本对SSL支持更好。
基本上大家都会把 /etc/apt/source.list 文件中的stable改成testing,然后update一下就可以安装Nginx 0.7.64了。但问题是apt-get的机制是新版本优先,所以接下来的一次upgrade会看到大量的软件包需要更新,因为testing库里的版本一定会比stable更新,但是我并不想其它东西更新到testing。所以编辑一下 /etc/apt/preferences 文件,这文件可能一开始是没有的,自己建立一个就行,内容如下:
Package: *
Pin: release a=stable
Pin-Priority: 900Package: *
Pin: release a=testing
Pin-Priority: 800
第1, 2行很好理解,就是指这个版本的所有包。关键是Pin-Priority这个值,简单来说这个值谁大,apt-get就会装谁的,而不管版本大小。然后做一下update/upgrade看看,在同时有stable和testing源的情况下也不会upgrade到testing了。然后用下面这条命令安装testing中的Nginx。
apt-get install nginx/testing
这样Nginx更新到了testing版本而其他软件还维持在stable的版本上。不过这样设置的规则只对未安装的软件有效,具体来说如果已安装了testing的高版本软件,即使stable的Pin-Priority值高于testing,upgrade或者install时仍然会以已安装的testing版本为准,而不会安装stable中的软件。所以如果出于某种原因想upgrade(downgrade?)回一个较旧的版本(testing=>stable),或者本来是testing的,现在想搞回stable了,那就得这么干:同样修改/etc/apt/preferences
Package: *
Pin: release a=stable
Pin-Priority: 1001
只要Pin-Priority这个值大于1000,upgrade/dist-upgrade就会被强制升到指定版本。
实现Time Machine的网络备份
Time Machine作为OSX 10.5开始可以看得到的重要功能一直对于笔记本来说是一个接近鸡肋的东西。因为Time Machine需要一个额外的硬盘,而对于笔记本来说只能接驳一个外置USB硬盘(或者Fireware接口),特别是对于MacBook用户来说仅有的2个USB会被占用掉一个,而且这样的话笔记本只能乖乖的放在桌上使用,最坏的情况是某些型号的外置硬盘需要更大电流甚至需要占用掉所有的2个USB口。Apple并不是没有提供解决方案,只是由此的代价比较高昂:2400元的Time Capsule;或者1400元的AirPort Extreme加一个外置移动硬盘。
事实上只要网络中有共享文件系统,并且Mac可以访问读写即可以实现无线Time Machine。共享文件有很多选择:Windows的共享目录;Linux的SMB共享;Apple的SMB/AFP共享;Linux核心的路由器或者NAS也支持SMB共享。简单的说,只要Mac可以访问的共享目录都可以用于无线Time Machine。
首先确保Mac可以对共享的目录做读写,然后打开Terminal,输入以下命令:
defaults write com.apple.systempreferences TMShowUnsupportedNetworkVolumes 1
正常情况下Time Machine的选项里应该会出现那个共享目录可以供使用。但是在实际使用中会发现除了HSF+分区的共享目录外都不能正常生成Time Machine的存储文件。所以我们需要手动来创建一个可供Time Machine的映像文件,在Terminal下输入以下命令:
sudo hdiutil create -size 300g -type SPARSEBUNDLE -nospotlight -volname “Time Machine” -fs HFS+J -verbose ~/Desktop/yourmacname_aabbccddee.sparsebundle
请注意粗体字的部分:300g是用来指定这个文件最大尺寸;yourmacname是mac的机器名;aabbccddee是无线网卡的mac地址。命令结束后会在桌面上生成一个“yourmacname_aabbccddee”的文件(根据设置不同大约在300-400MB左右),把这个文件复制到共享目录。再启动Time Machine应该就可以正常备份了。
Linode的机房选择
入驻Linode最先遇到的问题就是选择机房,而国内大部分Linode使用者都是用Linode论坛里一个帖子提供的地址来测试各机房的速度,今天俺发现Linode官方专门建立了一个速度测试页面。一共5个机房(包括最新的London机房),每个机房都提供相同的100MB大小的测试文件以供下载。用浏览器随意测试了一下,对于国内用户来说仍然是Fremont和Dallas两个机房最快,对于网通线路来说Dallas甚至比大部分人推荐的Fremont机房更快一点。
Linode Facilities Speedtest
如果你对Linode有兴趣可以用这个地址注册:http://www.linode.com/?r=2423bd4b1aea90e0163241cd71513fe1b81108d3或者在注册的referral code中填2423bd4b1aea90e0163241cd71513fe1b81108d3,大约在三个月后我能得到一些好处,当然你直接跑去注册也没问题,以上链接并不会给你带来更多的优惠(当然也没什么坏处)。我个人在这里提供一个首月返还$10的Promo Code:storecrowd,这个是实在的优惠。