网上能找到的 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) |