NAS搭建指南一——服务器的选择与搭建
一、服务器的选择
- 有自己的本地的公网 IP 的请跳过此篇文章
- 按需求选择一个云服务器,目的就是为了进行 frp 的搭建,完成内网穿透
- 我选择的是腾讯云服务器,我的配置如下,仅供参考:

4. 腾讯云服务器官网地址
二、服务器的一些配置
1. 使用 root 权限登录
- 根据服务器提供的方式,在网页上登录服务器,进入命令终端
- 终端输入
sudo passwd root,设置 root 密码 - 输入 root 的密码,按 Enter
- 重复输入 root 的密码,按 Enter
- 返回如下信息,即表示 root 密码设置成功
passwd: password updated successfully - 终端输入
sudo vi /etc/ssh/sshd_config,打开 sshd_config 配置文件 - 按
/切换搜索模式,输入Authentication,并按 Enter 查找下文:
# Authentication:#LoginGraceTime 2m
#PermitRootLogin prohibit-password
#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10
- 按
i切换至编辑模式,将PermitRootLogin参数修改为yes,并删除#注释符,修改后如下所示:
#LoginGraceTime 2m
PermitRootLogin yes
#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10
- 按
Esc,输入:wq,保存文件并返回 - 执行命令
sudo service ssh restart,重启 ssh 服务
2. PuTTY
- PuTTY 是一款Windows的一个免费的 SSH 和 Telnet 客户端,用于远程登录和管理远程计算机
- PuTTY 官网地址
- 下载安装过程:略
- 根据服务器提供的方式,在网页上登录服务器,进入命令终端(root账户登录)
- 服务器中生成 SSH KEY:执行命令
ssh-keygen,一路回车即可 - 生成的 SSH KEY 保存在
/root/.ssh中 - 安装 putty 工具:执行命令
apt-get install putty-tools - 将 SSH KEY 转化成 PUTTY KEY:执行命令
puttygen ~/.ssh/id_rsa -o ~/.ssh/id.ppk - 修改 authorized_keys:执行命令
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys - 执行命令
sudo service ssh restart,重启 ssh 服务 - 下载 id.ppk 到本地 Windows 电脑
- Windows 电脑上打开 PuTTY,点击 Connection --> Seconds between keepalives 填写 10
- 点击 Data --> Auto-login username 填写 root -->双击 SSH -->双击 Auth -->点击 Credentials --> private key file for authentication 选择刚刚生成的id.ppk
- 点击 Session --> Host Name 填写服务器的 IP 地址–> Port 填写 22 --> Connection type 选择 SSH -->其他配置默认即可 -->点击 Save,保存配置(下一次直接选择保存的配置,点击 load,就可以调出前面设置的所有配置)–>点击 Open -->这样就通过 SSH 连接了服务器
3. WinSCP
- WinSCP 是一个免费的开源 SFTP、SCP 和 FTP 客户端,用于在 Windows 操作系统上进行文件传输和管理
- WinSCP官网地址
- 下载安装过程:略
- Windows 电脑上打开 WinSCP,主机名填写服务器地址,用户名填写 root,密码为上面设置的 root 的密码
- 点击保存
- 点击登录,即可自由使自己的 Windows 电脑与服务器自由传输文件
4. VSCODE
- VSCODE 安装步骤:略
- 安装插件 Remote - SSH
- 点击侧边栏图标如下

