SoftEther 提供好几个程序,它们在下载列表里看着相似,行为却完全不同。服务端接受并管理连接,客户端从设备发起连接,管理器负责管理部署。选错程序,你会得到一套能运行、却做不了你想做的事的安装。

服务端到底做什么

服务端的二进制文件 vpnserver 负责监听、验证用户,并把虚拟中枢接到网络。它保存身份与策略。安装它,是在搭建一个供其他设备连接的网关;你不是在把自己这台机器配置成使用别人的服务。

它的监听端口属于配置,而不是产品的固有属性。中枢可以在没有任何监听端口启用的情况下存在,监听端口也可以在没有可到达中枢的情况下启用。所以端口检查成功能证明的东西比看上去少:有东西应答了,而有用的问题是它究竟把你认证到了什么上面。询问监听端口名称的同时,也要问端口号。

Server Manager 是该状态的管理视图。它显示配置;它不承载流量。

客户端到底做什么

客户端的二进制文件 vpnclient 在设备上创建虚拟适配器,并把保存的账户连接到服务端。地址、路由和 DNS 行为都落在适配器上。安装客户端不会创建账户,也不会在另一端启用任何东西。

客户端还会在多次运行之间保留自己的状态:账户列表、自动启动标志和适配器配置。正是这个状态,让客户端看起来已安装,重启后却什么都连不上。无论它的菜单看起来多完整,Server Manager 都无法替代这条路径。

管理器是做什么的

Server Manager 用管理凭据连接正在运行的服务端,并编辑它的配置。这是一层控制平面。在其中建立会话只能证明管理可用;它不会把本地浏览器的流量送进服务端。

把管理凭据与用户档案分开保存,因为这两种对象授予的东西不同。拿到管理登录的人可以改动部署;拿到用户账户的人可以加入服务。为了解决后者而分发前者,是常见且代价高昂的错误。控制台通过服务所运行的同一个进程到达服务端,所以这条界线很容易被抹掉。

在交付任何东西之前,先写清楚哪份凭据属于哪个角色。能打开管理控制台的密码不是 VPN 账户,把它当成账户来用,就等于抹掉了你本想划出的那条界线。

兼容监听端口带来第四种角色

SoftEther 可以开放兼容 OpenVPN 的监听端口,以及 L2TP/IPsec 和 SSTP。这些是桥接角色:服务端改用另一种协议说话,让不支持原生模式的客户端也能连上。它们不会把客户端变成服务端,也不会把管理器变成客户端。在工单里写明用的是哪套栈,因为第一个有用的问题永远是两个程序里哪一个报的错。

使用兼容监听端口的设备,需要匹配的第三方客户端以及该监听端口所期望的参数。那个客户端有自己的配置、自己的日志和自己的失败方式,所以支持人员必须先弄清是哪套栈,再去看任何内容。把原生客户端的建议混进兼容客户端里,只会浪费时间。

一步把组件和任务对上

其他设备连你时,你需要服务端;这台设备要用现有网关时,你需要客户端;要改网关配置时,你需要管理器。只有前两者会搬运流量。分发第三种角色时,别把管理凭据交到用户手里。

ComponentWhat it doesWhat it cannot do
vpnserverTerminates VPN sessions and holds hub stateCreate an outgoing connection for your device
vpnclientCreates the virtual adapter and connects an accountAdminister the server's configuration
Server ManagerEdits a running server's configurationCarry your traffic or replace the client

然后在改动的那一层验证结果,而不是在安装的那一层。客户端的适配器拿到地址、目标资源能应答,才算真正工作。

服务端在预期的监听端口接受预期账户时才算工作,管理器能在不误改配置的前提下读出配置时才算出工作。这三句话能挡掉大部分混乱。vpncmd 工具是服务端与客户端两侧的命令行等价物,在没有图形控制台时很有用。

相关文章