<转载>VPN部署装配

<转载>VPN部署安装

转载: 知乎 http://www.zhihu.com/question/20113381

如何自行架设 VPN 服务?

Rejected,以不变应万变

 

前方多图预警!!!!以下为傻瓜式教程,一步步照着做,无IT背景的也可以架设自己的VPN,如果遇到任何问题欢迎留言,我会及时完善答案。

更新 2014-10-14
有时候通过wifi连接路由,然后再连接vpn会出现速度特别慢的情况,网线直接连接则不会,此时先请检查路由设置中无线网络部分是否 WMM 与 Short gi处于开启状态,如果有关闭后重启路由,速度会有提升。

安全更新 2014-09-30:
因最近linux爆出安全漏洞ShellShock: CVE-2014-6271,可能导致攻击者完全控制你的vps,所以请使用下文中提到的putty连接你的vps,然后执行以下修复命令:

sudo apt-get update
sudo apt-get dist-upgrade

运行中可能需要输入‘y'回车确认操作。

第一:前提
要有一个境外的vps服务器,目前为止我发现的最便宜最方便的一个 
SSD Cloud Server, VPS Server, Simple Cloud Hosting
独享IP,价格便宜(最便宜的配套5美元一个月,我使用的为10美元一个月的套餐),速度不错,可以根据需要创建任意多个VPS
支付模式目前分为 信用卡(visa) 或者paypal, 优惠码SHIPITFAST(会获得系统赠送10美元,不定期更新)

第二:以上面推荐的VPS服务商为例
1)注册非常方便,填入邮箱以及密码就可以创建账户

<转载>VPN部署装配
 
2)登陆邮箱认证后会跳转到账单更新界面,可以使用信用卡(visa) 或者 paypal

<转载>VPN部署装配
 
3. 点击“Create”的绿色按钮创建一个VPS,也就是账号中看到的droplet,一个账号下可以创建多个droplet,费用是按小时计算,所以不用担心服务突然停止后支付的费用问题。(示例图只是显示一部分,下面可以选择服务器的地址等等)

<转载>VPN部署装配
 <转载>VPN部署装配
 
这里我们选择Ubuntu 12.04.5 x32 这个版本, 其余除了服务器地址你按照你的喜好选择外(当然理论上选择离你越近的越快),其他全部默认即可。

4. 点击创建之后需要1分钟左右来初始化你的VPS, 创建成功后你会收到一封带有root密码的email到你的注册邮箱

<转载>VPN部署装配
 <转载>VPN部署装配
 

5.有root密码后接下来我们要通过SSH进行远程登录(以window为例),以便安装VPN服务端软件。
1)下载SSH客户端工具Putty到本机电脑
http://the.earth.li/~sgtatham/putty/latest/x86/putty.exe
2)打开Putty(putty.exe),填入你的VPS的IP地址(以128.199.171.10为例),端口22.
<转载>VPN部署装配
 
当然你可以给这个会话(session)取个名字保存起来,下次可以直接登陆。
3)点击Open之后第一次连接会弹出一个证书确认对话框,点击确认
4)确认后会弹出一个命令行对话框,恭喜你,你已经成功了50%了,你的VPS架设成功!
然后再弹出的命令框中输入root然后回车。
<转载>VPN部署装配
 
之后会要求输入密码,密码在你的邮箱中拿到,注意,输入密码的时候是不会显示任何字符的,就像你没有输入一样,所有不要以为你的键盘坏了或者你的操作有误,随机生成的密码非常随机,不要输入错误了哦。如果你输入正确,你可以看到以下登录成功的界面

<转载>VPN部署装配
 

首次登陆会提示更改VPS的root密码,按照提示修改即可,一般步骤是先输入系统分配的root密码,然后连续两次输入新密码,如下图

<转载>VPN部署装配
 
密码输入的时候不会显示任何字符,并且新密码不要用系统分配的,否则无法修改成功。

接下来我们就要进入 VPN服务器的搭建了。

第三:架设VPN服务器,所有的命令就在你刚刚登录成功的命令行对话框输入。
如果你按照我之前写的做的,那么接下来只输入几行命令就可以架设属于你自己的VPN了,let's move on!
1) 安装pptpd(VPN服务器)ufw(防火墙)

sudo apt-get install pptpd ufw

2)修改ufw规则

sudo ufw allow 22
sudo ufw allow 1723
sudo ufw enable

这里请注意,如果你有其他服务运行,例如有网站也运行在这个VPS中,记得同样开启相应的端口,例如网站使用的端口80或者8080,记得加入一下两条

sudo ufw allow 80
sudo ufw allow 8080
sudo ufw disable && sudo ufw enable

