ie12 发表于 2022/4/4 11:29

关于使用SoftEther实现游戏联机 可推广性的思考

    使用SoftEther可以轻松搭建虚拟局域网环境(前提是有公网),有了局域网环境就方便的解决游戏联机问题,此处指局域网联机游戏,尽管网上有各种各样的联机教程,一般都是依靠第三方联机平台或p2p联机工具,联机平台的客户端操作相对简单但在高峰期可能挤不上房间或被挤出房间等问题严重影响游戏体验。p2p联机工具虽然避免挤房间的问题,但配置相对复杂,纯p2p对网络要求较高。
   使用SoftEther搭建虚拟局域网唯一的制约条件就是公网,搭建非常简单主要问题还是出在客户端上,如游戏联机无法看见房间,无法加入房间等,就我目前看到的教程还没有比较系统的回答这些问题,想写一些教程来这些问题,但这样的需求似乎比较小众,是否有出教程的必要?
    如果觉的有需求可以回复 目前准备写的是 通过win自带的 l2tp over IPsec 连接到 SoftEther 以及其错误代码的解决,防火墙放行问题以及操作自动化。

小樱 发表于 2022/4/4 18:50

联机 确实没什么好的解决方案,,,传统的蛤蟆吃等软件又被墙了,首先就和你文章所说的,如果要公网ip,那就没意义了,一个游戏用户,谁懂这个
目前已知的Parsec无需公网IP支持P2P内网穿透,两个内网用户可以正常联机成功,前提有一方是NAT1,但是有个明显的缺点,仅支持少数几款游戏

ie12 发表于 2022/4/4 21:27

小樱 发表于 2022/4/4 18:50
联机 确实没什么好的解决方案,,,传统的蛤蟆吃等软件又被墙了,首先就和你文章所说的,如果要公网ip,那 ...

    其实公网ip到并不是我最担心的问题,一方面ipv6正在普及尽管现在还存在普及率不足,机房封端口、光猫防火墙拦截、路由器固件不支持等问题但我认为随着普及率的提高和配套的跟进,公网ip将不会是个问题。另一方面即使在推广v6回收v4的大背景下,若能申请公网ip其过程也并不复杂。就我在bc qq 群中的的观察来看,最近由于某些原因,大量经验不足,理论知识较差、学学习热情不高的用户开始使用bt下载,这些人通过QQ进行简单的文字指导也可以获得公网和绿灯。
    在我所浏览的大部分有关联机教程和方法的视频或文章下各种的交流还是非常多的,也包括配置相对复杂对网络要求相对高纯p2p方案。其中不乏高质量的讨论,可见玩家们的需求和研究热情较高。

综合以上这些因素,我认为公网ip并不是制约这一方案的最大问题,诚然公网ip的获取成功率并非百分之百,倘若能为切实解决部分玩家的联机问题也就有价值了...

zsygooe 发表于 2022/4/5 17:49

纯小白提问。ipv6可以解决堵塞,这样都是ipv6可以有用么?switch能走面对面

ie12 发表于 2022/4/6 12:15

zsygooe 发表于 2022/4/5 17:49
纯小白提问。ipv6可以解决堵塞,这样都是ipv6可以有用么?switch能走面对面

如果双方都有ipv6且有至少一方的端口畅通那对p2p联机体验会有巨大的改善。
我帖子中的方法主要针对pc端仅支持ipv4局域网搜索而不支持端口直连的游戏。
主机平台了解的不多,不过应该是支持ipv6且大部分游戏为p2p联机,建议开放自己的ipv6端口来提高主机平台p2p联机的成功率。

ie12 发表于 2023/1/27 19:34

SoftEther/PPTP/L2TP 教程整理

SoftEther
官网下载:https://www.softether.org/5-download
Github:https://github.com/SoftEtherVPN/SoftEtherVPN_Stable/releases

技术手册:https://www.softether.org/4-docs/1-manual

中国版手册:http://www.softether.cn/jishu/

PacketiX VPN 3.0 的错误码一览表
http://www.softether.cn/wenti/64.html


教程

