搭建IPv6的L2TP VPN

使用VPNCUP等第三方VPN服务已经有一段时间了,但是除了openvpn以外,很少有支持IPv6的服务。可以用VPS搭建一个支持IPv6的VPN,一方面可以break the wall,另一方面也可以摆脱学校的上网流量限制。选择L2TP的另一个原因是:相对OPENVPN比较节省VPS端资源,毕竟是采用的廉价VPS。

分享下整个过程,vps是使用的Enzu的384M RAM版本,在LA机房IPv6的ping6值只有200左右,IPv4的ping值国内大多在250左右,已经很给力了。

1. 下载xl2tpd-1.2.4-ipv6.tar.gz

L2TP一般都采用xl2tpd来处理,貌似直到最新版本,仍然没有官方支持IPv6的版本出现;在这里感谢下寒山远水分享的diff,基于xl2tpd-1.2.4版本,整理了下patch之后的xl2tpd-1.2.4-ipv6.tar.gz,方便大家下载。

2. 解压xl2tpd-1.2.4-ipv6.tar.gz,make,install。

可能会出现找不到pcap.h等问题,可以“apt-get install libpcap0.8-dev”

install 之后的目录是在/usr/local/sbin/xl2tpd

3. 处理xl2tpd的配置

cd /etc/ppp/(如果没有可以sudo apt-get install ppp)
sudo vi options.xl2tpd
推荐一份测试可用的配置,详细配置内容参考http://poptop.sourceforge.net/dox/options.pptpd.txt

noipx
mru 1500
mtu 1420
nodefaultroute
ms-dns 8.8.8.8
ms-wins 8.8.8.8
lcp-echo-interval 30
lcp-echo-failure 10
noproxyarp
nobsdcomp
nodeflate

sudo mkdir /etc/xl2tpd
sudo vi xl2tpd.conf
简单推荐一份可用的配置,详细内容参考http://linux.die.net/man/5/xl2tpd.conf

[global]
access control = yes
[lns vps]
ppp debug = no
pppoptfile = /etc/ppp/options.xl2tpd
require pap = no
assign ip = yes
hostname = vps
ip range = 192.168.0.100-192.168.0.254
local ip = 192.168.0.1
challenge = no
lac = 0.0.0.0-255.255.255.255
require authentication = yes

4. 可能出现的错误

xl2tpd[748]: setsockopt recvref[22]: Protocol not available
xl2tpd[748]: This binary does not support kernel L2TP.
xl2tpd[748]: open_controlfd: Unable to open /var/run/xl2tpd/l2tp-control for reading.

前两个错误可以忽略(已证实),第三个错误很显然,

mkdir /var/run/xl2tpd
echo “c vps” > /var/run/xl2tpd/l2tp-control

5. iptables转发

以上应该已经可以使用ipv6连接到l2tp的vpn,但不能访问网络。执行下面:

iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.0/24 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward

 6. 自动运行

我用的VPS同时在做Webserver,所以不太倾向于开机自启动l2tp服务。所以把一些bash都放在了bash文件中,手动执行吧。

#!/bin/bash
mkdir /var/run/xl2tpd
echo "c vps" > /var/run/xl2tpd/l2tp-control

iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.0/24 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward
/usr/local/sbin/xl2tpd

7. 客户端配置

主要是在Windows 7下的配置:

L2TP在Windows 7下的配置

在Windows XP下不允许非IPSec方式连接l2tp,需要修改注册表,重启机器

HKEY_Local_MachineSystemCurrentControlSetServicesRasManParameters下,添加:

类型:reg_dword,名称:ProhibitIpSec,值:1

 

Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.
Permalink: http://zyj.me/article/ipv6-l2tp-vpn
Tags:
« »

我的微博