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比较方便。

Read More… »

VPS建站LAMP 101

自从跑到Linode上买了VPS,建站就得自己从零开始,这里写点基本建站的过程。

  • 以下内容是标准而又基础的LAMP搭建,不涉及ngix, lighttpd这些服务。
  • 以下内容非特别注明都在root权限下执行。
  • 以下内容使用的操作系统是Debian 5.0 (Lenny) 64bit,不过只要是Debian Like(比如 Ubuntu)的系统应该是通用的。
  • 由于各家VPS提供商的基础系统安装步骤各不相同,文章内容并不涉及到系统安装和域名设置。

设置时区
  系统安装完毕后,最好先设置一下时区。一般来说大部分发行版本默认的时区设置是UTC,个人建议还是把它设置成自己的当前时区比较好。

dpkg-reconfigure tzdata


设置HostName
  HostName设置成自己喜欢的就行,不过有些系统保留的名字不要用。

echo “youlikename” > /etc/hostname
hostname -F /etc/hostname

  设置完HostName后,继续让这个名字和Linode分配给你的公网ip地址相关联。
修改/etc/hosts:

127.0.0.1 localhost
12.34.56.78 youlikename

安装配置Apache服务
  对于Debian Like用户来说安装任何东西都极其简单,使用以下命令就可安装Apache Web服务。

apt-get install apache2

  然后需要修改/etc/apache2/ports.conf,加入以下内容:

NameVirtualHost 12.34.56.78:80

  IP地址当然是VPS供应商提供给你的独立IP,如果不想站点公开化当然也可以更改80端口。
  然后需要修改默认的虚拟主机IP地址和端口,修改/etc/apache2/sites-available/default:

<VirtualHost 12.34.56.78:80>

配置虚拟主机
  Apache2开始对虚拟主机的配置基本上做到了傻瓜化,非常适合各类像我这样的新手。所有的虚拟主机配置文件被放置在:

/etc/apache2/sites-available/

  每个配置文件和域名一一对应,便于管理。比如需要设置两个站点,可以创建如下两个配置文件:site1.com; site2.org。
/etc/apache2/sites-available/site1.com

<VirtualHost *:80>
     ServerAdmin admin@site1.com
     ServerName site1.com
     ServerAlias www.site1.com
     DocumentRoot /srv/www/site1.com/public_html/
     ErrorLog /srv/www/site1.com/logs/error.log
     CustomLog /srv/www/site1.com/logs/access.log combined
</VirtualHost>

/etc/apache2/sites-available/site2.org

<VirtualHost *:80>
     ServerAdmin admin@site2.org
     ServerName site2.org
     ServerAlias www.site2.org
     DocumentRoot /srv/www/site2.org/public_html/
     ErrorLog /srv/www/site2.org/logs/error.log
     CustomLog /srv/www/site2.org/logs/access.log combined
</VirtualHost>

  然后建立相应的目录:

mkdir -p /srv/www/site1.com/public_html
mkdir -p /srv/www/site1.com/logs
mkdir -p /srv/www/site2.org/public_html
mkdir -p /srv/www/site2.org/logs

  最后启用这两个站点:

a2ensite site1.com
a2ensite site2.org

/etc/init.d/apache2 reload

  Apache2提供了两个命令来快速启用和关闭某个站点:a2ensite和a2dissite。

安装配置Mysql
  安装Mysql Server一如既往的简单:

apt-get install mysql-server

  安装完毕后我建议运行一下mysql_secure_installation来做一些基本的安全设置,它会检查root密码、移除anonymous帐号、禁止root远程登录、移除test数据库。
  使用root帐号进入mysql。

mysql -u root -p

  创建数据库。

create database site1db;

  给新创建的数据库制定一个用户和密码。

grant all on site1db.* to ‘site1dbuser’ identified by ‘site1dbpwd’;

安装配置PHP
  在Debian下安装东西实在是没啥技术含量.

apt-get install php5 php-pear php5-suhosin

  然后对php.ini做些修改,让它能在VPS有更好的性能,不过我一直牢记着这条“premature optimization is the root of all evil”,所以在这些基础的设置之外个人建议各位和我一样的新手们,咱先不要去考虑其他的优化参数。
  修改/etc/php5/apache2/php.ini:

error_reporting = E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR
display_errors = Off
log_errors = On
error_log = /var/log/php.log
max_execution_time = 300
memory_limit = 64M
register_globals = Off

  你可以把上面这些内容复制到php.ini的末尾,也可以把它们一条一条找出来,然后去掉行首的注释字符“;”。
  为了让php支持Mysql,安装下面这个包:

apt-get install php5-mysql

  101教程到此结束,基本上做完上面这些事,站点就能运转起来了。

  最后,如果你对Linode有兴趣可以用这个地址注册:http://www.linode.com/?r=2423bd4b1aea90e0163241cd71513fe1b81108d3或者在注册的referral code中填2423bd4b1aea90e0163241cd71513fe1b81108d3,大约在三个月后我能得到一些好处,当然你直接跑去注册也没问题,以上链接并不会给你带来更多的优惠(当然也没什么坏处)。我个人在这里提供一个首月返还$10的Promo Code:storecrowd,这个是实在的优惠。