隧道拆分:
------------------------------
SoftEther VPN进阶:静态路由表推送(拆分隧道)
https://mawenjian.net/p/1456.html

Guide on how to set up split tunneling
https://www.vpnusers.com/viewtopic.php?f=7&t=59975

开源软件SoftEther拆分隧道突破
https://www.cnblogs.com/vpandaxjl/p/12769082.html
------------------------------


“未在开源版本上实施”问题
------------------------------
不支持此功能。它尚未在SoftEther VPN的开源版本上实施
https://www.bilibili.com/read/cv12165573/

softether 禁用企业版功能在中国和日本使用,重编译。
https://www.cnblogs.com/ip99/p/13991232.html
------------------------------

Softether使用本地网桥
https://www.cnblogs.com/leon2659/p/9534363.html

使用SoftEther搭建 VPN Server(L2TP、OpenVPN)
http://blog.dengxj.com/archives/9/

openwrt上搭建softetherv@p@n实现远程连接局域网
https://www.right.com.cn/forum/thread-4064879-1-1.html

通过 SoftEther 连接到内网
https://www.lyndi.cn/detail/63

SoftEther安装配置教程-李老师的博客
https://www.lixh.cn/archives/2647.html

OpenWrt 18.6.3 X86下的softether服务器搭建实战图解
https://www.chiphell.com/forum.php?mod=viewthread&tid=2313612&ordertype=1&mobile=2

BPI-M1 搭建SoftEther VPN + DaloRADIUS 服务
https://amefs.net/archives/1548.html#Part2_%E5%AE%89%E8%A3%85FreeRADIUS_DaloRADIUS



游戏联机
------------------------------
局域网游戏联机原理解析_Vista、的博客
https://blog.csdn.net/qq2539879928/article/details/106501889


搭建softEther,组建虚拟局域网,和基友畅玩经典单机~ - 饭饭's Blog
https://web.archive.org/web/20220928085029/https://ffis.me/archives/1815.html?page=1
(保存于互联网档案馆)

用SoftEther + L2TP 建立虚拟局域网
https://andersonfeng.github.io/2020/05/03/SoftEtherVPN-L2TP-Local-Network/


联机无法看到房间

1.改小虚拟网卡跃点数
2.在Windows防火墙上放行icmp

使用命令添加防火墙规则(需要管理员权限)
netsh advfirewall firewall add rule name="All ICMP V4" protocol=icmpv4:any,any dir=in action=allow

文明6等游戏虚拟局域网联机搜不到房间的解决办法
https://www.bilibili.com/read/cv14633088

Windows 7及Windows 2008Server中内置防火墙的ICMP策略设定
https://blog.csdn.net/jerry_zhanghui/article/details/7371500?

N2N组建虚拟局域网联机遇到搜不到房间的问题一例(广播)
https://bugxia.com/3128.html

N2N组建虚拟局域网联机遇到搜不到房间的问题一例(网卡优先级)
https://bugxia.com/1770.html
------------------------------


PPTP/L2TP内外网VPN映射端口及协议 | LongSheng
https://longsheng.org/post/16883.html

VPN错误代码列表大全
http://www.doc88.com/p-340802487367.html


L2TP
------------------------------
L2TP VPN基本原理 | 曹世宏的博客
https://cshihong.github.io/2019/08/21/L2TP-VPN%E5%9F%BA%E6%9C%AC%E5%8E%9F%E7%90%86/

配置 IPsec/L2TP VPN 客户端(解决809错误和其他错误)
https://github.com/hwdsl2/setup-ipsec-vpn/blob/master/docs/clients-zh.md#windows-%E9%94%99%E8%AF%AF-809

788 L2TP 连接尝试失败,因为安全层不能与远程计算机协商兼容
https://zhiliao.h3c.com/questions/dispcont/40543

排查 L2TP/IPSec VPN 客户端连接问题
https://learn.microsoft.com/zh-cn/troubleshoot/windows-client/networking/l2tp-ipsec-vpn-client-connection-issue

(789)L2TP连接尝试失败:因为安全层在初始化与远程计算机的协商时遇到了一个处理错误
https://blog.csdn.net/minxihou/article/details/52074366?_t=t

