功能介绍
一个低配置要求的简易高效联机方案。如果你既不想选择开设服务器,也不想使用配置繁琐且服务质量良莠不齐的内网穿透服务,且手头刚好有一台性能平庸但带宽不差的云服务器,则此模组可堪一用。
用法
本模组及附属的中转节点端尽量设计为简单易用的傻瓜式操作:
打开 BetterLAN-Server 仓库主页,找到符合服务器操作系统的一键脚本,按照说明运行;
在客户端下载 BetterLAN,并进入游戏;
打开主界面的 BetterLAN 按钮进入配置菜单,设置服务器的 IP 与端口,玩家之间组名与密码设置为相同;
一人进入世界并开放局域网,其他人在进入多人游戏界面或在其中点击刷新时会在服务器列表自动添加可用房间;
当玩家试图连接一个 BetterLAN 提供的服务器时,连接将被暂时挂起,双方比对指纹并由房主决定是否建立连接。


其他(关于安全性)
BetterLAN 将玩家的数据隐私放在了首位实则第一版根本没做安全而被cf打飞了。本模组采用了端到端加密(E2EE)架构和一些其他的措施,保证了中转节点绝对无法窃听或篡改玩家的通讯数据。
零信任架构
本模组对中转节点采取“零信任”原则。当玩家试图加入服务器,房主与加入者的客户端会在后台进行一次 ECDH(椭圆曲线密钥交换),在两台电脑之间协商出有唯一性的 AES 会话密钥。中转节点的作用仅仅是转发加密后的数据包。
MITM 指纹验证
为了防止可能发生的“中间人攻击(MITM)”,本模组采用安全连接指纹机制。
安全边界
玩家连接到中转节点时,节点服务端仍能获取到玩家的公网 IP 地址(在任何在线服务中,这点一般都难以避免),有可能导致隐私追踪等问题;
当前加密模式 AES / CTR / NoPadding 无法防范比特翻转攻击,一般情况下这种攻击没有理由也没有意义,但攻击一旦发生,可能发生连接断开甚至游戏内不可预知的异常。如果需要投入生产环境,你仍可能需要前往 GitHub 仓库 对 AesStreamCodec.java 做改动,如将加密方式修改为 AES / GCM / NoPadding。