代理与穿透

穿透技术 FRP用户手册 https://gofrp.org/zh-cn/docs/ FRP服务端 # 该配置文件仅供参考,请勿直接使用运行程序,可能会存在各种问题。 # 对于 IPv6 地址或主机名,必须使用方括号括起来,例如 "[::1]:80"、"[ipv6-host]:http" 或 "[ipv6-host%zone]:80" # 对于单个 "bindAddr" 字段,不需要使用方括号,例如 bindAddr = "::"。 bindAddr = "0.0.0.0" bindPort = 7000 # UDP 端口,用于 KCP 协议。可以与 'bindPort' 相同。 # 如果未设置,则 frps 中禁用 KCP。 kcpBindPort = 7000 # UDP 端口,用于 QUIC 协议。 # 如果未设置,则 frps 中禁用 QUIC。 # quicBindPort = 7002 # 指定代理监听的地址,默认值与 bindAddr 相同。 # proxyBindAddr = "127.0.0.1" # QUIC 协议配置选项 # transport.quic.keepalivePeriod = 10 # transport.quic.maxIdleTimeout = 30 # transport.quic.maxIncomingStreams = 100000 # 心跳配置,不建议修改默认值。 # 默认的 heartbeatTimeout 为 90。设置为负值可禁用它。 # transport.heartbeatTimeout = 90 # 每个代理中保留的连接池数量不超过 maxPoolCount。 transport.maxPoolCount = 5 # 是否使用 TCP 流多路复用,默认为 true。 # transport.tcpMux = true # 指定 TCP 多路复用的保持连接时间间隔。 # 仅在 tcpMux 为 true 时有效。 # transport.tcpMuxKeepaliveInterval = 30 # tcpKeepalive 指定 frpc 和 frps 之间活动网络连接的保持存活探测间隔。 # 如果为负数,则禁用保持存活探测。 # transport.tcpKeepalive = 7200 # transport.tls.force 指定是否仅接受 TLS 加密连接。默认值为 false。 transport.tls.force = false # transport.tls.certFile = "server.crt" # transport.tls.keyFile = "server.key" # transport.tls.trustedCaFile = "ca.crt" # 如果希望支持虚拟主机,必须设置监听的 HTTP 端口(可选)。 # 注意:HTTP 端口和 HTTPS 端口可以与 bindPort 相同。 vhostHTTPPort = 80 vhostHTTPSPort = 443 # 虚拟主机 HTTP 服务器的响应头超时时间(秒),默认为 60 秒。 # vhostHTTPTimeout = 60 # tcpmuxHTTPConnectPort 指定服务器监听 TCP HTTP CONNECT 请求的端口。 # 如果值为 0,服务器不会在单一端口上多路复用 TCP 请求。否则,它会监听这个值所指定的端口。 # 默认为 0。 # tcpmuxHTTPConnectPort = 1337 # 如果 tcpmuxPassthrough 为 true,frps 不会对流量进行任何更新。 # tcpmuxPassthrough = false # 配置 Web 服务器以启用 frps 的仪表板。 # 仅在设置了 webServer.port 时,仪表板可用。 webServer.addr = "127.0.0.1" webServer.port = 7500 webServer.user = "admin" webServer.password = "admin" # webServer.tls.certFile = "server.crt" # webServer.tls.keyFile = "server.key" # 仪表板静态资源目录(仅用于调试模式) # webServer.assetsDir = "./static" # 在仪表板监听器中启用 golang pprof 处理程序。 # 必须首先设置仪表板端口。 webServer.pprofEnable = false # enablePrometheus 将在 /metrics API 上通过 webServer 导出 prometheus 指标。 enablePrometheus = true # 日志输出位置,可以是控制台或文件路径,如 "./frps.log" log.to = "./frps.log" # 日志级别:trace, debug, info, warn, error log.level = "info" log.maxDays = 3 # 当 log.to 为控制台时,禁用日志颜色输出,默认值为 false log.disablePrintColor = false # DetailedErrorsToClient 定义是否向 frpc 发送具体错误(包含调试信息)。默认值为 true。 detailedErrorsToClient = true # auth.method 指定用于验证 frpc 和 frps 的认证方法。 # 如果指定为 "token",则会在登录消息中读取 token。 # 如果指定为 "oidc",则会使用 OIDC 设置发出 OIDC 令牌。默认值为 "token"。 auth.method = "token" # auth.additionalScopes 指定包含认证信息的额外范围。 # 可选值为 HeartBeats, NewWorkConns。 # auth.additionalScopes = ["HeartBeats", "NewWorkConns"] # 认证 token auth.token = "12345678" # oidc 发行者指定用于验证 OIDC 令牌的发行者。 auth.oidc.issuer = "" # oidc 受众指定在验证 OIDC 令牌时应包含的受众。 auth.oidc.audience = "" # oidc skipExpiryCheck 指定是否跳过检查 OIDC 令牌是否过期。 auth.oidc.skipExpiryCheck = false # oidc skipIssuerCheck 指定是否跳过检查 OIDC 令牌的发行者声明是否与 oidcIssuer 指定的发行者匹配。 auth.oidc.skipIssuerCheck = false # userConnTimeout 指定工作连接的最大等待时间。 # userConnTimeout = 10 # 仅允许 frpc 绑定指定的端口。默认情况下没有限制。 allowPorts = [ { start = 2000, end = 3000 }, { single = 3001 }, { single = 3003 }, { start = 4000, end = 50000 } ] # 每个客户端可使用的最大端口数,默认为 0 表示无限制。 maxPortsPerClient = 0 # 如果 subDomainHost 不为空,则在 frpc 配置文件中使用 http 或 https 类型时,可以设置子域名。 # 当子域名为 test 时,用于路由的主机是 test.frps.com。 subDomainHost = "frps.com" # HTTP 请求的自定义 404 页面 # custom404Page = "/path/to/404.html" # 指定 UDP 包大小,单位为字节。如果未设置,默认值为 1500。 # 该参数应在客户端和服务器之间保持一致。 # 它影响 UDP 和 SUDP 代理。 udpPacketSize = 1500 # NAT 穿透策略数据的保留时间。 natholeAnalysisDataReserveHours = 168 # SSH 隧道网关 # 如果要启用此功能,bindPort 参数是必需的,其他为可选。 # 默认情况下,此功能是禁用的。当 bindPort 大于 0 时将启用它。 # sshTunnelGateway.bindPort = 2200 # sshTunnelGateway.privateKeyFile = "/home/frp-user/.ssh/id_rsa" # sshTunnelGateway.autoGenPrivateKeyPath = "" # sshTunnelGateway.authorizedKeysFile = "/home/frp-user/.ssh/authorized_keys" [[httpPlugins]] name = "user-manager" addr = "127.0.0.1:9000" path = "/handler" ops = ["Login"] [[httpPlugins]] name = "port-manager" addr = "127.0.0.1:9001" path = "/handler" ops = ["NewProxy"] FRP客户端 # 此配置文件仅供参考,请勿直接使用此配置运行程序,可能会有各种问题。 # 您的代理名称将更改为 {user}.{proxy} user = "your_name" # 对于IPv6的字面地址或主机名,必须用方括号括起来,如 "[::1]:80", "[ipv6-host]:http" 或 "[ipv6-host%zone]:80" # 对于单一的 serverAddr 字段,不需要方括号,例如 serverAddr = "::"。 serverAddr = "0.0.0.0" serverPort = 7000 # STUN服务器,用于帮助穿透NAT。 # natHoleStunServer = "stun.easyvoip.com:3478" # 决定在首次登录失败时是否退出程序,否则将连续重新登录frps # 默认为 true loginFailExit = true # 日志输出位置,可设置为控制台或实际的日志文件路径,例如 ./frpc.log log.to = "./frpc.log" # 日志级别,可设置为 trace, debug, info, warn, error log.level = "info" # 日志保留天数 log.maxDays = 3 # 当 log.to 设置为控制台时,是否禁用日志颜色,默认值为 false log.disablePrintColor = false # 认证方法 auth.method = "token" # auth.additionalScopes 指定附加的作用域以包含认证信息。 # 可选值为 HeartBeats, NewWorkConns。 # auth.additionalScopes = ["HeartBeats", "NewWorkConns"] # 认证的 token auth.token = "12345678" # oidc.clientID 指定用于获取OIDC认证token的客户端ID。 # auth.oidc.clientID = "" # oidc.clientSecret 指定用于获取OIDC认证token的客户端密钥。 # auth.oidc.clientSecret = "" # oidc.audience 指定OIDC认证的受众。 # auth.oidc.audience = "" # oidc.scope 指定在认证方法为 OIDC 时的token权限。默认值为 ""。 # auth.oidc.scope = "" # oidc.tokenEndpointURL 指定实现OIDC Token端点的URL,用于获取OIDC token。 # auth.oidc.tokenEndpointURL = "" # oidc.additionalEndpointParams 指定发送给OIDC Token端点的附加参数。 # 例如,如果您想指定"audience"参数,可以设置如下。 # frp将添加 "audience=<value>" "var1=<value>" 到附加参数中。 # auth.oidc.additionalEndpointParams.audience = "https://dev.auth.com/api/v2/" # auth.oidc.additionalEndpointParams.var1 = "foobar" # 设置管理控制台地址,用于通过HTTP API控制frpc的行为,例如重新加载 webServer.addr = "127.0.0.1" webServer.port = 7400 webServer.user = "admin" webServer.password = "admin" # 管理控制台的静态资源目录。默认情况下,这些资源与frpc捆绑在一起。 # webServer.assetsDir = "./static" # 在管理监听器中启用golang pprof处理程序。 webServer.pprofEnable = false # 指定与服务器连接的最大拨号时间,默认为10秒。 # transport.dialServerTimeout = 10 # dialServerKeepalive 指定frpc与frps之间活跃网络连接的保活探测间隔。如果为负值,则禁用保活探测。 # transport.dialServerKeepalive = 7200 # 提前建立的连接数,默认值为0 transport.poolCount = 5 # 如果使用TCP流多路复用,默认值为 true,必须与frps一致 # transport.tcpMux = true # 指定TCP多路复用的保活间隔,仅在tcpMux启用时有效。 # transport.tcpMuxKeepaliveInterval = 30 # 连接服务器时使用的通信协议 # 目前支持 tcp, kcp, quic, websocket 和 wss,默认是 tcp transport.protocol = "tcp" # 设置客户端绑定的IP地址用于连接服务器,默认为空。 # 仅在 protocol = tcp 或 websocket 时,该值才会被使用。 transport.connectServerLocalIP = "0.0.0.0" # 如果您想通过HTTP代理、SOCKS5代理或NTLM代理连接frps,可以在这里或在全局环境变量中设置proxyURL # 仅在 protocol 为 tcp 时有效 # transport.proxyURL = "http://user:passwd@192.168.1.128:8080" # transport.proxyURL = "socks5://user:passwd@192.168.1.128:1080" # transport.proxyURL = "ntlm://user:passwd@192.168.1.128:2080" # QUIC协议选项 # transport.quic.keepalivePeriod = 10 # transport.quic.maxIdleTimeout = 30 # transport.quic.maxIncomingStreams = 100000 # 如果 tls.enable 为 true,frpc 将通过 TLS 连接 frps。 # 自v0.50.0起,默认值已更改为true,TLS默认启用。 transport.tls.enable = true # transport.tls.certFile = "client.crt" # transport.tls.keyFile = "client.key" # transport.tls.trustedCaFile = "ca.crt" # transport.tls.serverName = "example.com" # 如果 disableCustomTLSFirstByte 设置为 false,启用 TLS 时,frpc 将使用第一个自定义字节与 frps 建立连接。 # 自v0.50.0起,默认值已更改为true,第一个自定义字节默认禁用。 # transport.tls.disableCustomTLSFirstByte = true # 心跳配置,不建议修改默认值。 # heartbeatInterval 的默认值为10,heartbeatTimeout 为90。设置负值可禁用心跳。 # transport.heartbeatInterval = 30 # transport.heartbeatTimeout = 90 # 指定 DNS 服务器,frpc 将使用该服务器而非默认的 # dnsServer = "8.8.8.8" # 要启动的代理名称,默认为空,表示启动所有代理。 # start = ["ssh", "dns"] # 指定UDP包大小,单位为字节。如果未设置,默认值为1500。 # 此参数在客户端和服务器之间应保持一致,影响UDP和SUDP代理。 udpPacketSize = 1500 # 客户端的附加元数据。 metadatas.var1 = "abc" metadatas.var2 = "123" # 包含其他代理配置文件。 # includes = ["./confd/*.ini"] 花生壳用户手册 https://hsk.oray.com/download/ ...

