使用 SoftEther VPN 搭建虚拟局域网

2019-06-09 11544点热度 37条评论

在我们日常使用网络的过程中,局域网是非常有用的一个技术,它可以让一个范围内的多个设备互相访问、发现,共享一个广域网等。

由于局域网的特性,可以用来做很多事,常见的比如:局域网传输文件、游戏联机。

说起游戏联机,如果想和小伙伴一起玩局域网联机的游戏,小伙伴又没跟我在同一个局域网,这就是件很难解决的事情?这时候就可以用虚拟局域网来解决问题。

虚拟局域网可以让设备不受物理条件的限制,通过种种手段,让多个设备处于同一内网。通常的手段是 VPN。

那么虚拟局域网有什么用呢?比如说可以访问远程的 samba,游戏局域网联机等等。

因为最近小山跟朋友局域网联机玩游戏,所以找了很多解决方案,最后我选择了 SoftEther VPN,它安装和管理起来相当方便,而且运行稳定,下面就教大家如何使用它来搭建虚拟局域网。

SoftEther VPN 虚拟局域网

准备工作

首先,需要一台具有可访问公网 IP 的设备,用来作为虚拟局域网的服务器。

服务器的性能不需要太高。1G 内存就差不多,但是带宽很重要,带宽的大小、网络的延迟取决于你用虚拟局域网做什么。

如果要玩游戏,网络延迟就很重要了,最好在 50ms 以下,不能超过 100ms。我推荐使用国内的共享 IP 服务器,端口开放也不需要太多,3 个就够了。

如果是做其他用途,比如访问远程的文件,就很随意了。

安装 SoftEther VPN 和管理软件

先安装 SoftEther VPN Server

访问 SoftEther 下载中心:https://www.softether-download.com/

选择一个组件:SoftEther VPN Server

选择系统:根据你的服务器系统进行选择,我以 Linux 为例。

选择 CPU:根据你服务器的 CPU 架构进行选择

下载并解压最新版本的压缩包

解压之后会得到 vpnserver 文件夹,里面是半成品的文件,需要 make 编译一下,切换到 vpnserver 目录,运行make即可,如果有询问,一直输入1即可。

这样二进制文件就编译好了,将二进制文件复制到一个全新的目录,依次执行下列命令:

sudo mkdir -p /usr/local/vpnserver

sudo cp -p hamcore.se2 /usr/local/vpnserver/hamcore.se2

sudo cp -p vpncmd /usr/local/vpnserver/vpncmd

sudo cp -p vpnserver /usr/local/vpnserver/vpnserver

至此,SoftEther VPN Server 就安装好了。

开始运行:sudo /usr/local/vpnserver/vpnserver start

停止运行:sudo /usr/local/vpnserver/vpnserver stop

如果你想使用 systemd 管理它并开机启动,执行以下命令:

sudo curl https://cdn.mivm.cn/www.mivm.cn/archives/softether-vpn-lan/vpnserver.service -o /etc/systemd/system/vpnserver.service

开始运行:sudo systemctl start vpnserver

停止运行:sudo systemctl stop vpnserver

开机启动:sudo systemctl enable vpnserver

取消开机启动:sudo systemctl disable vpnserver

查看运行状态:sudo systemctl status vpnserver


接下来安装 SoftEther VPN Server 管理程序,基于 Windows,方便管理。

访问 SoftEther 下载中心:https://www.softether-download.com/

选择一个组件:SoftEther VPN Server Manager for Windows

选择系统:Windows

选择 CPU:Intel (x86 and x64)

下载最新版本的安装包

询问安装什么组件的时候,只需要选择【SoftEther VPN Server 管理工具(仅限管理工具)】即可。

安装完成后打开管理工具,点击 [新设置] 添加一个服务器。

[设置名] 随意填写,[主机名] 填写服务器的 IP 地址,[端口号] 可以填写 443、992、1194、5555,那个都可以,务必确保这些端口没有被其他程序占用且可以访问,管理模式选择 [服务端管理模式],默认没有密码,不需要输入。

首次连接会让你设置新密码,然后会弹出【SoftEther VPN Server 简单安装】的窗口,关闭即可。接着会询问你是否需要设置 IPsec/L2TP,点击 [否]。

基础设置 SoftEther VPN Server

点击【OpenVPN / MS-SSTP 设置】,取消选中 [启用 OpenVPN 克隆 Server 功能] 和 [开启 MS-SSTP VPN 克隆 Server 功能]。

点击【加密与网络】,取消选中 [使用并保持互联网的连接]。

删除左下角【监听器列表】的多余端口,只保留一个就行,如果想更改端口,先新建一个端口,然后使用新端口连接到服务器,再把旧端口删除。

关闭 动态DNS

SoftEther VPN Server 自带动态 DNS 功能,这个功能一般来说没啥用,关闭它需要编辑配置文件。

点击右下角的【编辑设置】,点击 [保存到文件] 保存到本地,打开保存的文件。

在前几行找到declare DDnsClient,然后把它下面的bool Disabled false改成bool Disabled true

