SoftEther(means Software Ethernet) 是日本筑波大学的一个开源跨平台多协议的 VPN,是世界上最强大、易用的多协议VPN软件之一。可以运行在Windows、Linux、Mac、FreeBSD和Solaris上。支持SSL-VPN(HTTPS)及6种主流VPN协议(OpenVPN、IPsec、L2TP、MS-SSTP、L2TPv3和EtherIP)。
下面介绍如何使用SoftEther搭建VPN Server。
Step 1: 获取机器
Amazon AWS提供12个月每月750小时(31.25天)t2.micro实例随意搭配使用,你可以同时开10个Linux连续运行75小时,超过这个期限就要收费了。但搭建VPN只需要一个实例,所以时间足够了。建议选择比较近的DC,如Tokyo、Seoul。
在亚马逊上启动一台实例需要一个keypair,创建keypair时要把key(如tokyo.pem)保存下来,登陆或与虚机传数据都会用到这个key。
更新服务器上的软件
Debian/Ubuntu:
CentOS/RHEL:
Step 2: 获取SoftEther
SoftEther网站在国内访问不到,又不能在EC2实例上使用浏览器,这时需要用到文本网络浏览器lynx这个利器。
下载lynx
Debian/Ubuntu:
CentOS/RHEL:
下载softether
选择平台
选择服务端软件
选择机器位数
下载
SoftEther客户端也可以使用这种方式下载,之后通过前边的scp将其拷贝到本地。
Step 3: 安装并配置SoftEther
编译的过程中会多次提示License Agreement的选择,想用就选Yes(type ‘1’)。
配置
开机启动
将SoftEther创建问一个service,并配置开机自动启动。
首先创建一个文件vim /etc/init.d/vpnserver
,将以下内容粘贴进去:
如果不存在/var/lock/subsys文件夹,则需要创建一个mkdir /var/lock/subsys
。
启动服务
Step 4: 更改Admin密码
Step 5: 创建一个虚拟Hub
注意看上图的提示,如果选择连接到某一个Virtual Hub则写入Hub的名称,如果要使用Admin模式连接Server,则直接按Enter键。这一点很重要。创建Hub需要Admin权限。你可以根据提示符是VPN Server>
还是VPN Server/VPN>
来区分。
Step 6: Enable SecureNAT
SecureNAT需要绑定到特定的Virtual Hub上,所以这里需要进入Hub的上下文。
Step 7: 创建用户并设置用户密码
Step 8: Setup L2TP/IPsec
运行该命令需要Admin Mode。
Step 9: Setup SSTP/OpenVPN
SoftEther支持Microsoft SSTP VPN和OpenVPN。
客户端设置
这里只讲在Windows上使用SoftEther客户端进行配置。安装SoftEther的过程很简单,略。
创建虚拟适配器
创建VPN连接
Tips:
SoftEther命令行可以说非常强大,本文只介绍了它的冰山一角,可以使用?
或help
来查看其所有命令。AWS Free Tier提供的流量完全够自己使用,如果多人使用可能会超流量,这时候就会从你的信用卡上扣钱了。如果怀疑有恶意连接,则可以使用iftop来监控机器的带宽使用情况,并将恶意ip使用EC2的安全策略过滤掉。
另外,可以使用docker的方式来部署SoftEther VPN Server,这个我还没有试过,想玩的请参考[2]。
Reference:
1 How to Setup a Multi-Protocol VPN Server Using SoftEther
2 https://github.com/cnf/docker-softether