Parsec + zerotier + moon 配置内网穿透+远程操作(延迟在20ms左右,真正实现远程游戏无延迟)

Parsec + zerotier + moon 配置内网穿透+远程操作(延迟在20ms左右,真正实现远程游戏无延迟)

【1】安装Parsec,注册账号,主客端登录同一账号。

官网下载链接: https://parsec.app/

在这里插入图片描述

  1. Settings —— NetWork——UPnP打开
  2. Settings —— Host—— BandWidth Limit——50Mbps

【2】配置zerotier

  1. 官网链接: https://www.zerotier.com/,需要下载客户端

  2. 创建network,将设备加入到虚拟局域网。click the button,将会得到一个Network ID
    在这里插入图片描述

  3. cmd or powershell,执行指令,所有客户端申请加入到该网络组中,window可在客户端登录账号加入。

zerotier-cli join <Network ID>

之后将加入到这个网络组,会出现相应的一栏ip号,将左边复选框勾上,加入到你的网络组中。
在这里插入图片描述

  1. 所有客户端都需要执行上述操作,即下载Parsec和配置zerotier。
  2. 原理其实是在本地加了一个虚拟网关。构建局域网。(有兴趣可google)

【3】KeyPoint,配置moon服务器

  1. 云服务器安装zerotier
curl -s https://install.zerotier.com/ | sudo bash
  1. 加入到同一个网络
zerotier-cli join <Network ID>
  1. 前往安装目录(Linux下)
cd  /var/lib/zerotier-one
  1. 执行,生成moon.json文件
zerotier-idtool initmoon identity.public > moon.json
  1. 修改moon.json文件
vi moon.json

字段中修改:“stableEndpoints”: [“服务器的ip/9993”]
  1. 生成签名文件,这一步之后会生成一个000000xxxxxxxxx.moon的文件,同时把这个文件下载到本地,之后要用
zerotier-idtool genmoon moon.json
  1. 将这个文件移动至moons.d文件夹,注意把文件名替换成你自己的
mkdir moons.d
mv 000000xxxxxxxxx.moon moons.d
service zerotier-one restart  # 之后重启服务器端B的Zerotier
  1. 服务器官网,打开安全组,开放9993端口,采用UDP协议
  2. 从服务器下载到所有本地客户端,scp命令
scp usrname@ServerIP:sourcePath desPath   
  1. 客户端前往zerotier安装目录,window一般在 C:\ProgramData\ZeroTier\One注意是隐藏文件夹!!!,找半天没找到,晕。

  2. one目录下创建moons.d文件夹,将服务器下载下来的文件00000xxxx.moon拷贝进去。

  3. 重启windows服务

搜索服务
在服务中找到Zerotier One 右键重新启动

在这里插入图片描述

  1. 检测是否配置成功,等等几分钟执行。
zerotier-cli listpeers

在这里插入图片描述

后面会有一个MOON标志,中间是你的服务器IP端口,如果是-1就是有问题

【4】结果,延迟很低

在这里插入图片描述

  • Parsec显示延迟
    在这里插入图片描述
03-09
### Parsec 技术概述 Parsec 是一种功能强大且灵活的解析器组合子库,最初源自 Haskell 社区,在 Python 中也有相应的实现——即 `parsec.py`[^3]。该库允许开发人员以声明式的方式编写复杂的解析逻辑。 #### 主要编程语言特性 Parsec 的核心优势在于其能够简化复杂文本结构的解析过程。具体来说: - **函数式风格**:采用高阶函数和惰性求值机制来构建解析表达式。 - **错误恢复能力**:内置良好的错误处理机制,可以清晰地标记并报告解析失败的位置及其原因。 - **可扩展性强**:用户可以根据需求轻松添加新的解析规则或修改现有行为而不影响整体架构稳定性。 #### 应用场景 由于上述特点,Parsec 非常适合应用于各种涉及数据转换的任务中,比如但不限于以下几个方面: - 解析配置文件(如 JSON, XML) - 处理日志记录中的非标准格式 - 实现领域专用语言(DSLs)编译器或者解释器 - 对自然语言进行初步语义理解预处理工作 #### 示例代码展示 下面是一个简单的例子,展示了如何利用 `parsec.py` 来创建一个基本的算术表达式的解析器: ```python from parsec import string, regex, many, generate @generate def expr(): term = yield atom | parens(expr) rest = yield many(opr() ^ term) return eval(' '.join([str(term)] + [f"{op} {arg}" for op, arg in rest])) def opr(): return (string('+') | string('-')).map(lambda s: 'add' if s == '+' else 'sub') def atom(): return regex(r'\d+') def parens(p): return string('(').then(p).skip(string(')')) print(expr.parse("((1+2)*3)-4")) # 输出结果为5 ``` 此段脚本定义了一个小型计算器,它可以识别括号内的加减运算,并按照正确的优先级顺序计算最终数值。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值