l2tp/ipsec是VPN协议的一种,对我来说和PPTP唯一的优点。支持Android手机始终开启的VPN功能。这样只要手机开机就会一直保持VPN是连接状态。本次VPN使用的是DigitalOCean的VPS主机。推荐纽约机房,相对北京网速快。另外如果你觉得此篇教程有用并想购买DigitalOcean主机请使用此推广链接购买,也算是对我的支持,谢谢。https://www.digitalocean.com/?refcode=77f588fecae6
下面为ipsec教程部分
安装openswan xl2tpd,如果是非root用户请在无权限的命令前加
sudo
apt-get install openswan xl2tpd
询问是否使用X.509时,选否修改
/etc/ipsec.conf
ipsec配置文件version 2.0 config setup nat_traversal=yes virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12,%v4:25.0.0.0/8,%v6:fd00::/8,%v6:fe80::/10 #关闭随机加密 oe=off protostack=netkey conn %default forceencaps=yes 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 ikelifetime=8h keylife=1h type=transport #此处SERVER.IP请变更为你服务器的公网IP left=SERVER.IP leftprotoport=17/1701 right=%any rightprotoport=17/%any
修改
/etc/ipsec.secrets
此文件为PSK密钥#此处SERVER.IP请变更为你服务器的公网IP,psk-password变更为PSK密钥,所有用户公用 SERVER.IP %any: PSK "psk-password"
执行
for each in /proc/sys/net/ipv4/conf/* do echo 0 > $each/accept_redirects echo 0 > $each/send_redirects done
修改
/etc/sysctl.conf
文件,去掉net.ipv4.ip_forward=1
这行前的注释符号。修改后执行sysctl -p
使其生效。重启 ipsec 服务
ipsec restart
测试ipsec加密通道是否正常
ipsec verify
请一定确保所有功能正常现继续下面步骤
xl2tpd教程部分
修改
/etc/xl2tpd/xl2tpd.conf
[global] [lns default] #此处IP为xl2tp拨号上来后分配的IP段,可以任意修改为其它内网IP断 ip range = 10.1.0.2-10.1.0.254 local ip = 10.1.0.1 require chap = yes refuse pap = yes require authentication = yes name = LinuxVPN ppp debug = yes pppoptfile = /etc/ppp/options.xl2tpd length bit = yes
修改
/etc/ppp/options.xl2tpd
require-mschap-v2 ms-dns 8.8.8.8 ms-dns 8.8.4.4 asyncmap 0 auth crtscts lock hide-password modem debug name l2tpd proxyarp lcp-echo-interval 30 lcp-echo-failure 4
xl2tp用户配置文件
/etc/ppp/chap-secrets
# Secrets for authentication using CHAP # client server secret IP addresses vpnuser l2tpd "password" *
重启xl2tpd
service xl2tpd restart
增加IP转发
#-s后为你的xl2tp拨号后的网段,-o 后为你的公网IP网卡。如不是eth0请使用其它 iptables -t nat -A POSTROUTING -s 10.1.0.0/24 -o eth0 -j MASQUERADE