如何将本地 LoCyanPureFrp 导入到 NyaLCF 中

YanMo Lv4

目前最新发布的版本已经上传至 GitHub Releases,本篇文章已经寿终正寝(?)

死亡回放(?)

因为腾讯云的神仙操作,导致 locyan.cn 和 locyanfrp.cn 的 ICP 备案被取消。

目前在备案当中,现 @ 与 www 解析现已被暂停,导致鉴权不通过。

如何操作

右键计算机–属性–高级系统设置–环境变量

在弹出的新窗口中,点击 新建

变量名:NYA_LCF_FRPC_PATH

变量值为你下载的文件,一般像是这样的路径:

1
C:\Users\Konna\frp\frpc.exe

Linux/MacOS 在终端中输入:

1
export NYA_LCF_FRPC_PATH = "/usr/bin/frpc/frpc"

一键配置

Windows x64 版本:

https://api.ymbit.cn/public/files/autosetpath_windowsx64.exe

若运行失败请尝试使用管理员运行

Linux:

https://api.ymbit.cn/public/files/autosetpath.py

使用python3 autosetpath.py运行程序。若无法运行,请先运行以下命令

1
pip3 install tqdm aiohttp aiofiles

Windows源码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
from tqdm import tqdm

import io
import aiofiles
import zipfile
import aiohttp
import asyncio
import shutil
import os
import sys
import time


async def download_file(url, file_name):
"""
异步下载文件到指定路径。

:param url: 文件的URL地址
:param file_name: 保存文件的本地路径及名称
"""
async with aiohttp.ClientSession() as session:
async with session.get(url) as response:
if response.status == 200:
# 获取文件总大小
total_size = int(response.headers.get("content-length", 0))
# 初始化tqdm进度条,total为文件总大小
with tqdm(
total=total_size, unit="B", unit_scale=True, desc=file_name
) as pbar:
# 使用异步写入方式将文件内容写入本地
with open(file_name, "wb") as f:
downloaded = 0
while True:
chunk = await response.content.read(1024) # 每次读取1KB数据
if not chunk:
break
f.write(chunk)
downloaded += len(chunk) # 累加已下载字节数
pbar.update(len(chunk))
print(f"文件 {file_name} 下载完成。")


async def main():
url = "https://api.ymbit.cn/public/files/locyanfrp/frp_LoCyanFrp-0.51.3_windows_amd64.zip"
file_name = "frp_LoCyanFrp-0.51.3_windows_amd64.zip"
await download_file(url, file_name)
await unzip_file(file_name)


async def unzip_file(file_name):
async with aiofiles.open(file_name, "rb") as f:
zip_data = await f.read()
zip_ref = zipfile.ZipFile(io.BytesIO(zip_data), "r")
for name in zip_ref.namelist():
zip_ref.extract(name)
zip_ref.close() # 关闭 zip 文件对象


if __name__ == "__main__":
asyncio.run(main())


def set_path():
src_file = ".\\frp_LoCyanFrp-0.51.3_windows_amd64\\frpc.exe"
path_set = os.system(f'set NYA_LCF_FRPC_PATH = "{src_file}"')
if path_set == 0:
print("环境变量 NYA_LCF_FRPC_PATH 设置成功")
else:
print("环境变量 NYA_LCF_FRPC_PATH 设置失败,使用文件移动方式更换版本,确认你的先前版本为 v0.51.3")
time.sleep(3)

def move_file(src_path, dst_path):
try:
shutil.move(src_path, dst_path)
print(f"文件 {src_path} 成功移动到 {dst_path}")
sys.exit(1)
except shutil.Error as e:
print(f"移动文件时出错: {str(e)}")
sys.exit(1)
except FileNotFoundError as fnf_error:
print(f"源文件 {src_path} 未找到: {str(fnf_error)}")
sys.exit(1)
except PermissionError as perm_error:
print(f"无权限移动文件: {str(perm_error)}")
sys.exit(1)
except Exception as generic_error:
print(f"其他错误: {str(generic_error)}")
sys.exit(1)

src_file = ".\\frp_LoCyanFrp-0.51.3_windows_amd64\\frpc.exe"
dst_dir = "%appdata%\\moe.xmcn.nyanana\\nyanana\\frpc\\0.51.3-2"
dst_file = dst_dir + "frpc.exe" # 目标文件路径 ,假设目标目录已存在

# 确保目标目录存在
os.makedirs(dst_dir, exist_ok=True)
move_file(src_file, dst_file)

  • 标题: 如何将本地 LoCyanPureFrp 导入到 NyaLCF 中
  • 作者: YanMo
  • 创建于 : 2024-05-02 10:40:34
  • 更新于 : 2024-12-10 15:38:35
  • 链接: https://blog.ymbit.cn/archives/purefrp-import-to-nyalcf/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
 评论
此页目录
如何将本地 LoCyanPureFrp 导入到 NyaLCF 中