734        ppp链接控制协议终止
win10及以上
打开设备管理-展开网络适配器-WAN miniport(L2TP)-卸载设备-右击网络适配器-扫描改动

win10以下
重启计算机

------------------------------


PPTP
------------------------------

PPTP服务端与客户端 修改默认PPTP默认端口1723
https://www.cnblogs.com/pangguoming/p/10323065.html

创建pptp连接文件_哔哔哔Lab的博客
https://blog.csdn.net/qq_16224495/article/details/81751310

------------------------------

ie12 发表于 2023/1/28 21:02

使用SoftEther搭建游戏联机服务器 适用于几乎所有支持局域网联机功能的游戏(服务端篇) 使用SoftEther 搭建一个虚拟局域网,加入的玩家就可以像在现实中的局域网里一样进行联机,理论上支持所有带局域网联机功能的游戏!无论是只支持IP直连或只支持房间搜索亦或是两者均支持的游戏都可使用
联机方式举例:
支持IP直连和房间搜索:minecraft异星工厂(局域网模式)
仅支持IP直连:星界边境星露谷物语(局域网模式)
仅支持房间搜索:心灵终结文明6(局域网模式)
玩家连接部分将在客户端篇讲解
需要公网IP 并建议开放以下端口
使用L2TP 连接时
UDP:500
UDP:4500
UDP:1701
注意:端口映射时应该将协议设置为UDP,否则无法生效
使用 SoftEther Client 连接时
TCP:5555
如何获取公网以及开放端口请参考网络上的其他教程


下载服务端地址https://www.softether-download.com/cn.aspx?product=softether系统和CPU按照实际情况选择这里以Windows 进行演示https://i.imgtg.com/2023/01/28/SlZrK.png
点击蓝字部分开始下载。

安装服务端
按照向导即可完成安装

https://pic.imgdb.cn/item/63d509b7face21e9ef3fc4e3.png

https://pic.imgdb.cn/item/63d509b7face21e9ef3fc52c.png

https://pic.imgdb.cn/item/63d509b7face21e9ef3fc55e.png

https://pic.imgdb.cn/item/63d509b7face21e9ef3fc590.png

https://pic.imgdb.cn/item/63d50a94face21e9ef420c18.png
这里可以更改程序安装的位置,默认安装在c盘

https://pic.imgdb.cn/item/63d50a94face21e9ef420c55.png

https://pic.imgdb.cn/item/63d50a94face21e9ef420c8f.png


点击完成将退出安装程序,并打开服务器管理器。




配置服务端

https://pic.imgdb.cn/item/63d51178face21e9ef5383a0.png
若管理工具没有自动打开请运行桌面上的快捷方式

https://pic.imgdb.cn/item/63d51203face21e9ef54f6fa.png
管理器里默认有一个本地主机,选中并点击连接,如果无法连接,则需要更换端口。选中后点击“编辑设置”,可以更改连接服务器的端口,默认使用443端口进行连接,如果该端口被占用就会发生连接不上服务器的情况。

https://pic.imgdb.cn/item/63d51303face21e9ef5755d1.png







https://pic.imgdb.cn/item/63d5134dface21e9ef581060.png


成功连接本地服务器后会弹出这样一个窗口,要求输入密码,但这是首次使用所以没有密码,直接点确认就行了。

https://pic.imgdb.cn/item/63d5137cface21e9ef588bca.png

因为是首次使用所以需要设置密码


https://pic.imgdb.cn/item/63d513b0face21e9ef591d04.png

设置完密码以后,就进入了服务器管理界面,会出现一个简易安装向导,如果没有出现请稍等一下,首次运行速度较慢。
选择第一个选项“远程访问VPN Server”,然后点击下一步。

https://pic.imgdb.cn/item/63d513d8face21e9ef598468.png



https://pic.imgdb.cn/item/63d513fcface21e9ef59de4e.png

这里可以修改名称,直接使用默认的名称即可,无需修改直接点击确认。

https://pic.imgdb.cn/item/63d51421face21e9ef5a6e51.png

