在VPS上搭建PPTP VPN的极简攻略

Posted on 2015-09-08 by Shawn Wang

Posted in tools

我通常使用Socks或者Http代理做为科学上网方案, 但仍然有很多需要全局代理的场景, 例如像Android SDK类似的各种墙外工具的更新, 或者不能使用Socks代理的手机等, 还有的时候我们希望为亲朋好友提供一个科学上网的方案, 只需要账号密码的VPN方式是最佳的选择。

如果你需要你的VPN更加安全稳定, 那我要推荐你使用OpenVPNShadowVPN, 他们更加高效和安全。 当然如果你使用个人的VPS做PPTP VPN, 被追踪的可能也很小, 最重要的是如果你需要这个VPN不依赖于客户端随时随地任意设备可用, PPTP VPN最佳选择之一。

阅读以下内容前,您应该拥有一个可访问的VPS(什么是VPS?)。 可选的VPS有很多,热门的有DigitalOcean, Linode, Vultr, Bandwagon(俗称‘搬瓦工’)等等。 我个人推荐Vultr和DigitalOcean,理由是便宜、稳定、SSD、机房多、有日本机房(中国访问快), 最近维护VPS的时候出现了一些问题, 客服态度非常好, 反应也很迅速, 这个非常重要。

使用以下链接注册可以帮你立省10$, 够用两个月了。 这也是我写这篇文章的动力之一, 你好我好大家好:
http://www.vultr.com/?ref=6852942

以下Debian/Ubuntu为例, 介绍怎样在VPS上开启PPTP VPN

1. VPS安装pptpd包

使用SSH连接到你的VPS终端,安装pptpd package

apt-get install pptpd

2. 配置并启动pptpd

编辑pptpd.conf配置文件

vi /etc/ppp/pptpd.conf

添加以下配置, 很多配置如option /etc/ppp/pptpd-optionslogwtmp在安装pptpd package后,都已在/etc/ppp/pptpd.conf中设置好,以下不再重得。

localip 192.168.10.1
remoteip 192.168.10.101-200 # 为链接vpn的设备所分配的IP

编辑/etc/ppp/pptpd-options文件

vi /etc/ppp/pptpd-options

添加如下配置, 以下很多配置都已默认配好, 请逐一检查, 如没有则需要取消注释或手动添加。

# 以下配置已默认配好,无需更改, 检查若没有则添加
name pptpd 
refuse-pap 
refuse-chap 
refuse-mschap 
require-mschap-v2
require-mppe-128
proxarp
nodefaultroute
lock
nobsdcomp
dump
idle 300

# 以下配置需要取消注释
debug # 打开debug模式,方便查错,打开后日志可在/var/log/syslog中查看

# 以下配置需要手动添加
ms-dns 8.8.8.8 # 指定使用Google的DNS服务器
ms-dns 8.8.8.4

配置/etc/ppp/chap-secrets, 此文件配置了VPN账户、密码及可使用的协议, 向文件添加以下内容

# 注意替换用户名和密码
first_name pptpd password1 * 
second_username pptpd password1 *

重启pptpd服务,

/etc/init.d/pptpd restart

好了,现在VPN服务已经开启了,我们应该可以连接了,虽然还没有网络,下面就来连接VPN吧。

3. 连接VPN

普通VPN没有什么差别, 下面以window系统为例

打开网络共享中心,点击“创建新的网络链接”

set up1

点击“链接到工作区”

set up12

选择“创建新的链接”, 再点击下一步,

set up

点击“使用我的Internet连接”

set up4

输入对应地址信息, 完成

set up5

点击连接VPN, 输入与刚刚服务器配置相应用户名密码, 显示VPN连接成功!

4. 开启IPv4转发

刚刚已经说过, 目前的VPN是无法使用的, 因为我们还需要最后二步, 在服务器端开启IPv4转发并配置路由。

执行以下命令

sed -i 's/#net\.ipv4\.ip_forward=1/net.ipv4.ip_forward=1/' /etc/sysctl.conf

sysctl -p  # 使以上改变永久生效

此时应该会看到net.ipv4.ip_forward = 1返回

5. 配置路由

先创建一个配置iptables的网络启动脚本

touch /etc/network/if-pre-up.d/route

向脚本中添加以下内容:

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables --table nat --append POSTROUTING --out-interface ppp0 -j MASQUERADE
iptables -I INPUT -s 192.168.10.0/24 -i ppp0 -j ACCEPT
iptables --append FORWARD --in-interface eth0 -j ACCEPT

再给脚本添加可执行权限

chmod +x /etc/network/if-pre-up.d/route

执行脚本,添加iptables规则

/etc/network/if-pre-up.d/route

重启pptpd

/etc/init.d/pptpd restart


好了,现在你应该可以使用VPN自由的上网了,祝愉快!


VPS PPTP 科学上网 VPN

Donation

Latest Posts

在 VPS 上搭建 Cisco IPsec|L2TP over IPsec 的极简攻略

三年前我写过一篇在VPS上搭建PPTP VPN的极简攻略, 不过一年前我就不再使用 PPTP VPN 了,最主要的原因是因为 macOS 完全不支持 PPTP;另一个原因是基于 ipsec 协议的 VPN 更加安全,IPsec 协议会加密你的网络数据, 避免泄漏或者中间人攻击。所以现在对于需要全局代

为什么应该使用本地广播(LocalBroadcastManager)

从 Android 诞生已来,就一直有所谓的四大组件,BroadcastReceiver 是其中之一。 几乎在各种样的应用中都有 BroadcastReceiver 的使用,它被应用于接收系统发送的消息以及与其他应用之间的交互,但也被大量的误用于应用内部通信。 然而在同应用中使用则违背 Broadc

推荐 Vocabulary.com

阅读之前如果你还在思考背单词的意义,我建议你先想清楚,或者参考别人的意见,例如知乎的讨论 背单词是必须吗 等问题。 从英语方面来说,我肯定不是大神,小神都算不上。 我背单词的路径基本是 中学大学英语书附录 -> 高频词汇书 -> 扇贝单词 -> Vocabulary.com。 那为什么要来推荐 Vo

Comments