如何在自己的vps上搭建vpn

Westy 写于 2009年12月21日
Tags: , ,

最近墙有愈演愈烈之势,而且我已经厌倦了不停的换各种穿越工具,又不想用什么门,什么界,于是萌生了自己利用vps建立vpn的念头。现在分享自己的建立过程。其实大部分我都是参考了Observer的这篇文章,但是他的文章里还是有一些不确切的地方以及一些对新手来说可能不了解的地方,我在这里都做一点更正跟说明,另外,感谢Observer之前的工作。

一、开通vpn

  1. 登录,http://rapidxen.net/plans
  2. 点选7.49刀的第一个方案(优惠代码大家可以搜索 rapidxen coupon)
  3. 填写资料,在OS中选择Ubuntu 9.04 x64版本
  4. 提交、付钱(paypal)、等待
  5. 收到系统开通的email之后,登录后台,在logs里面找到root密码。

二、连接服务器并安装服务

  1. 推荐win下的同学使用PuTTY连接服务器。
  2. 在Host Name处填写vps的ip地址,连接
  3. 用root跟你得到的root密码登录。
  4. 安装PPTPD
    apt-get install pptpd
  5. 安装nano(如果你能够熟练的使用vi,可以省略这一步)
    apt-get install nano
  6. 编辑pptpd.conf文件
    nano /etc/pptpd.conf

    使得非注释内容如下:

    option /etc/ppp/pptpd-options
    localip 192.168.0.1
    remoteip 192.168.0.234-238,192.168.0.245
  7. 添加登录用户
    nano /etc/ppp/chap-secrets

    添加一行,内容如下

    你想要的用户名	pptpd	"你想要的密码"	*

    密码用半角双引号括起来

  8. 编辑pptpd-options
    nano /etc/ppp/pptpd-options

    找到ms-dns,取消掉注释,并修改dns地址(推荐Opendns或者Google dns)

  9. 开启转发
    nano /etc/sysctl.conf

    取消如下内容行的注释

    net.ipv4.ip_forward = 1
  10. 一个不知道什么作用的命令(汗,得恶补linux知识了),我自己运行了这条命令
    echo 1 > /proc/sys/net/ipv4/ip_forward
  11. 安装iptables并设置
    apt-get install iptables
    iptables -t nat -I POSTROUTING -j MASQUERADE
  12. 启动服务
    /etc/init.d/pptpd restart
  13. VPN搭建完毕,可以尝试用客户端登录了
目前,共收到 14 条回复
2009.12.22 12:21 am
ocean dull

运行完iptables -t nat -I POSTROUTING -j MASQUERADE后显示为:

iptables: No chain/target/match by that name

请问这是正常的吗?

2009.12.22 9:11 am
Westy

@ocean dull 试试运行echo 1 > /proc/sys/net/ipv4/ip_forward之后再运行这条命令呢?

2009.12.22 11:59 pm
ocean dull

当然是照着你的顺序执行的啊。貌似和iptables的masquerade module有关。我执行了一下
root@vps12:/#modprobe ipt_MASQUERADE

得到结果是

FATAL: Could not load /lib/modules/2.6.26-2-openvz-amd64/modules.dep: No such file or directory

又执行了一下
root@vps12:/# iptables -t nat -L

结果是
Chain PREROUTING (policy ACCEPT)
target prot opt source destination

Chain POSTROUTING (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination

又带上“-v”执行你的命令
root@vps12:/# iptables -t nat -I POSTROUTING -j MASQUERADE -v

结果显示
MASQUERADE all opt — in * out * 0.0.0.0/0 -> 0.0.0.0/0
iptables: No chain/target/match by that name

总之好像没法插入masquerade这条target到postrouting。搜索了一晚也没成果,郁闷

2009.12.23 9:03 am
Westy

@ocean dull pptpd方式的转发只能建立在Xen架构的VPS上面,看情况你的VPS是openVZ架构的吧。写这篇教程是基本完全按照我在rapidxen上建立vpn的顺序来的,配置过程没有出现过你这样的错误提示啊。更深层次的linux知识我也不太清楚了,最近我可能会reimage服务器按照自己这个教程再配置一次。看看有什么疏漏没有。

2010.01.22 7:38 pm
ouwen

你好,我是一个菜岛,想自已DIY一个VPN,看了OBSERVER 回你的文章, 我有些问题不清楚
1,那个PUTTY网站我看到有两个版本下载,但是版本里面有不止一个下载程序,我是window用户,应该下哪个?下哪些?
2,安装PPTPD
apt-get install pptpd
那个安装命名,不好意思由于我从来没接触过这些,只靠一个命名就能安装的吗?安装包也没有
暂时就是这2点不明白,还有能把你的邮箱联系一下我的邮箱吗?谢谢

2010.01.27 8:00 pm
冰古
echo 1 > /proc/sys/net/ipv4/ip_forward

这条命令就是说把1写进后面那个文件吧。

iptables -t nat -I POSTROUTING -j MASQUERADE

这条命令我比较疑惑,因为别的教程都是

/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

这样的。

不过那两条命令我这里运行出错了,自己解决不了,囧。

2010.02.01 10:41 am
Westy

@ouwen putty只有一个exe文件,http://the.earth.li/~sgtatham/putty/latest/x86/putty.exe 这个就可以;
安装确实是一个命令就可以的,安装包系统会自己去网络上下载。

2010.02.01 10:42 am
Westy

@冰古 这条命令也是我请教一个对Linux比较熟练的同学得到的结果,后两条应该是限制了一些范围。

2010.03.04 6:21 pm
ouwen

@Westy PUTTY我找到了,也租了一个VPS.茫茫网海,系统怎能找到一个正确的下载?是不是LINUX有一个特别的下载资源?

2010.03.06 9:51 pm
ouwen

我不知道楼主有没有要ubantu 9.04里面试过,我试过2次的9.04没有一次是能连得上的,终于reimage成8.04版的,就行了,我现在还是想不通

2010.04.27 10:32 am
sxjzg

搭建的vpn速度 怎样。独立ip吗

2010.04.27 4:41 pm
Westy

是独立IP,速度尚可,一般的网页浏览和youtube都可以胜任

2010.05.17 5:48 pm
joshua

我所有的服务器端操作都成功了
但是我是win7,新建一个vpn连接后,如果vpn类型设为PPTP,不需要加密,就显示809错误

我在路由器上也把vpn pptp打开了
是为什么呢?

2011.09.30 9:59 am
转:如何在自己的vps上搭建vpn | Keep Learning

[...] 之前一直都用各种穿越工具,发现都不稳定,最后终于决定自己买VPS搭建VPN,基本可以,估计可以稳定的使用一段时间了。现在分享自己的建立过程。主要是参考了玩物的这篇文章,怕以后找不到,摘录下来,并加上了自己的一些体会 [...]

我要加盖一层

鴕鳥誌 is proudly powered by WordPress