local area network scope definition

局域网作用

日常使用网络的过程中,局域网是非常有用的一个技术,它可以让一个范围内的多个设备互相访问、发现,共享一个广域网等。由于局域网的特性,可以用来做很多事,常见的比如:局域网传输文件、局域网设备通信,虚拟局域网可以让设备不受物理条件的限制,通过种种手段,让多个设备处于同一内网。那么虚拟局域网有什么用呢?比如说可以访问远程你的服务器,数据共享,远程连接公司的资源等。目前市面上有很多的工具可以选择,但都是基于第三方的服务来实现的,对于个人而言价格是比较贵的,限制条件也特别多,一般公司或企业会采用这种方式来实现。本文经过自己踩坑无数,试验了无数工具看遍了全网的教程的各种教程,最终找到一个完美的解决方案,可用于公司,企业,个人学习,的需求场景,并且完全属于自己的局域网网络,不借助第三方的服务,安全稳定。兼容所有设备,和操作系统,Windows|MAC|linux|Android|IOS都可以连接,服务端也支持Windows|MAC|linux三种方式部署


提示:阅读本文需要一定的网络知识

 

优点

1. 没有公网IP也可以,只要一台有网络足够快的主机当服务器就可以,如果有公网IP的服务器就更好了,没有公网IP的服务器就需要借助第三方的全球DDNS服务来实现,或者自己做内网隐射也可以
2. 兼容市面上几乎所有的设备接入
3. 用户安全,可以使用证书或密码验证登录,支持加密锁
4. 数据安全,支持多种加密方式,支持SSL3.0
5. 可以穿透网络,防火墙,NAT
6. 支持服务端相互连接,可以组建大型域级连接

 

缺点

1. 对服务器网络要求高,所有流量都在服务器分发和中转,仅支持点对端的连接模式,不支持点对点通信。商业或者大规模用途的话,可以去大厂买按流量计费的服务器,不限制带宽,1G的流量估计就7毛钱左右,或者再买一个流量套餐包,成本及其低。
 
2. 不支持P2P穿透,试验过很多P2P的工具,几个还比较靠谱的如:N2N | zerotier | KAS看雪 都自称P2P穿透直连,但是效果都不尽人意,穿透直连几率很小,而且对网络环境的要求也高,不是每个网络环境都可以成功,一般PING值小于10MS就是直连成功了,尝试用过,但是在生产环境不适用,几率很小,有些环境还不如免费版的向日葵。而且大多都不支持L2IP,并且也只能点对点通信,折腾一番后,还是放弃,P2P虽好,但是目前的解决方案始终不够成熟。还是老老实实用传统方式,第一稳定,第二方便。以过来人的经验奉劝一句,P2P方案有兴趣可以折腾下,但是生产环境不建议。

 

SoftEther

SoftEther介绍

SoftEther起源筑波大学的一个学术项目,它可以在Windows|Linux|Mac|FreeBSDSolaris上运行SoftEther是开源的。可以将SoftEther免费用于任何个人或商业用途,支持适用于Windows|Vista|7|8的Microsoft|SSTP不再需要为WindowsServer许可证使用远程访问功能支付昂贵的费用。强大SSL协议,可以穿透任何类型的防火墙。超优化SSL协议具有非常快的吞吐量,低延迟和防火墙抵抗力。


 

服务端部署

教程使用3M带宽,带公网IP的Centos7.6系统服务器

 
官方下载渠道

下载完了把源码用FTP工具传到服务器上去,或者直接在服务器上用wget命令下载也可以

$ wget https://www.softether-download.com/files/softether/v4.32-9731-beta-2020.01.01-tree/Linux/SoftEther_VPN_Server/64bit_-_Intel_x64_or_AMD64/softether-vpnserver-v4.32-9731-beta-2020.01.01-linux-x64-64bit.tar.gz

