AWS EC2搭建VPN服务器
基本介绍
主要介绍如何在12个月免费的AWS EC2中搭建基于PPTP协议的VPN服务用于翻越GFW,平时Google搜索一下也很方便,会涉及CentOS, RedHat和Ubuntu操作系统。虽然自己有用其他翻Wall软件,也有我司的VPN服务帐号,但还是想折腾一下,说不定还可以出售给小白同学。
而且自己搭建VPN有诸多好处:
- 暂时免费,只要不超出AWS免费流量和时间限制;
- 速度有保障,可以选择最快地区的AWS EC2进行搭建;
- 自己的帐号自己管理,流量也自己控制,安全有保障。
AWS EC2已经在另一篇Blog中有相关介绍,有兴趣可以参见AWS EC2入门篇。
VPN: Virtual Private Network, 虚拟专用网络,是一种远程访问技术,主要功能是在公用网络上建立专用网络,进行加密通讯,支持跨平台。
PPTP: Point to Point Tunneling Protocol, 点对点隧道协议,是PPP协议的基础上的增强型安全协议,支持多协议VPN,默认端口号1723。利于PPTP可以快速搭建自己的VPN,并且在很多的移动设备上也支持PPTP,同时PPTP速度也较快,资源消耗也小。
简单介绍了之后,可以尝试以下步骤在服务器上搭建一个VPN服务。
Step1 - 安装PPTP
On Ubuntu 14.04 x64:
|
|
On CentOS or Red Hat Linux 6.x x64:
|
|
如果找不到源,返回No package pptpd available
,如Amazon AMI Linux,可以采用以下方法解决:
- 方法一: 下载rpm包直接安装(推荐)
|
|
- 方法二: 需要添加新的源
|
|
Step2 - 配置PPTP
编辑/etc/pptpd.conf
:
|
|
搜索localip
并去掉以下字段前的注释符#
,保存并退出
|
|
localip
表示VPN服务器使用的地址,而remoteip
表示分配给VPN客户端的地址范围,当然也可以自定义设置范围。
Step3 - 添加DNS解析
针对Ubuntu
系统,编辑/etc/ppp/pptpd-options
:
|
|
针对CentOS/RedHat
,编辑/etc/ppp/options.pptpd
:
|
|
在文件中搜索ms-dns
,去掉以下字段前的注释符#
,并修改为以下值后保存退出
|
|
以上两条配置指定了使用Google Public DNS服务器。
Step4 - 添加VPN用户
编辑/etc/ppp/chap-secrets
,添加用户名和密码条目,格式为[username] [service] [password] [ip]
:
|
|
其中,用户名和密码可自行设置,服务名应为pptpd
,IP表明允许登录的ip列表,如果允许所有ip可以设置为*
。
Step5 - 开启IPv4转发
为了支持IP数据包的转发,需要开启IPv4转发功能。
编辑/etc/sysctl.conf
:
|
|
搜索并找到以下字段,去掉注释并修改为以下值:
|
|
= 1
表明开启了服务器内核支持IP数据包转发功能,允许通过PPTP协议在公有IP和私有IPs之间进行数据包转发。
使得修改生效,需要执行:
|
|
Step6 - 创建NAT规则
创建网络地址转换,添加防火墙规则到iptables中,在终端执行以下命令
|
|
pptpd默认监听1723端口,可以通过以下命令查看:
|
|
(可选)如果端口没有开启则开启相关端口:
|
|
Step7 - 启动PPTP服务
|
|
可以看到服务已经启动:
针对Ubuntu,即使运行start命令,但查看status还是显示pptpd is not running
,可以编辑/etc/init.d/pptpd
文件,搜索status
找到该行status_of_proc "$PIDFILE" "$DAEMON" "$NAME" && exit 0 || exit $?
,并添加-p
参数:
|
|
针对VPN日志,在CentOS中,VPN服务器默认会写日志到/var/log/messages
中; 在Ubuntu中,VPN服务器默认会写日志到/var/log/syslog
中。
以上步骤完成配置正确后,可以利用自己的终端设备连接到VPN上网了。
Step8 - 使用VPN服务
在Mac OS X上配置VPN
System Preferences(系统设置) -> Network(网络):
选择左下角的+
号添加VPN,选择PPTP类型,点击create创建:
Advanced(高级) -> Options(选项) -> 勾选Session Options中的所有项 -> OK保存:
填写VPN相关服务器地址、用户名、密码等信息 -> 点击Apply应用所有修改 -> 点击connect连接VPN服务:
其中Server Address绑定了子域名aws.vpn.xxx
,在需要更改服务主机时只需要重定位DNS即可,Client终端配置不需要更改,当然要做负载时也很方便,同时也利用记忆。
在iPhone 6s上配置VPN
首先进入Settings设置,选择VPN项(也可以借助第三方软件,如AnyConnect):
选择PPTP类型,填写服务器地址、用户名、密码等,然后保存:
点击connect连接VPN服务:
进入已连接的VPN查看分配的IP,连接时间等详细信息,当然也可以删除VPN:
测试访问Google,在手机浏览器输入www.google.com
,使用4G数据流量,连接正常,速度没有明显差异:
当然,其他设备上也是类似配置,都是一些基础的操作,也该收工了。OK, Just Enjoy~