0%

用SoftEther + L2TP 建立虚拟局域网

最近想和朋友玩无主之地3
但是官方联机做得太差
小伙伴连登陆都成问题
只能使用局域网联机的办法

选择

在网上找搭建虚拟局域网的方案
答案有很多
比如

蒲公英
童年工具:蛤蟆吃 Hamachi
TeamViewer
ZeroTier

但是以上都需要借助第三方的服务器才能用
相当于让第三方服务商帮忙搭建虚拟局域网
试了Hamachi和TeamViewer都因连不上服务器或延迟问题劝退

因为有公网IP 还是考虑自己搭建局域网

然后找到了NebulaSoftEtherVPN
稍微对比后选择了SoftEtherVPN
因为SoftEtherVPN配置十分方便,在windows上有可视化界面进行配置
支持OPENVPN 和L2TP等技术
文档也齐全

服务器搭建

下载源代码到linux服务器

放到/usr/local/softether并解压
unzip /usr/local/softether/*
到解压目录下
make && make install
根据提示选择
安装成功后启动服务
vpnserver start
服务器已经启动成功

服务器配置

服务器配置可在windows 下进行
下载windows服务器配置

安装成功后打开 SoftEther VPN Server管理器
建立服务器连接
默认没密码
第一次连接会让设置新密码

L2TP IPsec配置

这个配置可以让windows 和 手机进行vpn连接

管理虚拟 HUB 新建用户

新建用户,用于登录vpn,一个用户用于一个连接

虚拟NAT 和虚拟DHCP设置

启用secureNAT
想了解NAT原理的同学可自行使用搜索引擎

勾上 使用虚拟 DHCP 服务器功能

如果想让连接VPN的用户能上网
勾上 虚拟 NAT 设置

服务器配置基本完成

连接服务器

windows内置vpn连接

windows下 设置-VPN

服务器需要开启 500,1701,4500端口,使用端口转发的朋友记得在路由器设置
预共享秘钥就是前面 L2TP IPsec配置 设置的vpn
有用户名和密码就是 管理虚拟 HUB 新建用户 添加的用户

这里连接出错的朋友如果坚持继续使用windows内置的vpn连接请善用搜索引擎
想知道详细出什么错误可以用windows 命令行进行拨号
rasdial {vpn名称} {vpn用户名} {vpn用户名密码}
比如 rasdial vpn test 12345678
我两个小伙伴都因为各种设置原因一开始没有连接成功
后来一个小伙伴重置了电脑成功了

SoftEther Client 连接

windows连不了的朋友可以选择用SoftEther客户端进行连接

一开始的选择果然正确
该开源软件的解决方案非常成熟
感谢日本的程序员大神 SoftEther VPN

如果443连接不了 可以用端口转发一个端口到443 比如 4430

Andrioid手机进行连接

设置-连接-vpn-添加vpn
不同手机进入设置vpn的方式可能不同

类型选择L2TP/IPSec PSK
填入服务器IP
IPSec 预共享秘钥填入之前设置的vpn

输入账号密码连接

小结

连接成功后就已经和所有连接了vpn的小伙伴组成局域网了
比如原来的ip 是 192.168.50.100
连上vpn之后会多了一个网卡 ip为 192.168.30.10
可以用192.168.30.x网段 互相ping 互相进行文件访问 互相进行局域网游戏
有些游戏比如LF2 不能由远端的客户端做主机
因为这类游戏并不是监听全网段端口 只是监听了默认网卡的端口
但是可以由和服务器端同一实际局域网下的小伙伴做主机 因为虚拟局域网下的小伙伴都能ping得到 192.168.50.x网段
具体原理请自行搜索子网和主网相关的知识

这种情况应该也可以通过设置路由表解决,不过并没有该需求,所以也没深入研究

小结2

用于连接MCPE,我的世界手机版也是可以的
不过手机需要连接可上网的wifi再连接VPN才能进行局域网游戏
具体原因不详 应该和游戏的逻辑有关

元气骑士用同样的方法连接VPN就没能成功进行局域网联机