- 点击侧边栏中的“+”
- 输入
ssh root@服务器地址 - 根据弹出的提示,即可连接到云服务器,在本地的电脑上,打开并方便的编辑云服务器上的文件
三、frp的搭建
1. Linux 服务器中服务端的搭建
- FRP 官网地址
- FRP 的安装及使用文档
- FRP 的 GitHub 地址
- 服务端我选择搭建在云服务器上(因为它有公网 IP)
- 在 GitHub 的下载地址中下载相应的 FTP 安装包
- 我选择的是 frp_0.51.2_linux_amd64.tar.gz 与 frp_0.51.2_windows_amd64.zip
- 将 frp_0.51.2_linux_amd64.tar.gz 解压,并通过 WinSCP 上传到服务器中
- 通过 PuTTY 登录服务器
- 将服务器中的 frp_0.51.2_linux_amd64 移动到 frp 文件夹中:执行命令
mv /root/frp_0.51.2_linux_amd64 /root/frp - 执行命令
rm -rf /root/frp/frpc*,删除客户端内容 - 执行命令
chmod u+x /root/frp/*,为 FRP 增加可执行权限 - 通过 VSCODE 编辑
/root/frp/frps.ini,内容如下:
[common]
# 常用配置
# 服务端监听地址
bind_addr = 0.0.0.0
# 服务端监听端口:接收 frpc 的连接
bind_port = 7000
# 日志文件地址 & 日志等级 & 日志文件保留天数
log_file = ./frps.log
log_level = info
log_max_days = 7
# 服务端和客户端心跳连接的超时时间
heartbeat_timeout = 90
# 鉴权方式
authentication_method = token
# 鉴权使用的 token 值
token = 123456789
# 最大连接池大小
max_pool_count = 5
# 启用 Dashboard 监听的本地地址
dashboard_addr = 0.0.0.0
# 启用 Dashboard 监听的本地端口
dashboard_port = 7500
# HTTP BasicAuth 用户名
dashboard_user = root
# HTTP BasicAuth 密码
dashboard_pwd = 123456# 基础配置
# 服务端监听 KCP 协议端口
kcp_bind_port = 0
# 服务端监听 QUIC 协议端口
quic_bind_port = 0
# quic 协议 keepalive 间隔,单位: 秒
quic_keepalive_period = 10
# quic 协议的最大空闲超时时间,单位: 秒
quic_max_idle_timeout = 30
# quic 协议最大并发 stream 数
quic_max_incoming_streams = 100000
# 代理监听地址
# proxy_bind_addr = 0.0.0.0
# 禁用标准输出中的日志颜色
disable_log_color = false
# 服务端返回详细错误信息给客户端
detailed_errors_to_client = true
# tcp_mux 的心跳检查间隔时间
tcp_mux_keepalive_interval = 60
# 和客户端底层 TCP 连接的 keepalive 间隔时间,单位秒
tcp_keepalive = 7200
# 用户建立连接后等待客户端响应的超时时间
user_conn_timeout = 10
# 代理 UDP 服务时支持的最大包长度
udp_packet_size = 1500
# TLS 服务端证书文件路径
# tls_cert_file =
# TLS 服务端密钥文件路径
# tls_key_file =
# TLS CA 证书路径
# tls_trusted_ca_file =
# 打洞策略数据的保留时间
nat_hole_analysis_data_reserve_hours = 168# 权限验证
# 开启心跳消息鉴权
authenticate_heartbeats = false
# 开启建立工作连接的鉴权
authenticate_new_work_conns = false# 管理配置
# 允许代理绑定的服务端端口
# allow_ports = 1000-2000,2001,3000-4000
# 限制单个客户端最大同时存在的代理数 0 表示没有限制
max_ports_per_client = 0
# 只接受启用了 TLS 的客户端连接
tls_only = false# Dashboard, 监控
# 是否启用 TLS 模式
dashboard_tls_mode = false
# TLS 证书文件路径
# dashboard_tls_cert_file =
# TLS 密钥文件路径
# dashboard_tls_key_file =
# 是否提供 Prometheus 监控接口 需要同时启用了 Dashboard 才会生效
enable_prometheus = false
# 静态资源目录 Dashboard 使用的资源默认打包在二进制文件中,通过指定此参数使用自定义的静态资源
# asserts_dir =
# 启动 Go HTTP pprof 用于应用调试
pprof_enable = false# HTTP & HTTPS
# 为 HTTP 类型代理监听的端口 启用后才支持 HTTP 类型的代理,默认不启用
vhost_http_port = 0
# 为 HTTPS 类型代理监听的端口 启用后才支持 HTTPS 类型的代理,默认不启用
vhost_https_port = 0
# HTTP 类型代理在服务端的 ResponseHeader 超时时间
vhost_http_timeout = 60
# 二级域名后缀
# subdomain_host =
# 自定义 404 错误页面地址
# custom_404_page = # TCPMUX
# 为 TCPMUX 类型代理监听的端口 启用后才支持 TCPMUX 类型的代理,默认不启用
tcpmux_httpconnect_port = 0
# 是否透传 CONNECT 请求 通常在本地服务是 HTTP Proxy 时使用
tcpmux_passthrough = false
-
执行命令
./frps -c ./frps.ini,启动 FRP 服务端 -
登录腾讯云服务器官网–>点击控制台–>点击我的资源中的云服务器–>进入已有实例
-
点击安全组–>点击出站规则–>点击编辑规则
-
点击入站规则–>点击添加规则
-
类型选择自定义–>目标
0.0.0.0/0-->协议端口填写TCP:7000,7500–>策略选择允许–>备注填写FRP–>点击确定完成 FRP 监控面板端口开放,配置如下所示

-
打开
服务器地址:7500,内容如下所示,FRP 服务端配置成功

2. 服务端的 FRP 开机自启动
- 通过 VSCODE 创建
/etc/systemd/system/frps.service,内容如下:
[Unit]
# 服务名称
Description = frp_server
After = network.target syslog.target
Wants = network.target[Service]
Type = simple
# 启动frps的命令
ExecStart = /root/frp/frps -c /root/frp/frps.ini[Install]
WantedBy = multi-user.target
- 使用 systemd 命令,管理 frps,具体命令如下:
# 启动frp
systemctl start frps
# 停止frp
systemctl stop frps
# 重启frp
systemctl restart frps
# 查看frp状态
systemctl status frps
- 配置 frps 开机自启,具体命令如下:
systemctl enable frps
3. Windows 电脑中客户端的搭建
- 解压 Windows 版本 FRP 安装包 frp_0.51.2_windows_amd64.zip
- 我将所有解压得到的内容移动到目录
D:\FRP中 - 打开 CMD
- 输入以下命令,删除服务端内容:
cd D:\FRP
rm frps*
- 通过 VSCODE,编辑
D:\FRP\frpc.ini,内容如下:
[common]
# 常用配置
# 服务器 IP 地址
server_addr = xxx.xxx.xxx.xxx
# 连接服务端的端口
server_port = 7000
# 日志文件地址 & 日志等级 & 日志文件保留天数
log_file = ./frpc.log
log_level = info
log_max_days = 7
# tcp_mux 的心跳检查间隔时间,单位:秒
tcp_mux_keepalive_interval = 60
# 向服务端发送心跳包的间隔时间 建议启用 tcp_mux_keepalive_interval,将此值设置为 -1
heartbeat_interval = -1
# 和服务端心跳的超时时间
heartbeat_timeout = 90
# 鉴权方式 需要和服务端一致
authentication_method = token
# 鉴权使用的 token 值 需要和服务端设置一样的值才能鉴权通过
token = 123456789
# 启用 AdminUI 监听的本地地址
admin_addr = 0.0.0.0
# 启用 AdminUI 监听的本地端口
admin_port = 7500
# HTTP BasicAuth 用户名
admin_user = root
# HTTP BasicAuth 密码
admin_pwd = 123456# 基础配置
# xtcp 打洞所需的 stun 服务器地址 stun.easyvoip.com:3478
# nat_hole_stun_server =
# 连接服务端时所绑定的本地 IP
# connect_server_local_ip =
# 连接服务端的超时时间
dial_server_timeout = 10
# 和服务端底层 TCP 连接的 keepalive 间隔时间,单位秒 负数不启用
dial_server_keepalive = 7200
# 连接服务端使用的代理地址 格式为 {protocol}://user:passwd@192.168.1.128:8080 protocol 目前支持 http、socks5、ntlm
# http_proxy =
# 禁用标准输出中的日志颜色
disable_log_color = false
# 连接池大小
pool_count = 0
# 用户名 设置此参数后,代理名称会被修改为 {user}.{proxyName},避免代理名称和其他用户冲突
# user = Vaciller
# 使用 DNS 服务器地址 默认使用系统配置的 DNS 服务器,指定此参数可以强制替换为自定义的 DNS 服务器地址
# dns_server =
# 第一次登陆失败后是否退出
login_fail_exit = true
# 连接服务端的通信协议
protocol = tcp
# 协议 keepalive 间隔,单位: 秒
quic_keepalive_period = 10
# quic 协议的最大空闲超时时间,单位: 秒
quic_max_idle_timeout = 30
# quic 协议最大并发 stream 数
quic_max_incoming_streams = 100000
# 启用 TLS 协议加密连接
tls_enable = tool
# TLS 客户端证书文件路径
# tls_cert_file =
# TLS 客户端密钥文件路径
# tls_key_file =
# TLS CA 证书路径
# tls_trusted_ca_file =
# TLS Server 名称 为空则使用 server_addr
# tls_server_name =
# TLS 不发送 0x17 当为 true 时,不能端口复用
disable_custom_tls_first_byte = true
# 服务时支持的最大包长度 服务端和客户端的值需要一致
udp_packet_size = 1500
# 指定启用部分代理 当配置了较多代理,但是只希望启用其中部分时可以通过此参数指定,默认为全部启用
# start =
# 附加元数据 会传递给服务端插件,提供附加能力
# meta_xxx = # 权限验证
# 开启心跳消息鉴权 需要和服务端一致
authenticate_heartbeats = false
# 开启建立工作连接的鉴权 需要和服务端一致
authenticate_new_work_conns = false# UI
# 静态资源目录 AdminUI 使用的资源默认打包在二进制文件中,通过指定此参数使用自定义的静态资源
# asserts_dir =
# 启动 Go HTTP pprof 用于应用调试
pprof_enable = false
- 在 CMD 中执行命令
./frpc -c ./frpc.ini,启动客户端 - 打开
Windows IP:7500/,内容如下所示,FRP 客户端配置成功

- 具体需要详细进行内网穿透的内容与配置,会在后文中进行详细说明
4. 客户端的 FRP 开机自启动
- 通过 VSCODE,编辑
D:\FRP\frp.bat,内容如下:
@echo off
setlocalset appName=D:\FRP\frpc.exeecho "Start %appName% ..."
D:\FRP\frpc.exe -c D:\FRP\frpc.iniendlocal
Pause
exit
- 按
win+r,输入gpedit.msc,打开本地组策略编辑器 - 选择用户配置–>双击 Windows 设置–>选择脚本(登录/注销)–>双击登录–>选择添加–>选择浏览–>找到刚刚编辑的 frp.bat -->选择打开–>选择确定–>选择确定
- 此时重启 Windows 电脑,FRP 客户端即可开机自启
相关文章:
NAS搭建指南一——服务器的选择与搭建
一、服务器的选择 有自己的本地的公网 IP 的请跳过此篇文章按需求选择一个云服务器,目的就是为了进行 frp 的搭建,完成内网穿透我选择的是腾讯云服务器,我的配置如下,仅供参考: 4. 腾讯云服务器官网地址 二、服务器…...
豪越HYDO智能运维助力智慧医院信息化建设
随着国家政策的推动与支持,医疗行业信息化应用不断普及,大数据、AI、医疗物联网等技术的应用,快速推动了电子病历、智慧服务、智慧管理的智慧医院建设和医院信息标准化建设,通过不断探索创新“智慧医院”服务模式,实现…...
Week1题目重刷
今天把week1的题目都重新刷了一遍,明天开始week2的内容~ 704.二分查找 class Solution {public int search(int[] nums, int target) {int l 0, r nums.length - 1, m;while (l < r) {m (l r) >>> 1;if (nums[m] < target) {l m 1;} else if…...
考研数据结构:第七章 查找
文章目录 一、查找的基本概念二、顺序查找和折半查找2.1顺序查找2.3折半查找2.3.1算法思想2.3.2代码实现2.3.3查找效率分析2.3.4折半查找判定树的构造2.3.5折半查找效率2.3.6小结 2.4分块查找 三、树形查找3.1二叉排序树3.1.1二叉排序树定义3.1.2查找操作3.1.3插入操作3.1.4二叉…...
【Linux进程篇】环境变量
【Linux进程篇】环境变量 目录 【Linux进程篇】环境变量基本概念常见环境变量查看环境变量方法测试PATH测试HOME测试SHELL和环境变量相关的命令环境变量的组织方式通过代码如何获取环境变量命令行参数命令行第三个参数通过第三方变量environ获取 本地变量通过系统调用获取或设置…...
【软件测试】Linux环境下Docker搭建+Docker搭建MySQL服务(详细)
目录:导读 前言 一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 Linux之docker搭…...
去了字节跳动,才知道年薪40W的测试有这么多?
今年大环境不好,内卷的厉害,薪资待遇好的工作机会更是难得。最近脉脉职言区有一条讨论火了: 哪家互联网公司薪资最‘厉害’? 下面的评论多为字节跳动,还炸出了很多年薪40W的测试工程师 我只想问一句,现在的…...
linux0.95(VFS重点)源码通俗解读(施工中)
文件系统在磁盘中的体现 下面是磁盘的内容,其中i节点就是一个inode数组,逻辑块就是数据块可用于存放数据 操作系统通过将磁盘数据读入到内存中指定的缓冲区块来与磁盘交互,对内存中的缓冲区块修改后写回磁盘。 进程(task_struct * task[N…...
mac ssh连接另一台window虚拟机vm
vmware配置端口映射 编辑(E) > 虚拟网络编辑器(N)... > NAT设置(S)... window防火墙,入站规则添加5555端口 控制面板 > 系统和安全 > Windows 防火墙>高级设置>入站规则>新建规则... tips windows查看端口命令:netstat -ano | f…...
使用Python解析通达信本地lday数据结构
通达信软件中的vipdoc是一个存储股票行情数据的文件夹。在通达信软件的安装目录下,可以找到一个名为vipdoc的文件夹,里面存放着各个股票的分时、日线、周线、月线等行情数据文件。这些数据文件可以用于自定义分析和回测股票的走势和交易策略,…...
【Mysql】修改definer
修改definer 本文介绍如何修改MySQL中的function、procedure、event、view和trigger的definer 修改function、procedure的definer 首先,我们需要登录MySQL命令行界面,然后执行以下命令: select definer from mysql.proc;这个命令会列出所…...
图片预览插件vue-photo-preview的使用
移动端项目中需要图片预览的功能,但本身使用mintui,vantui中虽然也有,但是为了一个组件安装这个有点儿多余,就选用了vue-photo-preview插件实现(其实偷懒也不想自己写)。 1、安装 npm i vue-photo-preview…...
最强自动化测试框架Playwright(20)- iframe
一个页面可以附加一个或多个 Frame 对象。每个页面都有一个主框架,并且假定页面级交互(如)在主框架中运行。click frame_locator 使用 iframe 时,可以创建一个框架定位器,该定位器将进入 iframe 并允许选择该 iframe…...
leetcode 516. 最长回文子序列(JAVA)题解
题目链接https://leetcode.cn/problems/longest-palindromic-subsequence/description/?utm_sourceLCUS&utm_mediumip_redirect&utm_campaigntransfer2china 目录 题目描述: 暴力递归: 动态规划: 题目描述: 给你一个…...
在Java中操作Redis(详细-->从环境配置到代码实现)
在Java中操作Redis 文章目录 在Java中操作Redis1、介绍2、Jedis3、Spring Data Redis3.1、对String的操作3.2、对哈希类型数据的操作3.3、对list的操作3.4、对set类型的操作3.5、对 ZSet类型的数据(有序集合)3.6、通用类型的操作 1、介绍 Redis 的Java客…...
分布式作业调度框架——ElasticJob
1、简介 ElasticJob 是面向互联网生态和海量任务的分布式调度解决方案,由两个相互独立的子项目 ElasticJob-Lite 和 ElasticJob-Cloud 组成。 它通过弹性调度、资源管控、以及作业治理的功能,打造一个适用于互联网场景的分布式调度解决方案,…...
react如何实现数据渲染
React数据渲染是指将组件中的数据映射到页面上,以展示出来。在React中,数据渲染通常是通过JSX和组件的state或props完成的。 JSX是一个类似HTML的语法,可以在其中嵌入JavaScript表达式。在JSX中,可以使用{}包裹JavaScript表达式&…...
在Java中如何使用List集合实现分页,以及模糊查询后分页
物理分页工具类 package com.yutu.garden.utils;import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors;/*** ClassName: PageUtils* Description: 物理分页* Author* Date …...
【JAVA】包装类、正则表达式、Arrays类、Lambda表达式
1 包装类 包装类是8种基本数据类型对应的引用类型 作用:后期的集合和泛型不支持基本类型,只能使用包装类 基本数据类型和其对应的引用数据类型的变量可以互相赋值 基本数据类型引用数据类型 byte Byte short Short int Integer long Long ch…...
Java中的Maven Assembly插件是什么?
Maven Assembly插件是Maven中的一个插件,用于创建自定义的构建过程。它允许你在构建过程中执行一些自定义的操作,例如打包、编译、复制文件等。对于新手来说,Maven Assembly插件可能有点复杂,但是我们可以使用一些幽默的方式来解释…...
营销自动化数据驱动 - 多源数据 OLAP 架构演进们
1. 流图:数据的河流 如果把传统的堆叠面积图想象成一块块整齐堆叠的积木,那么流图就像一条蜿蜒流淌的河流,河道的宽窄变化自然流畅,波峰波谷过渡平滑。 它特别适合展示多个类别数据随时间的变化趋势,尤其是当你想强调整…...
30分钟掌握OpenClaw:千问3.5-9B新手训练营
30分钟掌握OpenClaw:千问3.5-9B新手训练营 1. 为什么选择OpenClaw千问3.5-9B组合 去年我在尝试自动化处理日常工作报告时,发现市面上的RPA工具要么太笨重,要么需要复杂的编程知识。直到遇到OpenClaw这个开源框架,配合千问3.5-9B…...
PP-DocLayoutV3商业应用:银行票据+政务公文+出版古籍三场景落地案例
PP-DocLayoutV3商业应用:银行票据政务公文出版古籍三场景落地案例 1. 新一代文档布局分析引擎的价值 在日常工作中,我们经常遇到各种文档处理难题:银行票据信息提取繁琐、政务公文格式复杂难解析、古籍文献数字化效率低下。传统OCR技术只能…...
盲人辅助工具:OpenClaw+Gemma-3-12b-it的屏幕阅读增强方案
盲人辅助工具:OpenClawGemma-3-12b-it的屏幕阅读增强方案 1. 为什么需要这个方案 作为一个长期关注无障碍技术的开发者,我一直在寻找能够真正帮助视障用户的技术方案。传统的屏幕阅读器虽然成熟,但存在几个明显的痛点: 机械化的…...
超级个体时代:一人公司+AI Agent军团
超级个体时代:一人公司+AI Agent军团 1. 引入与连接:当一个人成为一支军队 1.1 开场故事:未来已来,只是分布不均 2023年的一个平凡早晨,32岁的独立开发者李明醒来,像往常一样打开了他的"指挥中心"——一个由多个显示屏组成的工作台。但与大多数上班族不同,李…...
F-Theta扫描透镜的性能评估
摘要F-Theta透镜通常用于基于扫描式的激光材料加工系统。使用这种透镜,聚焦光斑沿目标平面的位移与透镜焦距和扫描角度的乘积成正比。然而,不存在完美的F-Theta系统,因此在任何给定的系统中,偏离理想行为的偏差都是可以预期的。借…...
FastAPI子应用挂载:别再让root_path坑你一夜卤
Julia(julialang.org)由Stefan Karpinski、Jeff Bezanson等在2009年创建,目标是融合Python的易用性、C的高性能、R的统计能力、Matlab的科学计算生态。 其核心设计哲学是: 高性能:编译型语言(JIT…...
Nunchaku-flux-1-dev企业实操:电商团队批量生成商品场景图
Nunchaku-flux-1-dev企业实操:电商团队批量生成商品场景图 1. 引言:电商团队的素材困境与AI解法 如果你在电商团队工作,下面这个场景你一定不陌生: 周一早上,运营同事拿着新一季的50款商品清单来找你:“…...
小而强,Meta推出超级智能实验室首款AI模型Muse Spark
文章目录前言二、啥是Muse Spark?说白了就是个"会思考的小机灵鬼"三、"小而强"到底是啥意思?四、不止会聊天,还会"看图说话"五、专门请了1000个医生来"教"它六、从"开源先锋"到"闭源…...
API 类别 - UI 核心
API 类别 - UI 核心 引言 在数字化时代,用户界面(UI)设计在软件和网站开发中扮演着至关重要的角色。一个直观、易用的UI设计能够显著提升用户体验,进而提高产品的市场竞争力。API类别中的UI核心,作为连接前后端的关键桥梁,承载着实现UI功能与交互的重任。本文将深入探讨…...