下载源码
下载源码
下载完成解压出来进入这个高亮文件夹进行安装
下载完成解压出来进入这个高亮文件夹进行安装
使用make编辑安装,阅读许可选择1
使用make编辑安装,阅读许可选择1
一路下来都选择1进行安装,出现图内信息表示安装成功
一路下来都选择1进行安装,出现图内信息表示安装成功
安装完成会多两个程序出来,CMD是管理程序,server是启动程序
安装完成会多两个程序出来,CMD是管理程序,server是启动程序

 

$ ./vpnserver start  #启动服务端 
                   #程序弹出默认的本地IP和端口,由于在云服务器上运行的,再查一下端口使用情况就知道是否正常运行
$ netstat -lntp      #查看端口使用情况

可以看到程序启动已经占用了这些端口

#使用systemctl管理命令
systemctl:sudo curl https://cdn.mivm.cn/www.mivm.cn/archives/softether-vpn-lan/vpnserver.service -o /lib/systemd/system/vpnserver.service  #添加
sudo systemctl start vpnserver         #开始运行
sudo systemctl stop vpnserver          #停止运行
sudo systemctl enable vpnserver        #开机启动
sudo systemctl disable vpnserver       #取消开机启动

 

Dockr部署

1.Dockr的安装和配置请自行百度下,这里不再赘述了,简单的一匹

2.下载镜像

$ docker pull frosquin/softether

3.创建和启动容器

$ docker run -d --net host --cap-add NET_ADMIN --name softether frosquin/softether

4.如果要使用外部配置文件

$ touch /etc/vpnserver/vpn_server.config
docker run -d -v /etc/vpnserver/vpn_server.config:/usr/local/vpnserver/vpn_server.config --net host --cap-add NET_ADMIN --name softether frosquin/softether

5.如果要将日志保留在数据容器中

$ docker volume create --name softether-logs
docker run -d --net host --cap-add NET_ADMIN --name softether -v softether-logs:/var/log/vpnserver frosquin/softether

 

配置服务端

接下来就就是配置服务端了,配置完了后才可以使用,现在只是把程序跑起来了,配置方式有两种:一种是直接通过程序安装出来的cmd命令方式来配置,linux不是特别熟悉的同学可能会有点麻烦。第二种就是在电脑上安装程序服务端管理程序,然后连接到你的服务器上来远程设置。用可视化的界面来配置,本教程用管理程序来演示配置服务端,首先把管理程序下载下来。
服务端管理程序

