Linux下搭建支持IPv6的L2TP VPN服务器——SoftEther VPN

2016-09-07 14:58:37 UbuntuVPN

继上次Ubuntu 14.04 LTS下配置PPTP VPN服务器后,现在还有一个很重要的需求没有实现,就是通过IPv6连接到服务器进行上网,即实现IPv4 over IPv6。

最初的想法是,直接把已经搭建好的PPTP的VPN服务,扩展到IPv6。想法是好的,也查了很多资料,很多人说在pptpd的配置文件里,加入ipv6 ,就可以了,但是实测并不行。折腾了好几天都没解决这个问题。

于是我想了几个方案,第一个是重新搭建一个L2TP服务器,第二个是使用OpenVPN等成熟的解决方案。

然而,在Linux上折腾非热门软件实在是太坑爹了,也没有一些完整的文档,搞起来太麻烦。而如果用OpenVPN的话,就得装它的客户端才行,不够简易。这与我们的目标——搭建一个简易、无需额外安装软件的VPN服务器相悖。

最终,我发现了一个日本开发的叫做SoftEther VPN的开源软件,搭建起来简单粗暴,功能齐全,还可以在Windows中进行GUI的管理,简直是搭建VPN的首选。

准备工作

本次的安装环境依然是Ubuntu 14.04 LTS。

进入官方下载页面,根据情况,下载相应的组件。以我的情况为例,我要在Linux上搭建VPN服务器,并在Windows上进行服务器的配置与管理,因此我需要下载SoftEther VPN Server的Linux的x64版本以及SoftEther VPN Server Manager for Windows(我选的免安装zip压缩包)。

具体来说,我下载了softether-vpn_admin_tools-v4.21-9613-beta-2016.04.24-win32.zipsoftether-vpnserver-v4.21-9613-beta-2016.04.24-linux-x64-64bit.tar.gz

在Linux服务器上安装

为了简便,安装过程使用root账号,且以安装在/root为例。

首先将压缩包上传至/root目录下,或者复制下载链接之后直接在服务器上使用wget来下载压缩包。

接着,执行tar -zxvf softether-vpnserver-v4.21-9613-beta-2016.04.24-linux-x64-64bit.tar.gz进行解压,生成vpnserver文件夹。

之后执行

cd vpnserver
./.install.sh

从而执行安装程序。这里要注意install.sh前面有个.,这是一个隐藏文件。输入3次1,同意相关协议后即可安装完成。如果遇到缺少包的情况,按照提示安装即可(一般是缺少gcc)。

最后,执行./vpnserver start即可开启VPN服务,至此已可以在Windows上进行服务器配置了。

在Windows上进行服务器配置

在Win中解压服务器管理工具的zip,运行vpnsmgr.exe

点击“新设置”,输入主机名,即IP地址(IPv6地址)。完成后点击“连接”,首次登陆会要求你设置一个管理员密码。如果无法连接,可能是由于防火墙拦截了端口导致的,你可以需要iptables -A INPUT -p tcp --dport 443 -j ACCEPT命令,但是这在Ubuntu上一般不会出现,RH系才可能会遇到这个问题。

设置完成后在弹出的“SoftEther VPN Server / Bridge 简单安装”面板中选择“VPN的其他高级配置”,之后点击“关闭”。

此时会提示“此 VPN Server 已具有支持兼容 IPsec / L2TP / EtherIP / L2TPv3 协议的 VPN Client 或 VPN 路由器的新功能。……” ,点击“是”即可。

在弹出的“IPSec / L2TP / EtherIP / L2TPv3 设置”面板中,勾选图中的这两项。勾选第二项是为了在WIN10中添加VPN时可以不用填写预共享密钥,但就没有IPSec加密了,对于加密没有要求的可以勾上。

现在,我们需要为VPN服务器添加用户。在管理面板中点击“管理虚拟HUB”,在弹出的面板中点击“管理用户”,点击“新建”,填入用户名和密码即可,如图所示。

之后需要进行VPN服务器的IP分配设置。点击上图红框中的“虚拟NAT和虚拟DHCP服务器”,按图中顺序点击。

在弹出的“secureNAT配置”面板中,根据需要进行IP配置即可。通常来说,使用默认的即可,你也可以按照自己需要进行配置。

至此服务器的配置工作已经结束。

连接VPN

VPN类型选自动即可,输入用户名密码即可连接,简单粗暴。

如果你在前面的设置中勾选了“没加密的RAW L2TP”,则在WIN10添加VPN页面直接添加即可,否则需要手动在网络连接中手动添加预共享密钥。

另外,WIN7必须填写预共享密钥。

如果无法正常连接,你可能需要设置防火墙允许通过443、992、1194、5555端口。如果你不会搞或者无论怎么搞都搞不好,可以祭出这个大杀器/etc/init.d/iptables stop,这样就可以把iptables关了。

配置VPN开机启动

这一点很容易,只需在/etc/rc.local文件中加入/root/vpnserver/vpnserver start即可(要在exit 0语句前)。

如果长时间无法加载评论,请对 *.disqus.com 启用代理!