此贴仅供学习交流使用,请勿用于其他用途。

有时候一些公司或者一些学校等会有多个园区,却又想要不同的园区之间使用私密通信,但是专门拉一条专线从成本上来讲就很难行得通,于是虚拟专线应运而生。

搭建虚拟专用网需要一个服务端和一个客户端,服务端最好要有一个公网IP。服务端我使用的是Ubuntu18的系统,版本比较老,但是也能用,有时候新的系统反而会有兼容性问题。
之前搭的时候是用的我的服务器,现在服务器换成了centos用来搭网站,所以本次演示使用的是vm的虚拟机。
Ubuntu的安装就直接跳过了,需要注意的是Ubuntu18的版本在vmware虚拟机里不能分配超过2核1G内存,否则安装时会出现输入的字符乱码现象,连用户都无法创建。

安装完成后的界面

系统安装完成后需要使用sudo passwd来设置root密码,密码设置完成后使用su命令进入管理员模式。

建议使用apt-get update来更新下软件源
之后下载Linux版本的softether,官网国内搜索引擎是搜不到的,有条件的可以上谷歌进官网获取下载链接,或者在GitHub上搜索softether,进入软件的发行页面获取下载链接。版本选择的时候就选Intelx64-Linux就可以,如果是使用树莓派等arm架构的服务器可以下载arm类型的。
在获取到下载链接后可以在服务器上使用wget命令直接下载,也可以下载到本地电脑上通过ssh或ftp发送到服务器的根目录。
wget命令用法
wget 获取到的下载链接
在安装之前建议编译下gcc环境,使用命令
apt-get install make gcc g++ -y
下载过程可能会有些慢,如果下载出错就重新执行一遍命令即可

下载完成后解压tar.gz文件,使用命令
tar -zxvf 刚才下载的压缩包名

之后进入vpnserver文件夹
cd vpnserver
./.install.sh //安装软件
如果是旧版本的softether可能会在安装过程中输入三次1,新版本就会直接安装完成

./vpnserver start //开启服务

开启服务后会出现这个提示,记下提示的IP地址,一般就是服务器的公网IP,由于我用的是虚拟机,所以提示的IP是内网IP。
./vpncmd //进入软件控制台
进入控制台后第一项输入1,其余两项回车。如果服务器的443端口被占用的话,可以在控制台中改下端口,不改的话默认为443。
之后就可以在Windows端(客户端)打开softether了安装softether也是在GitHub上下载安装包,安装时选择仅限管理工具即可。

在软件主页面选择新设置后在弹出的新窗口中的主机名中填入刚才开启服务提示的IP(服务器公网IP),如果改了端口号则主机名下面的端口号也需保持一致
首次链接会要设置一个密码,设置即可

在弹出的这个界面中选择其他高级设置,之后点击右下角的关闭,之后弹出的点否

在这个界面中点击管理虚拟hub来创建用户并且启用servernet

点击管理用户进行新建用户

点击虚拟net和虚拟DHCP服务器

点击启用servernet
之后返回软件的服务器管理页面,点击右下角的OpenVPN/MS-SSTP设置

使用默认参数即可
打开生成的压缩文件,选择后缀为l3的文件,解压出来

用记事本打开

将remote字段后的一堆东西改成服务器的公网IP,端口号不用动
客户端安装openvpn软件,打开openvpn,会在电脑的右下角处显示,右键选择import file导入刚生成且修改后的配置文件

再次邮件软件图标,选择刚才导入的配置文件,连接后会要求输入用户名密码,就是刚才在softether软件中创建的用户

连接成功后软件图标变成绿色,我电脑连接成功后没网是因为我连接到了虚拟机的网络,而虚拟机网络是主机网络net转接的,所以当然没网

之前用华北地区的服务器搭过一回,测试成功后b站IP属地成功更改