选择管理工具安装,第一个安装的选项是直接安装服务端程序,第二个是安装域级连接服务端
选择管理工具安装,第一个安装的选项是直接安装服务端程序,第二个是安装域级连接服务端
选择新设置
选择新设置
设置名,随意。主机名就是你的服务器IP,端口,程序跑的端口,填写完了确定就可以了,然后点击连接
设置名,随意。主机名就是你的服务器IP,端口,程序跑的端口,填写完了确定就可以了,然后点击连接
连接上了后,会要求设定一个管理密码,自行设定。如果连接不上你的服务器,请检查端口是不是通的,一般都是端口的问题。然后界面会自动弹出设置界面,按下面的图片说明进行设置
连接上了后,会要求设定一个管理密码,自行设定。如果连接不上你的服务器,请检查端口是不是通的,一般都是端口的问题。然后界面会自动弹出设置界面,按下面的图片说明进行设置
服务器作用定义,然后设置一个虚拟得HUB名字,随意
服务器作用定义,然后设置一个虚拟得HUB名字,随意
动态DNS功能,如果你的服务端没有公网IP就会用到这个功能,程序会默认给你一个名字,或者自行设定也可以,直接点退出就可以了
动态DNS功能,如果你的服务端没有公网IP就会用到这个功能,程序会默认给你一个名字,或者自行设定也可以,直接点退出就可以了
多协议设置,这个选项是设置是否可以让其他设备接入,不管什么设备,只要支持IPsec协议的,都可以连接,预共享密匙,自行设定
多协议设置,这个选项是设置是否可以让其他设备接入,不管什么设备,只要支持IPsec协议的,都可以连接,预共享密匙,自行设定
Azure云,这是个第三方的功能,如果你的主机没有公网IP,就要借助他们的服务了,免费的,相当于内网穿透。不需要公网IP了,就只需要上面设置的哪个DNS动态地址,就相当于是一个公网IP的概念。这块的概念有点复杂,如果不理解可以留言问我。本文演示用是有公网IP的服务器,所以不需要这个服务,直接禁用就可以了
Azure云,这是个第三方的功能,如果你的主机没有公网IP,就要借助他们的服务了,免费的,相当于内网穿透。不需要公网IP了,就只需要上面设置的哪个DNS动态地址,就相当于是一个公网IP的概念。这块的概念有点复杂,如果不理解可以留言问我。本文演示用是有公网IP的服务器,所以不需要这个服务,直接禁用就可以了
创建用户,创建用户名,再新建一个用户组,然后验证类型支持匿名,证书,密码,NT域,或者电子锁。设置起来有点麻烦,具体可以留言问我,本文就直接用最简单的,密码验证
创建用户,创建用户名,再新建一个用户组,然后验证类型支持匿名,证书,密码,NT域,或者电子锁。设置起来有点麻烦,具体可以留言问我,本文就直接用最简单的,密码验证
然后基本设置就完成了,现在再设置一下别的内容,虚拟MAT和虚拟DHCP服务器设置
然后基本设置就完成了,现在再设置一下别的内容,虚拟MAT和虚拟DHCP服务器设置
打开虚拟NAT和虚拟DHCP服务器
打开虚拟NAT和虚拟DHCP服务器
打开配置
打开配置
自定义你的网关地址,我这里演示就随意设置了一个10.10.10.1 。 虚拟DHCP服务器,定义连接上这台服务器的设备自动分配的IP地址范围,我这里就设置了30个地址,就表示最多30台设备连接。应用到客户端的选项,把里面的默认内容全部去掉,不然连接上这台服务器的时候,设备会应用这个远程网关,你本机上的所有流量都会走这台服务器
自定义你的网关地址,我这里演示就随意设置了一个10.10.10.1 。 虚拟DHCP服务器,定义连接上这台服务器的设备自动分配的IP地址范围,我这里就设置了30个地址,就表示最多30台设备连接。应用到客户端的选项,把里面的默认内容全部去掉,不然连接上这台服务器的时候,设备会应用这个远程网关,你本机上的所有流量都会走这台服务器

这样基本就已经设置完成了,现在连接试一下,我直接用win10系统来连接试试

 

Windows系统连接

用系统自带得链接,填写登录信息,和服务器地址,如果你的服务器有域名的话,也可以写域名

新建链接
新建链接
配置信息填写
配置信息填写
配置完了,点击链接,成功连接,看下IP地址是多少
配置完了,点击链接,成功连接,看下IP地址是多少

 

Android设备连接

本文用的小米9

新建一个连接,填写服务器信息,预共享密匙,账户和密码,转发路线一定要写,不然你的所有流量都会走服务器过,转发路线规则就是你定义的网关地址去掉最后一位加/24就可以了,例如我的是10.10.10.1 那么就写10.10.10.0/24

如图设置
如图设置
如图设置
如图设置
如图设置
如图设置

 

IPAD连接

新建一个连接,填写服务器信息,账号,密码,共享密匙,流量这按钮要取消掉

如图设置
如图设置
如图设置
如图设置
如图设置
如图设置

 

linux连接

linux链接有点麻烦,涉及到linux的一些知识和网络基础知识,简单来说,就是把linux客户端安装上去后,使用cmd管理程序来进行连接,需要防火墙放通端口和程序读写权限。这里不再过多演示了,有需求的同学请直接留言询问

 

测试一下

用windows端去ping一下安卓和ios端的设备网络是不是通的

ping- IOS端的,连接正常,网络是通的
ping- 安卓端的,连接正常,网络是通的

 

测试结束,本文测试的三台设备都可以相互访问数据。已经连接上的所有设备,可以通过服务端管理程序虚拟DHCP服务器状态查看

 

友情提示:如果部署或者连接中出现问题,请仔细阅读每一步的说明和设置解释,已经说的非常清楚了

Last modification:April 13, 2022
如果你想请我喝奶茶的话