在”VPS初体验及自架VPN服务“一文中我就推荐过如何架设 PPTP VPN 服务的文章,而此文则在原文基础上作了一些修改和补充,并增加了” 如何在 Linux 上连接 PPTP VPN ” 这一节。
本文所涉及的运行环境:远程服务器为 VPSLink 上低配置 Xen VPS ( 注意,OpenVZ VPS 是不能安装 PPTP VPN 的),Linux 系统为 Ubuntu 9.04 ,本地服务器为安装在 VirtualBox 虚拟机中的 Ubuntu Server 9.10 。
1. 如何快速搭建一个VPN(pptp)
# 安装服务器端软件
apt-get install pptpd
# 配置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 *
# 重启pptpd服务
/etc/init.d/pptpd restart
# 编辑:/etc/ppp/options,在里面找一下”ms-dns”项目:
ms-dns 8.8.8.8
ms-dns 8.8.4.4
#允许转发,编辑/etc/sysctl.conf,看一下net.ipv4.ip_forward参数是不是1,或直接执行以下命令来查看
sysctl net.ipv4.ip_forward
# 如果输出为 0 的话就要修改 /etc/sysctl.conf 中的 net.ipv4.ip_forward ,把 0 改为1,然后执行以下命令。
sysctl -p
# 最后,运行一下这条命令来打开iptables的转发支持:
/sbin/iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE
/sbin/iptables -I FORWARD -p tcp –syn -i ppp+ -j TCPMSS –set-mss 1356
# 并把这两条加入到 /etc/rc.local 中的 exit 0 行前面,这样重启后就无需再执行了。
# 好了,PPTP VPN 到此就架设好了,你现在可以用 Windows 自带的 VPN 连接工具来连接了,这个应该非常简单。那么下面我再说说如何在 Ubuntu 上手工配置 PPTP VPN 连接吧。
2 .如何在 Linux 上连接 PPTP VPN
# 安装 Linux 上的 pptp 客户端
apt-get install pptp-linux
# 把下面两行加入 /etc/rc.local , 放在 exit 0 这一行的前面
/usr/sbin/pptpsetup –create lable –server ip –username username –password password –encrypt
/usr/sbin/pppd call lable
# 说明:这两行命令是最简便的建立 PPTP 连接方式。
Label: 用户自定义
IP: 是 VPN 的 IP 地址
Username 及 Password :登录 VPN 的用户名和密码
# 把下面两行加入 /etc/ppp/ip-up 中,删除默认网关及把 VPN 服务器作为默认网关,也就是改变路由策略,把所以传输流量通过 VPN 线路来走。
/sbin/route add default gw 192.168.0.1
/sbin/route del default gw 原来的网关 // 原来的默认网关地址可通过 route 命令来获取
# 另外,如果你想把此服务器作为网关服务器的话,那就按照前面架设 PPTP VPN 一节中的方式,设置 net.ipv4.ip_forward 参数来打开包转发。并把下面两行加入到 /etc/rc.local 中。
/sbin/iptables -t nat -A POSTROUTING -s 内网IP/24 -o ppp0 -j MASQUERADE
/sbin/iptables -I FORWARD -p tcp –syn -i ppp+ -j TCPMSS –set-mss 1356
# 重启服务器,你可以用 ifconfig 看一下,会多出一个 ppp0 的网络接口了。另外,你可以 traceroute twitter.com 看一下,是否通过 ppp0 的网关出去的,如果是的话,就说明工作正常。
# 注意:在作网关服务器的时候,建议使用 Google 的 DNS ,国内很多 DNS 被污染了,无法正常解析 Twitter 等网站。
# 修改 /etc/resolv.conf 中,改为如下两行
nameserver 8.8.8.8
nameserver 8.8.4.4
from http://riku.me/2010/01/27/vpn.html
要是早些时候看到这篇文章就好了,前段时间正需要这方面的教程。