设置动态DNS。在改变动态主机名下面的框中输入一个你喜欢的名字,仅限数字和英文字母,然后点击设置上述主机名。
这时程序会未响应,请耐心等待,等到程序恢复且左侧“分配的动态DNS主机名”这一项变成刚才输入的名称就可以点退出了。
这个地址十分重要,其他人连接服务器需要此地址。
如果在其他地方已设置了动态DNS可以跳过此步骤


https://pic.imgdb.cn/item/63d51458face21e9ef5aed64.png



启用l2tp勾选第一个选项并点击确认

https://pic.imgdb.cn/item/63d5150dface21e9ef5cb4cc.png

免费的中继服务 没有公网也可以使用不过服务器在日本 延迟较高
这里直接选择禁用

https://pic.imgdb.cn/item/63d51545face21e9ef5d3dc3.png

首次使用还没有用户,需要点击新建从而添加用户。

https://pic.imgdb.cn/item/63d51576face21e9ef5dc1f4.png

用户名自行决定,验证类型为密码验证,右侧输入两次密码以确认。密码不需要太复杂,重在方便记忆 完成后点击确定

https://pic.imgdb.cn/item/63d515c1face21e9ef5e9177.png

点击完确认后回到了刚才的界面,确认用户已经创建后点击关闭。


https://pic.imgdb.cn/item/63d5160bface21e9ef5f5bd0.png

创建完成后回到了安装向导,这时点击关闭退出安装向导。

https://pic.imgdb.cn/item/63d5167eface21e9ef60a1cd.png

选中创建好的虚拟HUB并点击,“管理虚拟HUB”。


https://pic.imgdb.cn/item/63d5169bface21e9ef60eb17.png

点击 虚拟NAT和虚拟DHCP服务器选项。


https://pic.imgdb.cn/item/63d516e0face21e9ef61b2b7.png

不要点击启用,需要先进行配置。


https://pic.imgdb.cn/item/63d51744face21e9ef62c99a.png

将“使用虚拟NAT功能”这一选项取消勾选,并将“应用到客户端的选项”下的全部内容清空。
还需要设置推送静态路由表,这样这样客户机就不会尝试通过服务器来访问网络。

https://pic.imgdb.cn/item/63d517fdface21e9ef64983c.png

https://pic.imgdb.cn/item/63d51828face21e9ef6511da.png

填写静态路由表

192.168.30.0/255.255.255.0/192.168.30.1

点击确定

https://pic.imgdb.cn/item/63d51869face21e9ef65cbd0.png

此时可能会提示不支持此功能

其实在开源版本上是支持的,但SoftEther在中国和日本有商业版在售所以屏蔽了部分高级功能

但可以通过修改配置文件的方式来添加路由表

回到管理器主界面
点击编辑设置

https://pic.imgdb.cn/item/63d518b5face21e9ef66a1b7.png

https://pic.imgdb.cn/item/63d518e6face21e9ef67265e.png

将现有的配置文件导出

https://pic.imgdb.cn/item/63d51928face21e9ef67c67d.png

使用记事本打开刚才保存的配置文件
编辑-查找- DhcpPushRoutes
将路由表填入


https://pic.imgdb.cn/item/63d5193fface21e9ef68318e.png

修改完后记得保存
回到管理器
编辑设置-导入文件并应用 选择刚才修改过的配置文件

https://pic.imgdb.cn/item/63d5195fface21e9ef68804a.png

https://pic.imgdb.cn/item/63d5197bface21e9ef68c5e3.png

导入配置后管理器会自动关闭
重新打开管理器 检查 路由表是否已经生效


https://pic.imgdb.cn/item/63d51828face21e9ef6511da.png

退出编辑时要点取消 不然又会弹出警告

https://pic.imgdb.cn/item/63d51a68face21e9ef6b6480.png

完成之后回到虚拟NAT和虚拟DHCP配置界面点击确认并启用。
关闭其他窗口返回管理器界面,服务端的搭建到这里就结束了。






页: [1]
查看完整版本: 关于使用SoftEther实现游戏联机 可推广性的思考