如何vpn( 二 )



VPN怎么用? 下面这个教程可以参考:

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

一台安装了Debian GNU/Linux 5.0的VPS 。

当然理论上所有可以安装pptpd包的*nix系统都可以作为主机, 教程中安装方式是基于Debian的apt-get命令, 其他发行版请自行对照使用 。

这台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 restar

理论上到这里一个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曾经把这个研究透
彻了

推荐阅读