网上大部分都是介绍使用Management客户端配置SoftEther
,本文介绍使用SoftEther
命令行搭建VPN服务器的过程。
下载与安装 从GitHub Release 或下载中心 ,根据系统类型及实际情况选择稳定非beta的rtm 版server安装包,例如centos选择 VPNserver ,复制下载链接,下载到/usr/local/src
目录
1 2 3 4 5 cd /usr/local/srcwget https://github.com/SoftEtherVPN/SoftEtherVPN_Stable/releases/download/v4 .38 -9760 -rtm/softether-vpnserver-v4 .38 -9760 -rtm-2021 .08 .17 -linux-x64 -64 bit.tar.gztar -zxvf softether-vpnserver-v4 .38 -9760 -rtm-2021 .08 .17 -linux-x64 -64 bit.tar.gzcd vpnservermake
安装过程中,按照提示输入1
即可。
通常来说,会自己选择语言,如果需要修改,则修改lang.config
文件即可。
运行 执行./vpnserver start
让VPN Server在后台运行.
配置 经测试,MacOS的Management配置客户端不能打开,所以改为以命令行配置:
进入命令行配置界面 执行./vpncmd
SoftEther VPN命令行配置SoftEther VPN Server.
提示如下:
1 2 3 4 5 6 7 通过使用 vpncmd 程序,可以取得以下成果。 1. VPN Server 或 VPN Bridge 的管理。2. VPN Client 的管理。3. 使用 VPN 工具 (证书创建和网络传输速度测试工具)选择 1 , 2 或 3 :
输入1 回车即可,继续提示
1 2 3 4 5 指定的主机名或目标 VPN Server 或 VPN Bridge 正在 运行的计算机 IP 地址。 通过以 "主机名:端口号" 格式指定,您还可以指定端口号。 (当没有指定端口号时,使用 443。) 如果不输入任何内容并按下回车键,将连接到端口号为 443 的本地主机 (这台电脑)。 目标 IP 地址的主机名:
输入localhost:5555
。
回车
1 2 3 如果通过虚拟 HUB 管理模式连接到服务器,请输入虚拟 HUB 的名称。 如果通过服务器管理模式连接,无须输入任何内容请按回车键。 指定虚拟 HUB 名称:
根据提示,可根据实际情况输入。一般直接回车,进入管理员控制台界面:
1 2 3 4 5 与服务器 "localhost" 的连接已建立 (端口 5555 )。 您有整个 VPN Server 的管理员权限。 VPN Server >
首次进入直接回车即可。设置hub后这里输入hub名和密码可直接进入hub内,或直接回车进入管理员。
设置管理服务端登录密码
输入密码即可
输入help
可以查看全部命令。
所有命令不区分大小写
创建hub
输入hub名称及密码,例如devops-hub
1 2 3 4 5 6 7 8 9 10 11 VPN Server>HubCreate HubCreate 命令 - 创建新的虚拟 HUB 新创建的虚拟 HUB 的名字: devops-hub 请输入密码。要取消,请按下 Ctrl + D 键。 密码 : ***** ***** * 确认输入: ***** ***** * 命令成功完成。
选择hub
1 2 3 4 VPN Server >Hub devops-hub Hub 命令 - 选择拟管理的虚拟 HUB 选择虚拟 HUB "devops-hub" 。 命令成功完成。
创建用户
例如创建用户yhan219
1 2 3 4 5 6 7 8 9 10 11 VPN Server/devops-hub>UserCreate UserCreate 命令 - 创建用户 用户名: yhan219 加入群组名称: 用户全名: yhan219 用户描述: yhan219 命令成功完成。
设置用户密码
例如:
1 2 3 4 5 6 7 8 9 VPN Server/devops-hub>UserPasswordSet yhan219 UserPasswordSet 命令 - 将用户身份验证方法设置为密码验证,并设定密码 请输入密码。要取消,请按下 Ctrl + D 键。 密码 : *** 确认输入: *** 命令成功完成。
启用L2TP服务器功能
如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 VPN Server>IPsecEnable IPsecEnable 命令 - 启用或禁用 IPsec VPN Server 功能 启用 L2TP over IPsec 服务器功能(yes / no ): yes 启用原始 L2TP 服务器功能(yes / no ): no 启用 EtherIP / L2TPv3 over IPsec服务器功能(yes / no ): no IPsec 的预共享密钥(推荐:最多 9 位)devops 为避免在用户名中遗漏 HUB,请默认虚拟 HUB 。devops-hub 命令成功完成。
如果忘了共享秘钥,可通过命令查看,如下:
1 2 3 4 5 6 7 8 9 VPN Server>IpSecGet IPsecGet 命令 - 获得当前IPsec VPN Server 设置 项目 |价值 --------------------------------------------+---------- L2TP over IPsec 服务器功能已启用 |是 原始 L2TP 服务器功能已启用 | 否 EtherIP / L2TPv3 over IPsec 服务器功能已启用|否 IPsec 预共享密钥字符串 |devops 默认虚拟 HUB 名 |devops-hub
启用虚拟 NAT 和 DHCP 服务器功能 (安全网络功能,可选,不建议开启) 开启后会导致ping服务器(DUP!)
启动安全网络功能的虚拟 DHCP 服务器功能
删除无用TCP监听端口
除了5555
端口其他都删除
1 2 3 VPN Server>ListenerDeleteListenerDelete 命令 - 删除 TCP 监听器TCP /IP 侦听器端口号: 443
删除默认hub(可选)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 VPN Server>hublist HubList 命令 - 获取一个虚拟 HUB 列表 项目 |价值 ------------+------------------- 虚拟 HUB 名 |DEFAULT 状态 |在线 类型 |独立 用户 |0 组 |0 会话 |0 MAC 表 |0 IP 表 |0 登录次数 |0 最后登录时间|2021-01-26 15:02:42 最后通信时间|2021-01-26 15:02:42 传输字节 |0 传输数据包 |0 ------------+------------------- 虚拟 HUB 名 |devops-hub 状态 |在线 类型 |独立 用户 |1 组 |0 会话 |1 MAC 表 |1 IP 表 |1 登录次数 |0 最后登录时间|2021-01-27 12:44:21 最后通信时间|2021-01-27 12:51:02 传输字节 |12,192 传输数据包 |236 命令成功完成。
1 2 3 VPN Server >HubDelete DEFAULT HubDelete 命令 - 删除虚拟 HUB 命令成功完成。
修改网段(可选) 如果发生IP冲突,可选择修改网段:
查看当前虚拟DHCP配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 VPN Server/devops-hub>DhcpGet DhcpGet 命令 - 获得安全网络功能的虚拟 DHCP 服务器功能的设置 项目 |价值 -------------------------+-------------- 使用虚拟 DHCP 功能 |是 分发地址范围的开始 |192.168.30.10 分发地址范围的结束 |192.168.30.200 子网掩码 |255.255.255.0 租赁期限 (秒) |7200 默认网关地址 |192.168.30.1 DNS 服务器地址 1 |192.168.30.1 DNS 服务器地址 2 |无 域名 | 保存 NAT 和 DHCP 操作日志|是 静态路由表推送 | 命令成功完成。
修改虚拟DHCP
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 VPN Server/devops-hub>DhcpSetDhcpSet 命令 - 更改安全网络功能的虚拟 DHCP 服务器功能的设置 分发地址范围的开始: 192.168.29.10 分发地址范围的结束: 192.168.29.200 子网掩码: 255.255.255.0 租赁期限 (补): 7200 默认网关 (可以不设定): 192.168.29.1 DNS 服务器 1 (可以不设定): 192.168.29.1 DNS 服务器 2 (可以不设定): 域名: 保存日志 (yes/no): yes 命令成功完成。
所有192.168.30
修改为192.168.29
,其他不变。
查看SecureNatHost配置
1 2 3 4 5 6 7 8 VPN Server/devops-hub>SecureNatHostGet SecureNatHostGet 命令 - 获取安全网络功能的虚拟主机的网络接口设置 项目 |价值 --------+----------------- MAC 地址|5A-5A-5B-56-5F-59 IP 地址 |192.168.30.1 子网掩码|255.255.255.0 命令成功完成。
修改SecureNatHost
1 2 3 4 5 6 7 8 9 VPN Server/devops-hub>SecureNatHostSet SecureNatHostSet 命令 - 更改安全网络功能的虚拟主机的网络接口设置 MAC 地址: 5A-5A-5B-56 -5F-59 IP 地址: 192.168 .29 .1 子网掩码: 255.255 .255 .0 命令成功完成。
IP地址修改为上面的网关,其他不变
保存配置
1 2 3 4 5 VPN Server /devops-hub>Flush Flush 命令 - 保存 VPN Server / Bridge 全部不稳定数据到配置文件。 从内存到磁盘写入不稳定数据... 保存成功。文件大小是 15 ,654 字节。 命令成功完成。
重启服务
开放外网端口 需要在云服务器安全组或服务器开放500
和4500
端口,协议为UDP
另外,如果需要用外网Management客户端配置,需要云服务器安全组规则中开放端口5555
,协议为TCP 。为了安全一般在配置完成后需要关闭,需要使用的时候,先连接VPN并用内网IP配置Management。
其他一些命令,例如用户有效期,删除用户,删除群组等,可根据help命令提示参考使用
客户端连接 对于win10,Mac,安卓等操作系统,无需下载客户端,用操作系统自带的VPN连接即可。其他操作系统或想使用客户端的,也可以自到下载链接 中根据实际情况选择适合自己的操作系统下载。
以MacOS连接为例。
系统偏好设置–网络–左下角加号+
新增
接口选择VPN
,vpn类型选择L2TP/IPSec
,服务名称随意填写。
服务器地址填写VPN服务器公网ip,用户名填写刚才新增的用户名(yhan219)
点击认证设置
填写用户名密码和L2TP共享秘钥,连接即可。
在高级设置
中勾选通过VPN发送所有流量
。
应用–确认—连接即可。
在macOS上,如果能连接但是不能访问内网,查看下是否是服务器内网ip和本地内网ip的网段是相同,如果相同则会出现这个问题,修改任意一个的网段即可。
最后附上所有命令列表
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 您可以使用下面的 205 命令: About - 显示版本信息 AcAdd - 添加规则到 IP 地址限制列表(IPv4) AcAdd6 - 添加规则到源 IP 地址访问限制列表(IPv6) AcDel - 源 IP 地址限制列表内的删除规则 AcList - 获取源 IP 地址访问限制列表的规则项目列表 AccessAdd - 添加规则到允许访问列表 (IPv4) AccessAdd6 - 添加访问列表规则 (IPv6) AccessAddEx - 添加扩展访问列表规则 (IPv4:延迟、时基误差/数据包丢失产生) AccessAddEx6 - 添加扩展访问列表规则 (IPv6,生成延迟,时基误差/数据包丢失) AccessDelete - 从访问列表中删除规则 AccessDisable - 禁用访问列表规则 AccessEnable - 启用访问列表规则功能 AccessList - 获取访问列表规则 AdminOptionList - 获取虚拟 HUB 管理选项列表 AdminOptionSet - 设置虚拟 HUB 管理选项的价值 BridgeCreate - 创建本地的网桥连接 BridgeDelete - 删除本地网桥连接 BridgeDeviceList - 获取可以在当地的网桥上使用的 LAN 卡一览 BridgeList - 获得当地网桥连接列表 CAAdd - 添加可以信任的机构颁发的证书 CADelete - 删除可以信任的机构颁发的证书 CAGet - 获得可信任机构颁发的证书。 CAList - 获取可以信任的机构颁发证书的列表 Caps - 获得服务器的功能性能一览表 CascadeAnonymousSet - 将级联连接的用户认证类型设置为匿名身份验证 CascadeCertGet - 获取级联连接所需的客户端证书 CascadeCertSet - 将级联连接时所需的用户验证设置为客户证书验证 CascadeCompressDisable - 级联通信是数据禁止压缩功能 CascadeCompressEnable - 启用级联通信是数据压缩功能 CascadeCreate - 创建一个新的级联接续 CascadeDelete - 删除级联连接 CascadeDetailSet - 级联通信的高级设置 CascadeEncryptDisable - 级联连接通信时,禁用加密 CascadeEncryptEnable - 启用级联通信时加密 CascadeGet - 获取级联连接的设置 CascadeList - 获取级联接续列表 CascadeOffline - 将级联设置为脱机状态 CascadeOnline - 设置级联接续的在线状态 CascadePasswordSet - 将级联连接时所需的用户验证设置为密码验证 CascadePolicySet - 设置级联连接的安全协议 CascadeProxyHttp - 将级联连接方法设定为通过 HTTP 代理服务器 CascadeProxyNone - 将级联的连接方法设置为直接与 TCP/IP 连接 CascadeProxySocks - 将级联连接方法设定为通过 SOCKS 代理服务器 CascadeRename - 更改级联的名称 CascadeServerCertDelete - 删除级联服务器固有的证书 CascadeServerCertDisable - 禁用级联服务器证书验证选项 CascadeServerCertEnable - 启用级联服务器证书验证选项 CascadeServerCertGet - 获取级联连接服务器的固有证书 CascadeServerCertSet - 设置级联连接的服务器特定证书 CascadeSet - 对级联连接方的设定 CascadeStatusGet - 获取级联的当前状态 CascadeUsernameSet - 设置级联连接的用户名 Check - 检测 SoftEther VPN 是否能正常运行 ClusterConnectionStatusGet - 获得群集控制器的连接状态的信息 ClusterMemberCertGet - 获得群集成员证书 ClusterMemberInfoGet - 会员信息的获取 ClusterMemberList - 获得群集成员名单 ClusterSettingController - 设置 VPN Server 类型为群集控制器 ClusterSettingGet - 获取当前 VPN Server 群集配置 ClusterSettingMember - VPN Server 类型设置为群集成员 ClusterSettingStandalone - 设置为独立的 VPN Server 类型 ConfigGet - 获取 VPN Server 当前系统配置 ConfigSet - 往 VPN Server 上写入系统配置内容 ConnectionDisconnect - 断开 VPN Server 和 TCP 的连接 ConnectionGet - 获取连接到 VPN Server 的 TCP 信息一览表 ConnectionList - 获取与 VPN Server 相连的 TCP 连接一览 Crash - 出现一个错误的 VPN Server / Bridge 强行终止该进程。 CrlAdd - 添加无效的证书 CrlDel - 删除无效的证书 CrlGet - 获取无效的证书 CrlList - 获取无效证书名单列表 Debug - 执行调试命令 DhcpDisable - 禁用安全网络功能的虚拟 DHCP 服务器功能 DhcpEnable - 启动安全网络功能的虚拟 DHCP 服务器功能 DhcpGet - 获得安全网络功能的虚拟 DHCP 服务器功能的设置 DhcpSet - 更改安全网络功能的虚拟 DHCP 服务器功能的设置 DhcpTable - 获取安全网络功能的虚拟 DHCP 服务器租约表格 DynamicDnsGetStatus - 显示动态 DNS 功能的当前状态 DynamicDnsSetHostname - 设置动态 DNS 主机名 EtherIpClientAdd - 添加新的 EtherIP / L2TPv3 over IPsec 客户端设置来接受 EtherIP / L2TPv3 客户端设备 EtherIpClientDelete - 删除一个 EtherIP / L2TPv3 over IPsec 客户端设置 EtherIpClientList - 获得当前 EtherIP / L2TPv3 客户端设备条目定义列表 ExtOptionList - 获取虚拟 HUB 扩展选项列表 ExtOptionSet - 设置虚拟 HUB 扩展选项的值 Flush - 保存 VPN Server / Bridge 全部不稳定数据到配置文件。 GroupCreate - 创建组 GroupDelete - 删除组 GroupGet - 获得组信息和所属用户列表 GroupJoin - 用户添加到组 GroupList - 获取组列表 GroupPolicyRemove - 删除组的安全策略 GroupPolicySet - 设置组的安全策略 GroupSet - 设置组信息 GroupUnjoin - 从组内删除用户 Hub - 选择拟管理的虚拟 HUB HubCreate - 创建新的虚拟 HUB HubCreateDynamic - 创建一个新的动态虚拟 HUB (集群) HubCreateStatic - 新创建一个静态虚拟 HUB (集群用) HubDelete - 删除虚拟 HUB HubList - 获取一个虚拟 HUB 列表 HubSetDynamic - 将虚拟 HUB 的类型变为动态虚拟型 HubSetStatic - 将虚拟 HUB 的类型变为静态虚拟型 IPsecEnable - 启用或禁用 IPsec VPN Server 功能 IPsecGet - 获得当前IPsec VPN Server 设置 IpDelete - 删除 IP 地址表项 IpTable - 获取 IP 地址表数据库 KeepDisable - 禁用保持互联网连接功能 KeepEnable - 启动 Internet 保持连接功能 KeepGet - 获取保持互联网连接的功能 KeepSet - 设置 Internet 保持连接功能 LicenseAdd - 注册新的许可证密钥 LicenseDel - 删除已注册许可 LicenseList - 获得已注册许可证的列表 LicenseStatus - 获取目前的 VPN Server 状态 ListenerCreate - 创建新的 TCP 监听器 ListenerDelete - 删除 TCP 监听器 ListenerDisable - 停止 TCP 监听器运行 ListenerEnable - 开始 TCP 监听器运行 ListenerList - 获取 TCP 监听器列表 LogDisable - 禁用安全日志或数据包日志 LogEnable - 启用安全日志或数据包日志 LogFileGet - 日志文件下载 LogFileList - 获取日志文件列表 LogGet - 获取虚拟 HUB 日志的保存设定 LogPacketSaveType - 设置保存为数据包日志文件的数据包种类及保存。 LogSwitchSet - 设定替换日志文件的周期 MacDelete - 删除 MAC 地址表项 MacTable - 获取 MAC 地址表数据库 MakeCert - 创建新的 X.509 证书和密钥 (1024 位) MakeCert2048 - 创建新的 X.509 证书和密钥 (2048 位) NatDisable - 禁用安全网络功能的虚拟 NAT 功能 NatEnable - 启用安全网络功能的虚拟 NAT 功能 NatGet - 获得安全网络功能的虚拟 NAT 功能的设置 NatSet - 更改安全网络功能的虚拟 NAT 功能的设置 NatTable - 获得安全网络功能的虚拟 NAT 功能会话表 Offline - 虚拟 HUB 脱机 Online - 虚拟 HUB 的联机 OpenVpnEnable - 启用/禁用 OpenVPN 克隆服务器功能 OpenVpnGet - 获取 OpenVPN 克隆服务器功能的当前设置 OpenVpnMakeConfig - 生成 OpenVPN Client 样本设置文件 OptionsGet - 获得虚拟 HUB 的设置选项 PolicyList - 查看安全协议和可以设置的值得列表 RadiusServerDelete - 删除应用于用户认证的 RADIUS 服务器设置 RadiusServerGet - 获取用于用户认证的 RADIUS 服务器设置 RadiusServerSet - 使用在用户认证中使用的 RADIUS 服务器设置 Reboot - VPN Server 服务重新启动 RouterAdd - 定义一个新的虚拟 3 层交换机 RouterDelete - 删除虚拟 3 层交换机 RouterIfAdd - 在虚拟 3 层交换机上添加一个虚拟远程接口 RouterIfDel - 删除虚拟 3 层交换机的虚拟远程接口 RouterIfList - 获取在虚拟 3 层交换机中注册的远程接口的清单 RouterList - 获取虚拟 3 层交换机列表 RouterStart - 开始运行虚拟 3 层交换机 RouterStop - 停止虚拟 3 层交换机的运行 RouterTableAdd - 添加一个路由表项到虚拟 3 层交换机 RouterTableDel - 删除虚拟 3 层交换机的路由表项 RouterTableList - 获取虚拟 3 层交换机的路由列表 SecureNatDisable - 禁用虚拟 NAT 和 DHCP 服务器功能 (安全网络功能) SecureNatEnable - 启用虚拟 NAT 和 DHCP 服务器功能 (安全网络功能) SecureNatHostGet - 获取安全网络功能的虚拟主机的网络接口设置 SecureNatHostSet - 更改安全网络功能的虚拟主机的网络接口设置 SecureNatStatusGet - 获取虚拟 NAT 和 DHCP 服务器功能 (安全网络功能) 的工作状态 ServerCertGet - 获得 VPN Server 的 SSL 证书 ServerCertRegenerate - 生成一个新的带有指定 CN (Common Name) 的自签名证书,并且在 VPN Server 上注册。 ServerCertSet - VPN Server 的 SSL 证书和密钥的设置 ServerCipherGet - 获取 VPN 通信中使用的加密程序 ServerCipherSet - 设置 VPN 通讯中使用的加密程序, ServerInfoGet - 获取服务器信息 ServerKeyGet - 获取 VPN Server SSL 证书的密钥 ServerPasswordSet - 设置 VPN Server 管理员密码 ServerStatusGet - 获取当前服务器状态 SessionDisconnect - 断开会话 SessionGet - 获取会话信息 SessionList - 获取连接会话的列表 SetEnumAllow - 设定虚拟 HUB 允许向匿名用户显示。 SetEnumDeny - 设定虚拟 HUB 禁止向匿名用户显示。 SetHubPassword - 设置虚拟 HUB 的管理密码 SetMaxSession - 设定虚拟 HUB 的最大同时在线用户数量 SstpEnable - 启用/禁用 Microsoft SSTP VPN 克隆服务器功能 SstpGet - 获得 Microsoft SSTP VPN 克隆服务器功能的当前设置 StatusGet - 获取虚拟 HUB 的当前状况 SyslogDisable - 禁用发送系统日志的功能 SyslogEnable - 设置发送系统日志功能 SyslogGet - 取得发送系统日志的功能 TrafficClient - 在用户模式下,运行网络流量速度测试工具 TrafficServer - 在服务器模式下,运行网络流量速度测试工具 UserAnonymousSet - 将用户身份验证方法设置为匿名验证 UserCertGet - 获取注册固有证书认证用户的证书 UserCertSet - 将用户身份验证方法设置为固有证书验证,并设定证书 UserCreate - 创建用户 UserDelete - 删除用户 UserExpiresSet - 设置用户的有效期限 UserGet - 获取用户信息 UserList - 获取用户列表 UserNTLMSet - 用户身份验证方法设置为 NT 域认证 UserPasswordSet - 将用户身份验证方法设置为密码验证,并设定密码 UserPolicyRemove - 删除用户的安全策略 UserPolicySet - 设置用户的安全策略 UserRadiusSet - 将用户的认证方法设定为半径认证 UserSet - 更改用户信息 UserSignedSet - 将用户身份验证方法设置为已签名证明书认证 VpnAzureGetStatus - 显示 VPN Azure 功能的当前状态 VpnAzureSetEnable - 启用/禁用 VPN Azure 功能 VpnOverIcmpDnsEnable - 启用/禁用 VPN over ICMP / VPN over DNS服务器功能 VpnOverIcmpDnsGet - 获取 VPN over ICMP / VPN over DNS 功能的当前设置