编辑配置文件

 

点击【编辑配置文件】窗口的 [导入文件并应用],导入刚刚修改好的文件。

SoftEther VPN Server 会自动重启,管理程序也会自动关闭。

做完上面这些,SoftEther VPN Server 的基础设置就完成了,接下来,开始创建虚拟局域网。

创建虚拟局域网

SoftEther VPN 中,每个虚拟局域网对应一个虚拟 HUB,同一个 HUB 内的所有设备可以互相访问,不同的 HUB 之间不可以互相访问。

一般只需要创建一个虚拟 HUB 就行了。

SoftEther VPN Server 会默认创建一个名为 [DEFAULT] 的虚拟 HUB,把它删掉。

然后创建一个新的虚拟 HUB,点击 [创建虚拟 HUB] → [虚拟 HUB 名] 随便填,比如我用来玩游戏,叫它 [GameLAN] → 密码填不填都行,如果填了密码,可以使用这个密码单独管理 HUB 而不是整个服务器 → 选中 [不要向匿名用户枚举] →  [确定]。

创建好以后,点击 [管理虚拟 HUB]。

首先把 DHCP 服务器打开,这样连接 VPN 之后就会自动分配 IP 地址,点击 [虚拟 NAT 和虚拟 DHCP 服务器]  → [启用 SecureNAT] → [SecureNAT 配置] → 取消选中 [使用虚拟 NAT 功能]。

然后把 [默认网关地址] 和 [DNS 服务器地址] 清空 → [确定] → 关闭 [虚拟 NAT 和虚拟 DHCP 服务器] 窗口。如果不清空默认网关地址,当客户端连接 SoftEther VPN 之后,可能所有网络流量都会经过 SoftEther VPN Server

SecureNAT 配置

最后一步,创建用户。点击 [管理用户] → [新建] → 填写用户名和密码 → 完成创建。如果只是你一个人用,创建一个用户就可以了,如果是多个人用,最好每个人一个用户。

然后关闭掉 [管理用户] 和 [管理虚拟 HUB] 的窗口

由于 SoftEther VPN 没有官方手机客户端,为了可以在手机上使用,需要启用 L2TP 功能,以便在手机上进行连接。

点击 【IPsec / L2TP 设置】 → 选中 [启用 L2TP 服务器功能(L2TP over IPsec)] → 在下方的 [IPsec 预共享密钥] 填写 8 个字符,最好是随机的 → [确定]

注意,L2TP 不支持自定义端口,服务器必须开启 500 和 4500 端口,对于共享 IP 的服务器来说,L2TP 就无法使用了。

至此,虚拟局域网就完全可用了,接下来教大家如何在 Windows 以及 Android 使用 SoftEther VPN。

Windows 客户端使用

Windows 使用 SoftEther VPN 非常的方便,因为有官方客户端。

访问 SoftEther 下载中心:https://www.softether-download.com/

选择一个组件:SoftEther VPN Client

选择系统:Windows

选择 CPU:Intel (x86 and x64)

下载最新版本的安装包

安装完成后打开客户端,点击 [添加新的 VPN 连接],第一次会提示需要创建虚拟网卡,等待创建完成即可。

[连接设置名] 随意填写,[主机名] 填服务器 IP,[端口号] 填服务器的监听端口,[虚拟 HUB 名] 填刚刚创建的虚拟 HUB 名称,右边填写用户名和密码,取消选中 [断开后自动重连]。

点击 [高级设置],[TCP 连接数] 设置为 8。

创建完毕后,双击进行连接,连接成功并提示分配到 IP 地址即可。

Windows 下使用需要注意,VPN 默认是公用网络,如果想让 VPN 访问程序的服务,Windows 防火墙允许访问的时候,记得勾选公用网络。

Android 设置 VPN

由于 Android 没有官方客户端,只能使用系统的 VPN 功能来创建 L2TP 连接,方法也很简单,以下操作以 Android Pie 为例。

找到手机的 VPN 设置,新建一个 VPN 连接。

VPN 类型/协议 选择 [L2TP/IPsec PSK],[服务器地址] 填写服务器 IP,[L2TP 密钥] 和 [IPSec 标识符] 不用管,[IPsec 预共享密钥] 填刚刚设置的预共享密钥。

用户名填写格式为 [用户名@虚拟 HUB 名],比如我刚刚创建的虚拟 HUB 名为 [GameLAN],新建用户名为 [test],那么我的 L2TP 用户名就是 [test@GameLAN],密码还是刚刚新建用户时的密码。

选中 [显示高级选项],[转发路线] 填写虚拟 HUB 的 IP 段,就是 DHCP 服务器设置的 IP 段,默认为 192.168.30.0/24,[转发路线] 务必要设置,否则所有流量都会经过 VPN。

Android VPN 设置

全部设置完成,就可以连接了。

 


以上就是如何使用 SoftEther VPN 搭建虚拟局域网的方法,希望可以帮助到有用的小伙伴。