May 11, 2025 · 6 min

AI智能音箱端侧关键技术

架构 供应链 智能耳机方案 智能音箱方案 麦克风阵列 前端关键算法概念 Beamforming - 波束成型 AEC - 回声消除 BSS - 盲源检测 KWS - 唤醒词识别 VAD - 语音活动检测 BVE - 自适应增强 AGC - 自动增益控制 DRC - 动态范围控制 WPE - 混响消除 SD - 音频编码 DoA - 到达方向角估计 ANC - 主动降噪 ENC - 环境降噪 后端关键算法概念 VAD - 语音活动检测 LLM - 大模型,意图识别 ASR/STT - 语音转文字 TTS - 文字转语音

May 10, 2025 · 1 min

微信数据整理

微信数据整理

May 10, 2025 · 1 min

Markdown 语法

Markdown 语法全面介绍 Markdown 是一种轻量级标记语言,创建于2004年,它允许人们使用易读易写的纯文本格式编写文档,然后转换成有效的HTML文档。本文将全面介绍 Markdown 的基本语法和常用功能。 本博客也是采用markdown语法编写,所以本篇文章也作为语法查阅使用。 1. 标题 Markdown 支持六级标题,使用 # 符号表示: # 一级标题 ## 二级标题 ### 三级标题 #### 四级标题 ##### 五级标题 ###### 六级标题 效果如下: 一级标题 二级标题 三级标题 四级标题 五级标题 六级标题 2. 段落与换行 在 Markdown 中,段落由一个或多个空行分隔。如果要在段落内换行,可以在行尾添加两个或更多空格,然后按回车键。 这是第一段。 这是第二段。 这是一行, 这是强制换行后的内容。 3. 强调 Markdown 使用星号(*)和下划线(_)作为强调标记: *斜体文本* 或 _斜体文本_ **粗体文本** 或 __粗体文本__ ***粗斜体文本*** 或 ___粗斜体文本___ ~~删除线文本~~ 效果: 斜体文本 或 斜体文本 粗体文本 或 粗体文本 粗斜体文本 或 粗斜体文本 删除线文本 4. 列表 无序列表 无序列表可以使用星号(*)、加号(+)或减号(-)作为列表标记: * 第一项 * 第二项 * 第三项 + 第一项 + 第二项 + 第三项 - 第一项 - 第二项 - 第三项 效果: ...

