SoftEther 的服务端、客户端与管理器:你需要哪一个?
服务端接受连接,客户端发起连接,管理器则编辑部署。装错组件,只会留下一套什么都不做的安装。
SoftEther 提供好几个程序,它们在下载列表里看着相似,行为却完全不同。服务端接受并管理连接,客户端从设备发起连接,管理器负责管理部署。选错程序,你会得到一套能运行、却做不了你想做的事的安装。
服务端到底做什么
服务端的二进制文件 vpnserver 负责监听、验证用户,并把虚拟中枢接到网络。它保存身份与策略。安装它,是在搭建一个供其他设备连接的网关;你不是在把自己这台机器配置成使用别人的服务。
它的监听端口属于配置,而不是产品的固有属性。中枢可以在没有任何监听端口启用的情况下存在,监听端口也可以在没有可到达中枢的情况下启用。所以端口检查成功能证明的东西比看上去少:有东西应答了,而有用的问题是它究竟把你认证到了什么上面。询问监听端口名称的同时,也要问端口号。
Server Manager 是该状态的管理视图。它显示配置;它不承载流量。
客户端到底做什么
客户端的二进制文件 vpnclient 在设备上创建虚拟适配器,并把保存的账户连接到服务端。地址、路由和 DNS 行为都落在适配器上。安装客户端不会创建账户,也不会在另一端启用任何东西。
客户端还会在多次运行之间保留自己的状态:账户列表、自动启动标志和适配器配置。正是这个状态,让客户端看起来已安装,重启后却什么都连不上。无论它的菜单看起来多完整,Server Manager 都无法替代这条路径。
管理器是做什么的
Server Manager 用管理凭据连接正在运行的服务端,并编辑它的配置。这是一层控制平面。在其中建立会话只能证明管理可用;它不会把本地浏览器的流量送进服务端。
把管理凭据与用户档案分开保存,因为这两种对象授予的东西不同。拿到管理登录的人可以改动部署;拿到用户账户的人可以加入服务。为了解决后者而分发前者,是常见且代价高昂的错误。控制台通过服务所运行的同一个进程到达服务端,所以这条界线很容易被抹掉。
在交付任何东西之前,先写清楚哪份凭据属于哪个角色。能打开管理控制台的密码不是 VPN 账户,把它当成账户来用,就等于抹掉了你本想划出的那条界线。
兼容监听端口带来第四种角色
SoftEther 可以开放兼容 OpenVPN 的监听端口,以及 L2TP/IPsec 和 SSTP。这些是桥接角色:服务端改用另一种协议说话,让不支持原生模式的客户端也能连上。它们不会把客户端变成服务端,也不会把管理器变成客户端。在工单里写明用的是哪套栈,因为第一个有用的问题永远是两个程序里哪一个报的错。
使用兼容监听端口的设备,需要匹配的第三方客户端以及该监听端口所期望的参数。那个客户端有自己的配置、自己的日志和自己的失败方式,所以支持人员必须先弄清是哪套栈,再去看任何内容。把原生客户端的建议混进兼容客户端里,只会浪费时间。
一步把组件和任务对上
其他设备连你时,你需要服务端;这台设备要用现有网关时,你需要客户端;要改网关配置时,你需要管理器。只有前两者会搬运流量。分发第三种角色时,别把管理凭据交到用户手里。
| Component | What it does | What it cannot do |
|---|---|---|
vpnserver | Terminates VPN sessions and holds hub state | Create an outgoing connection for your device |
vpnclient | Creates the virtual adapter and connects an account | Administer the server's configuration |
| Server Manager | Edits a running server's configuration | Carry your traffic or replace the client |
然后在改动的那一层验证结果,而不是在安装的那一层。客户端的适配器拿到地址、目标资源能应答,才算真正工作。
服务端在预期的监听端口接受预期账户时才算工作,管理器能在不误改配置的前提下读出配置时才算出工作。这三句话能挡掉大部分混乱。vpncmd 工具是服务端与客户端两侧的命令行等价物,在没有图形控制台时很有用。