如果你对Linode有兴趣可以用这个地址注册:http://www.linode.com/?r=2423bd4b1aea90e0163241cd71513fe1b81108d3或者在注册的referral code中填2423bd4b1aea90e0163241cd71513fe1b81108d3,大约在三个月后我能得到一些好处,当然你直接跑去注册也没问题,以上链接并不会给你带来更多的优惠(当然也没什么坏处)。我个人在这里提供一个首月返还$10的Promo Code:storecrowd,这个是实在的优惠。

Linode下的Apache2+Mysql+Php安装配置

如何快速搭建一个VPN(pptp)

  这是一个简短的教程,目的是为了快速搭建一个可用的VPN,本文并不涉及有关VPN的正常使用内容。本简短教程基于以下硬件条件:

  1. 一台安装了Debian GNU/Linux 5.0的VPS。
    • 当然理论上所有可以安装pptpd包的*nix系统都可以作为主机,教程中安装方式是基于Debian的apt-get命令,其他发行版请自行对照使用。
  2. 这台VPS的物理位置是Fremont, CA。
    • 物理位置作为VPN这个应用本身并不重要,在这里提出只是多此一举。

安装服务器端软件

# apt-get install pptpd

  Debian的包管理是所有发行版里最好的,所以这条命令打完就安装完毕了我们的pptp服务器端程序。

配置IP地址范围
  编辑/etc/pptpd.conf,在最后添加如下地址:

localip 192.168.0.1
remoteip 192.168.0.234-238,192.168.0.245

  这两句设置了当外部计算机通过pptp联接到vpn后所能拿到的ip地址范围和服务器的ip地址设置。

增加一个用户
  编辑/etc/ppp/chap-secrets,在下面增加类似的条目:

username pptpd password *

  上面内容很好理解,最后那个星号是说允许从任何IP地址联接,如果你想单独设定IP地址也可以。

重启pptpd服务

# /etc/init.d/pptpd restart

  理论上到这里一个vpn就已经搭建完毕了。无论你用的是Windows还是OSX,或者是iPhone OS,都可以通过建立一个pptp链接来联入这个VPN。不过你并不能通过这个来上Internet,因为所有的数据都作用于那台pptpd的服务器上,而不会传入拨入的计算机设备上。要上Internet还需要这么干:

dns解析支持
  编辑:/etc/ppp/options,在里面找一下“ms-dns”项目:

ms-dns 208.67.222.222
ms-dns 208.67.220.220

  我填写的是OpenDNS的地址,当然你也可以填写电信的DNS。

允许转发
  编辑/etc/sysctl.conf,看一下net.ipv4.ip_forward参数是不是1。

net.ipv4.ip_forward=1

  最后的最后,运行一下这条命令来打开iptables的转发支持:

/sbin/iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE

注意:来自@LEMONed的消息,只有Xen的VPS可以搭建pptp,OpenVZ的不行。

引用来自@LEMONed的话:
因为openvz下只有venet0,没有eth0,而绝大多数的vps都是openvz的,然后绝大多数的openvz vps都没有masqurade,只能搭建openvpn并且要自签证书什么的,根本不能用pptpd。我为了给iphone搭个vpn曾经把这个研究透彻了

看来过几天我得再写一份搭openvpn的教程。

这里有个如何在openvz下搭建OpenVpn的教程:OpenVZ VPS安装配置OpenVPN

整理信件及其他

  Gmail的IMAP打开后试用了一阵,但国内链入Gmail服务器的速度让这个服务完全处于不可用状态,于是作罢。但由此带来的后遗症是昨天我决定打开Gmail的Pop功能把Gmail上的邮件都做一个本地备份,由此有了以下一些感想:

  • 不知道是Gmail聪明还是Mail.app聪明,就整个过程看Mail.app一小部分一小部分的在收取Gmail上的邮件。它没有傻到一下子去下多达2G的Mail,而是每次20-50封的去下载。(最大的可能还是Gmail做的如此设定)
  • Mail.app是我用过的所有邮件客户端配置信箱最舒心的一个,我只是填写了我的Gmail地址,然后它自动配置了我的pop和smtp信息,而且十分正确。(要知道每次我都是跑到Gmail的help页面上去看那难记的三个数字)
  • Mail.app的过滤条件设置用起来很顺手,点击需要过滤的邮件然后选择规则,接下来弹出的对话框就会按照当前邮件内容变化。(比如选发信人、收件人、标题,都会以当前邮件内容做范本)
  • Mail.app并不复杂,但是都是我需要的。比如在帐号信息里可以获取Pop服务器上信件的基本信息(发件人、主题、大小),如果有必要可以直接删除而无需下载。(这个对于我很重要,有一个新加坡的邮箱经常会因为一封信收不下来而重复收取,用Mail.app就可以事先删除掉)
  • 如果在Gmail的Setting里的Pop选项页里再点一次确定,邮件会再次重复收取。(切身体会,特别是做全部邮件备份请特别注意)
  • 对Gmail帐号做一个本地备份是一件很傻的事情。

Technorati Tags: , ,