May 9, 2025 · 2 min

真想让我爱的人读读这本书

人际关系建立 爱的本质是被看见,人需要与他人连接来获得归属感 建立关系艰难可能源于微攻击等,要克服恐惧,改变信念系统 不同依恋风格影响亲密关系,应选择可靠的伴侣 关系冲突处理 争论存在多种模式,如思考感受行动等,要理解对方应对方式 解决冲突需关注自身感受,避免评判指责,用"我"陈述句沟通 当关系无法挽救时,应果断结束,同时修复关系也有方法 应对生活变化 变化不可避免,要对自己行为负责,摆脱受害者心态 打破"应该思维",倾听感受,多尝试新事物,适应变化 允许自己悲伤,通过限定时间释放情绪,更好地应对变化 追求满足感 做自己的观察者,关注呼吸和身体,记录情绪,避免被情绪支配 战胜内心批评者,认清其声音来源,改变对失败的看法 多做内部参考,少做外部参考,从关系和兴趣中找到满足感

May 8, 2025 · 1 min

从零开始搭建个人博客

引言 本指南将详细介绍在中国大陆建立我的个人技术博客 ruhui.me 的具体操作步骤。我将涵盖从域名申请购买(阿里云)、云主机申请(华为云,IP 地址为 120.46.15.185)、域名解析,到必须完成的工信部备案和公安备案,再到 Hugo 本地开发环境的配置、Git 版本管理以及自动化部署等关键环节。 第一步:域名获取 域名 ruhui.me 是在阿里云域名服务上注册的。接下来,需要确保域名已完成实名认证,这是在中国大陆进行网站备案的前提条件。 第二步:选择和申请云主机 选择了华为云作为的云主机提供商,并且服务器的 IP 地址是 120.46.15.185。云服务器运行着熟悉和需要的操作系统(例如,CentOS, Ubuntu 等),并已做好基本的安全设置。 第三步:配置域名解析 在购买域名和设置好云服务器后,需要将的域名 ruhui.me 指向的华为云服务器 IP 地址 120.46.15.185。需要在阿里云的域名管理后台进行域名解析设置。 登录阿里云账号,进入域名管理控制台。 找到的域名 ruhui.me,点击"解析"或"DNS 设置"。 添加一条 A 记录,将主机记录设置为 @(代表根域名),记录值设置为的华为云服务器 IP 地址 120.46.15.185 可以再添加一条 CNAME 记录,将主机记录设置为 www,记录值设置为的根域名 ruhui.me 这样,无论是访问 ruhui.me 还是 www.ruhui.me,都会指向的服务器。 请注意,DNS 解析生效需要一定的时间,通常为几分钟到几小时不等。可以使用 ping 命令或在线 DNS 查询工具来检查解析是否生效。 第四步:进行ICP备案 在中国大陆托管网站是强制要求进行 ICP 备案的。需要登录阿里云 ICP 备案系统,按照要求填写的个人信息、域名信息、服务器信息等,并上传所需的相关证件照片。 个人进行 ICP 备案通常需要提供身份证照片、域名证书等。备案过程中,阿里云会进行初审,初审通过后,需要等待工信部的最终审核,审核通过后会发放 ICP 备案号。这个过程通常需要 20 个工作日到一个月左右。 获得 ICP 备案号后,需要在的博客网站底部显著位置添加 ICP 备案号,并链接到工信部网站。 ...

