DigitalOcean VPS 上如何安装 VPN
时间:2014-07-30 09:11 来源:linux.it.net.cn 作者:it
网上能找到的 VPN 安装教程非常多,但是能按教程装成功的非常少,所以我把过程记录了下来。
在现在的网络环境下每个人都需要一个 VPN。一方面可以保证你在公共网络环境下安全使用网络,比如在咖啡厅、机场等提供免费 WIFI 的地方;另一方面众所周知的原因,我们尤其是互联网行业的技术人员需要 VPN 或者加密网络链路才能够正常使用某些国外合法服务。再次
谴责他们为我们获取技术资料设置障碍的行为。
通常情况下加密链路有 2 种方式:
-
0. GoAgengX
-
1. SSH 隧道
-
2. VPS 上安装 VPN
这篇文章主要说明 VPN 的方式,因为这种方式几乎是一劳永逸的方式,后期成本很低。
GoAgengX 的方式:
这在 Mac 下使用非常方便,缺点和 SSH 隧道方式类似,手机和 iPad 不方便,并且有流量限制。而且这种方式经常或失效。
SSH 隧道的方式:
我之前几年都使用的是加密隧道的方式,比如在 Mac 或者 Linux 平台上,可以执行 ssh -D 1234 username@domain.name 登陆后就会在本地打通一个端口,将需要加密的流量导入本地这个端口即可。
然后可以设置应用的 proxy 为 本地 IP 和 1234 端口即可。这种方式的好处是非常稳定,缺点是每次输入命令操作复杂,并且手机和 iPad 很难用这种方式访问国外合法网站。
VPN 的方式:
VPN 的方式可以方便的使用 VPN 客户端来完成整个过程。 VPN 的安装还是相对复杂的,网上能找到的 VPN 安装教程非常多,但是能够实现完整
安装,然后电脑、笔记本、手机、iPad 正常使用的教程几乎找不到。所以我把自己安装 VPN 的过程记录下来。
1. 购买国外的 VPS
这里推荐 DigitalOcean,每月 5 美元的型号即可。除了完成 VPN 的所有功能外,你也可以把整个 VPS 当做自己的资料备份机器或者托管自己的博客或者网站。相对于你获得的技术资料和讯息,5 美元每月的 DigitalOcean 租用价格几乎可以忽略。关于 DigitalOcean VPS 的测试可以看另外一篇文章:目前发现的性价比最高的VPS: DigitalOcean VPS。
2. 安装操作系统
这里推荐 Ubuntu 12.04LTS 版本。
3. 安装过程
安装必备的软件包:
sudo apt-get install openswan ppp xl2tpd
假设当前的设置如下:
192.168.2.200 DigitalOcean VPS 的外网 IP
192.168.2.1 DigitalOcean VPS 的网关 IP
编辑并检查 /etc/ipsec.conf 的以下几行,大部分情况下整个文件不需要修改:
config setup
nat_traversal=yes
virtual_private=%v4:10.0.0.0/8,%v4:192.168.2.0/16,%v4:172.16.0.0/12
oe=off
protostack=netkey
include /etc/ipsec.d/l2tp-psk.conf
编辑和检查 /etc/ipsec.d/l2tp-psk.conf
注意 left= 那行和 leftnexthop= 那行修改成你的 DigitalOcean VPS 的 IP 和网关地址。
conn L2TP-PSK-NAT
rightsubnet=vhost:%priv
also=L2TP-PSK-noNAT
conn L2TP-PSK-noNAT
authby=secret
pfs=no
auto=add
keyingtries=3
rekey=no
type=transport
left=192.168.2.200
leftnexthop=192.168.2.1
leftprotoport=17/1701
right=%any
rightprotoport=17/%any
dpddelay=15
dpdtimeout=30
dpdaction=clear
编辑和检查 /etc/xl2tpd/xl2tpd.conf 修改 IP 范围和本地 IP 地址,注意这些地址和你的内网 IP 地址不能冲突或者重复:
[global]
ipsec saref = yes
[lns default]
ip range = 192.168.2.231-192.168.2.239
local ip = 192.168.2.230
refuse chap = yes
refuse pap = yes
require authentication = yes
ppp debug = yes
pppoptfile = /etc/ppp/options.xl2tpd
length bit = yes
编辑和检查 /etc/ppp/options.xl2tpd修改 ms-dns 的值,这里使用 Google 的 DNS 服务器 8.8.8.8
require-mschap-v2
ms-dns 8.8.8.8
asyncmap 0
auth
crtscts
lock
hide-password
modem
debug
name l2tpd
proxyarp
lcp-echo-interval 30
lcp-echo-failure 4
编辑和检查 /etc/ppp/chap-secrets 这个文件保存的 VPN 的连接账号信息,以下只开通一个账号,并且指定这个账号的 IP 地址
l2tpd bruce mypassword 192.168.2.233
编辑和检查 /etc/ipsec.secrets 注意 TestSecret 这个值是机器鉴定的共享秘钥的值,可以修改成其他值
192.168.2.22 %any: PSK "TestSecret"
修改内核参数
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -s 192.168.0.0/24 -j ACCEPT
iptables -A FORWARD -j REJECT
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward
for each in /proc/sys/net/ipv4/conf/*
do
echo 0 > $each/accept_redirects
echo 0 > $each/send_redirects
done
/etc/init.d/ipsec restart
这些参数修改需要每次重启服务器的时候执行,最好加入到 /etc/rc.local 文件中自动随系统启动执行。
重启相关服务
sudo /etc/init.d/pppd-dns restart
sudo /etc/init.d/xl2tpd restart
sudo /etc/init.d/ipsec restart
验证操作过程是否成功
sudo ipsec verify
如果都显示 OK 则成功了,否则需要检查哪里有问题。
至此你可以从 Mac、iPhone、iPad、Android 的 VPN 处连接这台 VPN 服务器,正常访问所有合法网站了。
(责任编辑:IT)
网上能找到的 VPN 安装教程非常多,但是能按教程装成功的非常少,所以我把过程记录了下来。
在现在的网络环境下每个人都需要一个 VPN。一方面可以保证你在公共网络环境下安全使用网络,比如在咖啡厅、机场等提供免费 WIFI 的地方;另一方面众所周知的原因,我们尤其是互联网行业的技术人员需要 VPN 或者加密网络链路才能够正常使用某些国外合法服务。再次 通常情况下加密链路有 2 种方式:
这篇文章主要说明 VPN 的方式,因为这种方式几乎是一劳永逸的方式,后期成本很低。 GoAgengX 的方式:这在 Mac 下使用非常方便,缺点和 SSH 隧道方式类似,手机和 iPad 不方便,并且有流量限制。而且这种方式经常或失效。 SSH 隧道的方式:
我之前几年都使用的是加密隧道的方式,比如在 Mac 或者 Linux 平台上,可以执行 ssh -D 1234 username@domain.name 登陆后就会在本地打通一个端口,将需要加密的流量导入本地这个端口即可。 VPN 的方式:
VPN 的方式可以方便的使用 VPN 客户端来完成整个过程。 VPN 的安装还是相对复杂的,网上能找到的 VPN 安装教程非常多,但是能够实现完整 1. 购买国外的 VPS这里推荐 DigitalOcean,每月 5 美元的型号即可。除了完成 VPN 的所有功能外,你也可以把整个 VPS 当做自己的资料备份机器或者托管自己的博客或者网站。相对于你获得的技术资料和讯息,5 美元每月的 DigitalOcean 租用价格几乎可以忽略。关于 DigitalOcean VPS 的测试可以看另外一篇文章:目前发现的性价比最高的VPS: DigitalOcean VPS。 2. 安装操作系统这里推荐 Ubuntu 12.04LTS 版本。 3. 安装过程安装必备的软件包:
sudo apt-get install openswan ppp xl2tpd
假设当前的设置如下:
192.168.2.200 DigitalOcean VPS 的外网 IP 编辑并检查 /etc/ipsec.conf 的以下几行,大部分情况下整个文件不需要修改: config setup nat_traversal=yes virtual_private=%v4:10.0.0.0/8,%v4:192.168.2.0/16,%v4:172.16.0.0/12 oe=off protostack=netkey include /etc/ipsec.d/l2tp-psk.conf
编辑和检查 /etc/ipsec.d/l2tp-psk.conf conn L2TP-PSK-NAT rightsubnet=vhost:%priv also=L2TP-PSK-noNAT conn L2TP-PSK-noNAT authby=secret pfs=no auto=add keyingtries=3 rekey=no type=transport left=192.168.2.200 leftnexthop=192.168.2.1 leftprotoport=17/1701 right=%any rightprotoport=17/%any dpddelay=15 dpdtimeout=30 dpdaction=clear 编辑和检查 /etc/xl2tpd/xl2tpd.conf 修改 IP 范围和本地 IP 地址,注意这些地址和你的内网 IP 地址不能冲突或者重复: [global] ipsec saref = yes [lns default] ip range = 192.168.2.231-192.168.2.239 local ip = 192.168.2.230 refuse chap = yes refuse pap = yes require authentication = yes ppp debug = yes pppoptfile = /etc/ppp/options.xl2tpd length bit = yes 编辑和检查 /etc/ppp/options.xl2tpd修改 ms-dns 的值,这里使用 Google 的 DNS 服务器 8.8.8.8 require-mschap-v2 ms-dns 8.8.8.8 asyncmap 0 auth crtscts lock hide-password modem debug name l2tpd proxyarp lcp-echo-interval 30 lcp-echo-failure 4 编辑和检查 /etc/ppp/chap-secrets 这个文件保存的 VPN 的连接账号信息,以下只开通一个账号,并且指定这个账号的 IP 地址 l2tpd bruce mypassword 192.168.2.233 编辑和检查 /etc/ipsec.secrets 注意 TestSecret 这个值是机器鉴定的共享秘钥的值,可以修改成其他值 192.168.2.22 %any: PSK "TestSecret" 修改内核参数 iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A FORWARD -s 192.168.0.0/24 -j ACCEPT iptables -A FORWARD -j REJECT iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE echo 1 > /proc/sys/net/ipv4/ip_forward for each in /proc/sys/net/ipv4/conf/* do echo 0 > $each/accept_redirects echo 0 > $each/send_redirects done /etc/init.d/ipsec restart 这些参数修改需要每次重启服务器的时候执行,最好加入到 /etc/rc.local 文件中自动随系统启动执行。 重启相关服务 sudo /etc/init.d/pppd-dns restart sudo /etc/init.d/xl2tpd restart sudo /etc/init.d/ipsec restart 验证操作过程是否成功 sudo ipsec verify 如果都显示 OK 则成功了,否则需要检查哪里有问题。 至此你可以从 Mac、iPhone、iPad、Android 的 VPN 处连接这台 VPN 服务器,正常访问所有合法网站了。 (责任编辑:IT) |