frp (Fast Reverse Proxy) Setup Guide

写在前面 我了解到FRP是因为我自己整了一个NAS,用这个NAS来同步公司电脑的文件到家里的NAS,这样在家里的电脑上访问公司文件就可以非常方便,在PDD总共花了不到1K。但是飞牛NAS官方免费提供的带宽只有3M,这个带宽对于同步一些文本文件还是足够的,当然飞牛官方也是可以购买更大的带宽的。我自己就喜欢DIY的,所以想怎么可以通过别的办法得到更大的带宽,然后在网上找了非常多的方法。了解到FRP这个内网穿透工具,将家里NAS的服务端口暴露到公网中去,需要一台有固定公网IP的服务器,刚好阿里云有针对学生的300元优惠券,我用这个优惠券买了一台服务器,这台服务器的系统我选择了Ubuntu24,带宽是共享200M,对我来说足够了。在服务器部署frps服务端,到飞牛NAS上部署一个frpc客户端,这样在公司的电脑上安装飞牛的官方同步软件可以将我指定的文件目录同步至我家的NAS中,在家里同一个局域网访问NAS中的文件非常快。当然这个FRP不仅仅用于NAS上,我自己使用到的场景还有远程控制,Windows自带的远程控制在局域网下非常好用,把这个远程控制的端口3389暴露到公网上我在家也可以远程控制公司的电脑了,延迟也不是很大,非常方便。 一、在服务器上安装frps服务端 1. 下载并安装 frps sudo apt update sudo apt install -y wget tar 下载 FRP: cd /tmp wget https://github.com/fatedier/frp/releases/download/v0.70.0/frp_0.70.0_linux_amd64.tar.gz 解压: tar -xzf frp_0.70.0_linux_amd64.tar.gz cd frp_0.70.0_linux_amd64 ARM64 服务器需要将下载文件名中的 linux_amd64 改成 linux_arm64。官方同时提供 AMD64 和 ARM64 的 Linux 安装包,此外也有windows_amd64版本的,可以在官方github仓库查看。 2. 创建配置目录 sudo mkdir -p /etc/frp 创建配置文件: sudo nano /etc/frp/frps.toml 写入 # ============================================================ # FRP 服务端配置 # ============================================================ # frpc连接frps的端口 bindPort = 7000 # ============================================================ # Token认证 # ============================================================ # 使用Token认证 auth.method = "token" # frpc客户端必须填写完全相同的Token,设置一个复杂点的 auth.token = "helloworld@1234" # ============================================================ # Dashboard管理页面 # ============================================================ # 监听所有网络接口,允许通过公网IP访问 webServer.addr = "0.0.0.0" # Dashboard访问端口 webServer.port = 7500 # Dashboard登录用户名 webServer.user = "frpadmin" # Dashboard登录密码 # 请务必修改成复杂密码 webServer.password = "frpadmin@Pwd" 保存并退出。 ...

July 15, 2026 · 2 min · Your Name

使用Logadd2在codesys中打印日志

如何在codesys中记录日志 前提:确保在Library Manager中已经添加了CmpLog和Component Manager这两个系统库。 在 CODESYS 中,你需要先创建一个功能块(Function Block),然后再在这个功能块下右键添加对应的方法(Method)。 一、为了可以在主程序中可以调用,不必每次写完整的方法,我将完整的 FB_SystemLogger 拆分为主功能块和方法两部分。 1. 主功能块:FB_SystemLogger 在工程左侧的 POUs 树中,右键添加一个 POU,类型选择 Function Block,语言选择 ST,命名为 FB_SystemLogger。 变量声明区 (Declaration) FUNCTION_BLOCK FB_SystemLogger VAR_INPUT // 允许外部传入自定义的组件名称,默认值为 'DefaultApp' sComponentName : STRING(80) := 'DefaultApp'; END_VAR VAR udiCmpId : UDINT; bInit : BOOL := FALSE; END_VAR 代码实现区 (Implementation) 这里负责在功能块第一次被调用时,向系统注册组件名称并获取 ID。 // 初始化:注册自定义组件名称(每个实例只执行一次) IF NOT bInit THEN Component_Manager.CMAddComponent2(sComponentName, 16#00000001, ADR(udiCmpId), 0); bInit := TRUE; END_IF 2.方法一:LogInfo (记录常规信息) 右键点击你刚建好的 FB_SystemLogger,选择 Add Object -> Method,命名为 LogInfo,返回类型写 BOOL。 ...

July 10, 2026 · 2 min · Your Name

FRP内网穿透

FRP——fast reverse proxy

July 5, 2026 · 1 min · Your Name

Hello World - 我的第一篇博客

欢迎来到我的博客! 这是使用 Hugo 和 PaperMod 主题搭建的第一篇文章。 关于这个博客 这个博客将用于记录: 技术学习笔记 项目经验分享 日常思考与感悟 Hugo 是什么 Hugo 是一个用 Go 语言编写的静态网站生成器,以速度快著称。 PaperMod 主题 PaperMod 是一个简洁、响应式的 Hugo 主题,具有以下特点: 简洁的界面设计 暗色/亮色模式自动切换 优秀的阅读体验 快速加载 感谢所有为开源项目做出贡献的人们!

July 5, 2026 · 1 min · Your Name