May 6, 2025 · 3 min

欢迎来到我的博客

博客正式上线 欢迎访问我的个人博客!这是我使用Hugo和PaperMod主题搭建的静态网站,用于创作、记录与分享。 博客内容 我计划在这个博客上分享以下类型的内容: 技术文章 - 生活中的小创作,智能家居,机器人,可穿戴和智能玩具相关的理论与实践 生活随笔 - 旅行见闻、日常思考 读书笔记 - 好书推荐、读后感 特别感谢 感谢所有开源社区的贡献者,特别是Hugo和PaperMod主题的开发者,是他们的努力让这个博客成为可能。 关于评论 暂时没有开启评论功能,如果你有任何建议或想法,欢迎通过关于页面上的联系方式与我交流。

May 6, 2025 · 1 min

杭州之旅

杭州西溪 测试。 西溪之美 测试: 摇橹 - 湿地 林溪竹径 - 徒步

May 1, 2025 · 1 min

纳瓦尔宝典

关于本书 很多人推荐《纳瓦尔宝典》这本书,一直感觉这类书属于心灵鸡汤,不太感兴趣,但是读起来竟然产生了很强烈的共鸣,我很惊奇的发现,在系统工程师的自我修养中总结的几点价值观与这本书非常一致,看来很多知识和道理是相通的,那就坚定的知行合一吧。 另外,读完之后我在想,如果过往没有实践和阅历,怎么会理解这么抽象的总结,怎么会感同身受的呢?年轻人适合读这本书吗? 主要内容 财富 追求财富,而不是金钱或地位。财富是指在你睡觉时仍能为你赚钱的资产。 创造财富和坚持道德标准是可以兼得的。如果你内心鄙视财富,财富就会对你避而远之。 依靠出租时间是不可能致富的,必须拥有股权才能实现财务自由。 为社会提供有需求但无从获得的东西,并实现规模化。 选择有长期发展前景的行业,找到可以长期合作的人。 培养迭代思维,所有回报都来自复利。 选择正直诚信的商业伙伴。 学会销售,学会构建,两技傍身,势不可当。 专长是无法通过培训获得的知识,要追求真正的兴趣和热爱。 责任感、专长和杠杆效应是致富的关键。 杠杆包括资本、劳动力、代码和媒体。 资本和劳动力需要许可,代码和媒体不需要。 判断力是倍增器,学习微观经济学、博弈论、心理学、说服术、伦理学、数学和计算机。 设定大胆的个人时薪,外包低于时薪的任务。 世界上没有快速致富的教程。 把自己产品化,发挥独特价值。 专长与复利 找到天赋所在,积累专长。 通过互联网表达自我,找到受众。 终身学习者最重要。 投资交友,着眼长远。 复利效应极其重要。 责任与股权 勇于以个人名义承担商业风险。 没有股权,就没有通往财务自由的路径。 真正的财富是通过创建公司或投资获得的。 努力获得更多杠杆效应,承担更多责任,学习更多专长。 判断力 判断力比努力更重要。 选择正确的方向比努力更重要。 头脑清晰,基础知识扎实。 直面现实,放下自我。 诚实待人,积极向上。 发现好的心智模型,进化论、博弈论、查理·芒格。 复利效应在智力成果领域同样适用。 基础数学、概率论、统计学极其重要。 难以抉择时,答案就是否定的。 主动迎接短期痛苦,换取长期回报。 每天花一个小时阅读科学、数学和哲学类书籍。 幸福 幸福是一种技能,可以习得。 幸福感是消除缺憾感后的状态。 幸福或不幸福只存在于大脑。 幸福是活在当下。 幸福需要心境平和。 欲望是主动选择的不开心。 成功不一定带来幸福。 内心平和的敌人是社会和他人的期望。 幸福源于好习惯。 获取幸福是一种技能,可以通过养成好习惯获得。 生活的过程就是用好习惯替换坏习惯。 自我救赎 最终你必须自己负起责任。 做自己,全情投入。 先天基因和后天经验造就个体独特性。 你的人生目标是找到最需要你的人、事业、项目或艺术。 健康是第一要务,高于幸福、家庭和工作。 饮食结构应接近自然,运动应坚持。 每天坚持才是最重要的。 情绪是生物进化的产物,冥想有助于自我觉察。 冥想是思想意识的间歇性禁食。 最了不起的超能力是改变自我的能力。 习惯主导一切。 迅速采取行动,并对结果保持耐心。 哲学与人生观 生命的意义是私人问题,每个人都要自己寻找答案。 生命没有意义,生活没有目的。 人类在局部熵减,因为我们有行动力。 诚实、复利、平级关系、远离愤怒。 志同道合,道合则无虞。 读物推荐:《理性乐观派》《非对称风险》《费曼讲物理》《七堂极简物理课》《主权个体》《穷查理宝典》《生命之书》《悉达多》《塞涅卡之道》《先知》《道德经》《你一生的故事》《呼吸》《雪崩》 公式与原则 幸福 = 健康 + 财富 + 良好的人际关系 健康 = 锻炼 + 饮食 + 睡眠 财富 = 收入 + 财富 × 投资回报率 收入 = 责任 + 杠杆 + 专长 杠杆 = 资本 + 人力 + 知识产权 专长 = 无法通过培训获得的知识 生活中所有的回报都来自复利。 用头脑赚钱,而不是用时间赚钱。 任何时候都要完全诚实。 爱是给予,不是接受。 (内容根据原文精简整理,建议阅读原书获取更多细节与故事) ...

April 1, 2025 · 1 min