SoftEther VPN
原作者 | 筑波大学的SoftEther VPN 项目 |
---|---|
开发者 | Daiyuu Nobori、Tetsuo Sugiyama、Takao Ito、Christopher Smith、Mei Sharie Ann Yamaguchi和其他开发者[1] |
首次发布 | 2014年1月4日 |
当前版本 |
|
源代码库 | |
编程语言 | C语言及C++ |
操作系统 | Windows、Linux、MacOS、FreeBSD、 Solaris、iOS、Android |
语言 | 英文、日文、简体中文[3] |
类型 | VPN |
许可协议 | GPL v2 [4] Apache License 2.0(自2019年1月21日起)[5] |
网站 | www |
SoftEther VPN是一个由日本程序员登大游(日语:登 大遊)因就读筑波大学时的硕士论文研究主题而开发的开源、跨平台、多重协议之虚拟专用网方案,此方案让一些虚拟专用网协议像是SSL VPN、L2TP、IPsec、OpenVPN以及微软SSTP都由同一个VPN服务器提供。在2014年1月4日以GNU通用公共授权条款的方式转变为开源软件。2019年1月21日转变为Apache License 2.0授权。
SoftEther VPN是专门被设计为穿过防火墙的,支持NAT穿透,使其能越过政府或组织的防火墙建立VPN通道。2013年3月,官方开始提供VPN Gate公共VPN中继服务器列表插件,以简化高强度网络审查地区有突破网络封锁(翻墙)需求的用户的操作复杂程度。因为用了HTTPS来伪装连接,防火墙的深度数据包检测无法侦测到SoftEther的VPN发送数据包构成的VPN通道。但SoftEther的SSL VPN协议在中国大陆的部分地区仍然被屏蔽。[来源请求]
性能优化也是SoftEther VPN的一个目标。它使用像是利用全部以太网帧的策略,减少了存储器复制的操作、平行传输和聚类,这减少了通常VPN连接会有的延迟并增加了运输吞吐量。
互用性
VPN服务器和VPN桥接器支持微软、Linux、Mac OS X(除了10.9.x)、FreeBSD还有Solaris这些操作系统。SoftEther VPN支持自己的VPN协议但可以和OpenVPN、微软Secure Socket Tunneling Protocol(SSTP)、SSL VPN、EtherIP、L2TPv3、IPsec兼容。借由L2TP/IPsec/OpenVPN/SSTP,可以支持移动设备系统如iOS、安卓、微软Windows手机。SoftEther自身的VPN客户端支持微软、Linux、Mac。支持其他VPN协议的VPN客户端和终端也可能会被使用;这包括了来自诸如思科、Juniper、Linksys(有DD-WRT)、Asus等等公司生产的各式各样的路由器。
软件组成
VPN服务器
SoftEther VPN服务器和其他VPN服务器一样,功能是接听来自客户端或桥接器使用各式协议的连接。
一个VPN服务器可以有好几个虚拟的集线器和交换器。虚拟集线器和实体的交换器一样,有完整的第二层网络分组交换功能。此外,虚拟集线器能被配置来定义IP数据包过滤项目,过滤经过集线器的数据包。虚拟的Network layer层交换器则像实体的路由器一样,有第三层IP静态路由功能。
一个VPN服务器可以有自带的桥接器。这个桥接器是一个在实体网络转接器和虚拟集线器之间的分组交换结构。系统管理员定义连接虚拟集线器和现有的企业网络之间的桥接器,去建立一个远程访问的或站对站的VPN服务器。
VPN客户端
SoftEther VPN客户端是个虚拟化的网络适配器。一个有安装客户端程序的电脑能建立与服务器的连接。因为VPN服务器支持多种VPN协议的关系,VPN用户并不需要在电脑上安装SofthEther VPN客户端,而是用内置在操作系统内的VPN客户端程序建立连接。然而,SoftEther VPN客户端比系统内置程序还多了些高级功能。想要充分利用SothEther VPN服务器的全部性能的话,建议还是安装客户端程序。
VPN桥接器
SoftEther VPN桥接器是个建立站对站VPN的程序。要建立这样的VPN,系统管理员必须安装SoftEther VPN服务器程序在中央电脑,然后要一个以上的远程电脑安装VPN桥接器。VPN桥接器会以级联连接连接中央VPN服务器。级连连接类似在两个实体网络交换机之间,一个虚拟化的上行连接。
VPN服务器微软版管理程序
这是个SoftEther VPN服务器和桥接器会用到的图型化接口管理工具。系统管理员可用来连接远程的服务器或桥接器并管理。连接使用了SSL,管理指令则用RPC在SSL上传输。
VPN命令行管理实用工具
vpncmd是个自定义接口管理工具,用在服务器、各户端和桥接器上。它可以在所有支持的操作系统上执行。当有用户无法用Wine执行微软或Linux时,它可以转换到vpncmd来管理VPN。vpncmd也很适合用来执行批量操作,例如在虚拟集线器上创建好几个用户,或在服务器上创建好几个虚拟集线器。
架构
SoftEther VPN某些部分的架构有别一般传统使用IPsec的VPN系统。
虚拟集线器
虚拟集线器就是以软件方式模拟网络交换机。它会更新和维持自身拥有的转发资料对照表(MAC 地址表)。虽然传统的网络交换机将这功能做在硬件上,SoftEther VPN以软件实现了同样功能。一个VPN服务器可以有好几个虚拟集线器,各自独立。VPN客户端和桥接端的连接就是以集线器用分组交换来处理。
当一个服务器上有数个虚拟的集线器时,为了安全,这些集线器都会独立分开。各个不同的管理员可以对相应的虚拟集线器授予权限。每个虚拟极限的管理员可以限定用户对象和ACLs,而这仅限于被授权的集线器上。
虚拟网络转接器
一个VPN客户端可以在自己的电脑上创立数个网络转接器。VPN用户能在虚拟网络转接器和远程目标的虚拟集线器间建立可用连接。当建立了可用连接,用户就能借此和远程的VPN网络沟通。它可以让任何程序或操作系统不用特定设置就能使用,就和硬件版的使用方式一样。
虚拟交换机
它以软件方式模拟了IP路由器。一个服务器上可以同时间创立好几个虚拟交换机。虚拟交换机有虚拟的IP接口连接虚拟集线器。它也有几个固定的对照表上的分配项目。
虚拟交换机也适合用来做大型的站对站VPN网络。虽然有个简单的方式可以达成,就是用桥接建立VPN,但如果有很多台电脑,输入站点间的连接的广播数据包数量就会大增。为了预防这样规模扩张的问题,VPN管理者用虚拟交换机来隔绝IP网络。
虚拟集线器之间的级联连接
管理员可以在地区或远程的虚拟集线器间定义一个级联连接。当级联连接被设立,原先独立的两个网段就被集成成一个了。所以这个级联连接功能被用来建立站对站的桥接。
虚拟集线器和网络间的地区桥接器
因为虚拟集线器和虚拟网络转接器都只是软件模拟的设备,借此发送的数据包是无法和硬件设备沟通的。因此,需要一个模拟和实体设备之间的桥接,才能建立远程访问VPN或站对站VPN。要做出桥接,地区桥接器功能转会转换虚拟集线器和实体网络转接器间的数据包,结合两个独立网段成为一个单一的网段。
在VPN服务器上定义过地区桥接器后,各VPN客户端就可以借由地区桥接器,连到VPN服务器并和其他网络上的设备沟通。这就是远程访问VPN。
如果网络管理者设立了远程站点VPN桥接器,并在VPN服务器和VPN桥接器上分别定义了两个地区桥接,然后定义服务器和桥接器间的级联连接,远程的两个网段在第二层级上就会直接连在一起。这就是站对站VPN。
防火墙,代理服务器
SoftEther VPN很重要的功能是对防火墙的穿透和借助代理服务器中转VPN流量。为此,SoftEther VPN支持SSL-VPN。它使用HTTPS协议来建立VPN通道,可以与Web网站同样使用TCP/IP 443端口。
可使用多条TCP连接的传输机制
当用户选择SSL-VPN协议时,SoftEther VPN服务器和客户端会用一套平行传输机制来改善SSL-VPN通道的吞吐量。用户可以创建1到32条TCP连接同时并发传输。当处在一个网速非常慢的地方时,这项性能调整会导致更快的吞吐量。一旦这功能被激活,逻辑VPN连接将包含多个TCP(HTTPS)连接。所有的数据包将会在适当的TCP连接中,被加进优化模块的运算。如果逻辑VPN连接的TCP连接侦测到数据包的丢失,新的数据包就使用其他正常的TCP连接。这项快速切换优化的功能造就高吞吐量。
NAT穿透
传统的VPN系统需要用户去请求公司的防火墙管理者,在防火墙或公司与网络间的NAT开放一个终端点(TCP或UDP端口)。为了减少需要开放终端点的情形,SoftEther VPN服务器有NAT通透功能。NAT通透会默认是启动状态。只要它启动,VPN客户端的电脑就能连接到被防火墙或NAT阻隔的VPN服务器,不需要在防火墙或NAT上特别设置。
通过ICMP和DNS上的VPN
有少数限制很多的网络只允许通过ICMP或DNS的数据包。在这种情形,TCP或UDP会被滤掉。为了让SoftEther VPN也能在这种网络建立连接,SoftEther VPN有特别为此设计的VPN功能。
这功能对穿过这样严格的防火墙非常有用。所有的VPN数据包都再度包成ICMP或DNS数据包来传输。接收端会从外层提出内层的数据包。因为有些公共Wi-Fi只能通过ICMP或DNS数据包,这让在公共Wi-Fi也能使用VPN。如果你为了出门,安装一个服务器在家中或办公室,你可以在限制网络中享受这自由协议的网络通信。
缺陷
SoftEtherVPN服务端同时支持SoftEtherVPN、OpenVPN、L2TP、IPsec、SSTP等。尽管SoftEtherVPN因为使用Https通讯可以抵抗GFW的深度包检测,但服务端的OpenVPN等功能若是开启仍会暴露出VPN服务器的存在。
VPN Gate
VPN Gate是个SoftEther VPN的插件,它让用户能连接由志愿者提供,在自家电脑安装SoftEther的免费公共VPN服务器,此功能可用于帮助用户绕过政府的互联网审查。VPN Gate由筑波大学赞助。
参考资料
- ^ Authors of SoftEther VPN on GitHub. [2018-01-25]. (原始内容存档于2019-02-17).
- ^ Release 5.02.5181.
- ^ Multi-language, Single Binary Package and Unicode Support. [2018-09-07]. (原始内容存档于2018-09-07).
- ^ License of SoftEther VPN. [2018-09-07]. (原始内容存档于2018-09-07).
- ^ Declaration of license switch for SoftEther VPN from GPLv2 to Apache License 2.0. 2019-01-21. (原始内容存档于2020-08-05).