如果有任何不懂的地方,欢迎加入 QQ 群小山进行探讨。

微信公众号二维码

微信扫描二维码关注我们

如果觉得文章有帮助到你,可以点击下方的打赏按钮赞助下服务器费用。

小山

一个什么都不会但要装作很厉害的人

文章评论

  • 德莱

    你好,我设置的VPN 一连上两边的 网络就会卡死

    2021-04-28
    • 小山

      @德莱 务必清除网关设置以及关闭 SecureNAT

      2021-04-29
  • 岳某某

    :razz: 你的qq多少啊 连不上啊

    2021-03-17
    • 小山

      @岳某某 可以加入 QQ 群与我交流

      2021-03-18
      • 岳某某

        @小山 qq群是多少啊

        2021-03-29
        • 小山

          @岳某某 点击文章内的"QQ群"字样即可加入QQ群,或扫描文章下方二维码关注“米V米”公众号回复“QQ群”。

          2021-03-29
  • long_ken

    Softether在部分设备如Windows 7 使用在局域网游戏内能够搜到对方的房间,反而在Windows10下,必须使用Softether提供的虚拟IP才能联机,这样导致了部分不能输入 IP连接的游戏无法联机。

    2021-02-11
    • 小山

      @long_ken 游戏设置防火墙的时候需要选择允许访问 "公共网络"

      2021-02-15
      • long_ken

        @小山 我先前看到有帖子说要 ①将Softether弄倒专用网络才有效果,按照帖子做之后,并没有特别明显的成果。
        目前来讲,只是单纯的无法在局域网内搜到其他人的房间,但却能够通过虚拟IP直接连接,如192.168.30.10,就可以访问了。
        ②也有的人说是ICMP的问题。
        请大佬指点指点

        2021-02-18
        • 小山

          @long_ken 我不是很清楚这种情况,不过如果是 ICMP 的问题,你可以在防火墙里设置允许公共网络访问 ICMP。

          2021-02-18
  • ebcart

    请问下softether 在window7 下面,测试下载速度就比较快,但是 在win10 下面,测试下载速度就超级慢

    2020-10-27
    • 小山

      @ebcart 我没有在 Windows7 使用过,所以不清楚是否有这个问题。

      2020-10-27
  • IRIS

    请问一下,那个我按照教程设置好了,电脑和手机都显示已连接,电脑端查询ip是服务器端的ip了,但是手机上面显示依旧是运营商的ip,内网进不去,请问下这个应该怎么办。

    2020-10-08
    • 小山

      @IRIS 你可以加入下QQ群与我详细交流

      2020-10-09
  • 伍六七

    安卓连接一直提示失败,电脑端连接没问题是怎么回事

    2020-07-28
    • 小山

      @伍六七 可能是你的 L2TP 没有设置好

      2020-07-29
      • 伍六七

        @小山 我找了几个教程轮着试了一遍都不行,开op用op连接也连不上,一直卡在等待服务器响应,不知道咋回事, L2TP设置了几遍都不行

        2020-07-30
        • w1uy

          @伍六七 同学 我和你的问题 一摸一样 请问 你的 解决了吗

          2020-11-13
          • 伍六七

            @w1uy 没有,只能电脑连接,手机连不上

            2020-11-13
  • 诸葛太亮

    麻烦小山把我拉一下QQ群,拒绝新人进不去啊

    2020-07-01
    • 小山

      @诸葛太亮 不可能啊,QQ群是付费入群的(付费是为了防止机器人)。

      2020-07-01
  • 小卫

    你好,能不能公布一下qq群,很多问题想请教,谢谢

    2020-06-24
    • 小山

      @小卫 点击文章里的 QQ 群即可加入,或者使用电脑访问网站首页,在侧边栏即可看到。

      2020-06-25
  • 大大白

    你好,请问如果没有公网IP,那请问可以用内网穿透代替吗,如果可以请问怎么实现?

    2020-06-20
    • 小山

      @大大白 当然可以,只需要把 SoftVPN 的端口映射出去就可以了。

      2020-06-20
      • 大大白

        @小山 我用花生壳映射SoftVPN 的端口5555,但是连接失败啊,能不能出个文章,教教啊

        2020-06-20
        • 小山

          @大大白 你可以加入QQ群与我交流

          2020-06-20
  • 塔塔喵

    喵想问一下,如果不想搭建专用的联机服务器,
    那么玩家中的某一位是否可以担任服务器指责,
    在实际测试过程中,
    好像虚拟局域网的设备只能单方面访问服务器

    2020-05-22
    • 小山

      @塔塔喵 没太明白你的意思,虚拟局域网必须得有一台主机控制所有客户端。

      2020-05-22
      • 塔塔喵

        @小山 就是现在有2个人(2台电脑)想组局域网,我能否既当主机,又当客户端
        或者说是否至少需要3台电脑才能组成局域网,局域网成员数量为2

        2020-05-23
        • 小山

          @塔塔喵 你当然可以即当主机也当客户端

          2020-05-23
  • 此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据