示例图如下

<转载>VPN部署装配
 
这里要记得点y后回车,以后的操作类似不再敖述。

3)编辑pptpd选项

sudo nano /etc/ppp/pptpd-options

输入此行命令后会打开一个文档编辑,找到以下三行

refuse-pap
refuse-chap
refuse-mschap

然后在它们前面添加一个#号,意思是注解掉。

#refuse-pap
#refuse-chap
#refuse-mschap

之后在最后的地方添加如下信息

ms-dns 8.8.8.8
ms-dns 8.8.4.4

输入完成后按ctrl+x键(退出编辑器)会询问是否保存,点击Y,回车。
4) 编辑IP信息以及客户端IP地址范围
输入命令

sudo nano /etc/pptpd.conf

会打开一个文件,然后在最后添加:

localip 128.199.171.10 (这里改为你自己的VPS的ip地址)
remoteip 10.99.99.100-199 (这里不需要改动)

同样,输入完成后按ctrl+x键(退出编辑器)会询问是否保存,点击Y,回车。
5)添加VPN用户登录信息,就是你登陆VPN的时候使用的用户名密码

sudo nano /etc/ppp/chap-secrets

会打开一个编辑文本,然后按照以下模式添加一个用户账号

[Username] [Service] [Password] [Allowed IP Address]

例如,添加一个 用户名为 fuckGfw,密码为fuckGfwDaddy的vpn账号,可以创建多个,一行一个用户。

fuckGfw pptpd fuckGfwDaddy *

同样,输入完成后按ctrl+x键(退出编辑器)会询问是否保存,点击Y,回车。
6)重启pptpd

sudo /etc/init.d/pptpd restart

7)编辑系统设置

sudo nano /etc/sysctl.conf

会打开一个编辑文本,找到

#net.ipv4.ip_forward=1

去掉前面的#,改完后为

net.ipv4.ip_forward=1

同样,输入完成后按ctrl+x键(退出编辑器)会询问是否保存,点击Y,回车。
重新加载系统设置

sudo sysctl -p

8)修改ufw防火墙设置

sudo nano /etc/default/ufw

会打开文本编辑,将

DEFAULT_FORWARD_POLICY = "DROP"

改为

DEFAULT_FORWARD_POLICY = "ACCEPT"

同样,输入完成后按ctrl+x键(退出编辑器)会询问是否保存,点击Y,回车。
9)继续修改ufw防火墙设置

sudo nano /etc/ufw/before.rules

会打开文本编辑,在文本最开始处复制添加如下内容,不要做任何修改,
提示,如何复制?先选择下面的代码,然后ctrl+c或者鼠标右键选择复制,然后切换回命令行窗口,通过上下左右键定位光标到文本最开始位置,点一下鼠标右键就复制进去了。

# NAT table rules
*nat

:POSTROUTING ACCEPT [0:0]
# Allow forward traffic to eth0
-A POSTROUTING -s 10.99.99.0/24 -o eth0 -j MASQUERADE

# Process the NAT table rules
COMMIT

10)重启防火墙

sudo ufw disable && sudo ufw enable

恭喜你!!你的VPN服务器架设成功了!!你现在可以随便(fan)浪(qiang)了 =)。

更新:这里可能有的朋友会看到一条Error信息:
ERROR: problem running ufw-init

如果出现这个情况,在你确保没输入错误的命令时,请输入一下命令:

ufw --force enable

否则检查一下看看是哪里输入错误了,有时候一个字符错了也不行。




第四:window 7/8/8.1 连接VPN方法(以win8.1)为例,win 8/7类似
1)右键点击网络连接 - 打开网络与共享中心
2)建立新的网络连接

<转载>VPN部署装配
 

3) 连接到工作空间

<转载>VPN部署装配
 
4) 下一步后安装如下图选择,即选择VPN

<转载>VPN部署装配
 
5) 输入VPN地址,取个别名

<转载>VPN部署装配
 
6)创建完成后你会在你的网络连接中看到一个 “我的VPN的连接”,点击后会要求输入用户名密码,输入之前的用户名:fuckGfw ,密码:fuckGfwDaddy ,然后... let's rock!!!
不用的时候可以断开,用的时候连接。

第五:手机连接VPN,以iphone5为例,其他安卓手机类似。
1)通用

<转载>VPN部署装配
 

2)VPN
<转载>VPN部署装配
3) 添加VPN设置
<转载>VPN部署装配
4)然后,Account就是你的用户名 fuckGfw, 其他的按照图中设置。
<转载>VPN部署装配
5) 然后
<转载>VPN部署装配

第六:来,大家一块(fan)浪(qiang)起来!!!!
第七:深藏功与名