首页 文章 精选 留言 我的

精选列表

搜索[搭建],共10000篇文章
优秀的个人博客,低调大师

如何在阿里云服务器搭建FTP服务器,在本地电脑连接并操作

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq1010885678/article/details/41720473 首先你需要有一个阿里云的ECS服务器 并且开通了公网宽带(话说也不贵,开来玩玩还是可以的,第一次买会比较便宜,第二次买1M的宽带两天是九毛多吧~) 开通了宽带之后,ECS服务器就可以上网了 如果嫌弃阿里云的连接管理终端太卡不好用的话 可以在本地电脑cmd控制台运行mstsc.exe启动远程桌面连接 计算机名输入ECS服务器的公网ip地址,开通了宽带的可以在控制台看到 点击连接如果提示输入用户名密码,用户名应该是administrator密码是对应的登录windows系统的密码(初始化的密码很复杂,包含大小写的那个) 成功连接 要是连接出现闪退的话可能是服务器那边没开机 或者处于待机状态 先去阿里云的连接管理终端动一下或者重启之后就可以了 接下来就可以在本地电脑直接操作ECS服务器了 下面进入正题 打开服务器默认的IE浏览器在网上下个FileZilla Server 安装过程自己可以问问度娘 安装完成后会跳出这个一个窗口 点击确定就好了,这边的服务器地址和端口是指连接服务器这台电脑的,和等下的自己的电脑连接服务器的时候的地址和端口是不一样的 确定之后进入主窗口 点击上面工具栏的小人图标建立一个用户(很重要) 点击用户下面的添加 输入用户名点击确定 勾选密码并输入,如111111 接下来先不要急着点确定 点击左边的shared folders选择要共享的文件夹 选完之后点击设为主目录 然后上面的用户读写权限看情况勾选 完成之后点左下角的确定就ok了 完成之后服务器的配置就好了 在本地电脑下载一个FlashFXP 运行之后的界面如下,左边的是本地电脑的文件系统,右边是连接的ftp服务器的文件系统 点击会话-快速连接 在地址中输入服务器的公网IP,端口号就是ftp默认的21不用改 用户名和密码填刚刚设置ftp服务器的时候的用户 也就是Test和111111 点击连接 连接成功了 上图是在将本地电脑的vs2012安装包上传到服务器中 

优秀的个人博客,低调大师

从0到1搭建一个智能分析OBS埋点数据的AI Agent|得物技术

一、背景 某天打开组内的Grafana仪表盘,突然好奇我们的埋点从被触发后是如何一步一步变成所展示的各种图表的,于是在我进行一系列的探索之后,总结出了以下链路: 在指标工厂新建指标,确定埋点key和埋点元数据。 代码中指定埋点key和埋点数据,通过watchDog发送kafka消息到obs monitor topic。 为埋点指标新建数据处理任务,将消费到的kafka消息落到指定的数据表中。 添加新的仪表盘,编写展示数据背后的SQL语句。 痛点:每需要添加一个新的数据分析大盘,就需要人工去分析各个表结构、表与表之间的联系、表各个字段的含义等,在充分理解其含义后再费时费力地编写SQL语句,并不断调优。这导致OBS埋点数据分析的场景相对固化,并且难以支持灵活的数据查询要求。 二、思考 在分析了当前系统的痛点后,我意识到这是一个典型的可以利用AI能力来对现有功能进行扩展的场景。因为: 场景多变,因为你不知道用户可能想查看什么样的数据,无法通过代码穷举; 需要了解业务同时又具备编写复杂数据查询SQL的人,并且费时费力; 看到大盘数据后,依赖每个人对业务的理解提炼出一套分析报告,报告质量与个人的理解与表达能力相关。 于是我就开始思考能否构建一个AI Agent,使其能够根据用户的要求,自主地生成各种各样的SQL查询语句,并将查询到的数据形成完整的数据分析报告返回给用户。 为了实现这个方案,有几个明显需要解决的点: 如何让AI理解每个表中各字段的含义、各个表的作用、表与表之间的联系,从而生成准确的SQL? AI生成完SQL之后,如何打通 AI 与数据平台之间的通路,从而成功执行该SQL 并拿到数据?因为数据库权限不在我这,我无法直接连接到数据库。 如何充分利用已有资源,减少人力投入?毕竟是个人想法,在不确定效果如何的情况下,不好直接打扰平台方专门为我写一些新功能,同时我个人也只能投入一些零碎的时间来做这件事。 三、方案 有了问题后,就带着问题去找答案。 3.1查询数据Tool 首先,我需要一个能够执行查询的端点。那么我就去抓取了大盘中的数据所调用的接口,意外地发现,不同的数据调用的是同一个接口https://xxx.com/api/ds/query,只是入参不同而已,而且发现,查询的逻辑是通过rawSql将查询语句直接传过去! 于是我将该Curl导入到ApiFox中,通过不断修改参数,发现最终与查询结果相关的入参可以精简到简单的几个参数:from、to、query(format,rawSql,intervalMs) 那么针对第一个问题我就想到了很好的办法,把这个查询API封装成一个Tool,描述清楚各个字段的含义,就可以让AI生成完整的参数来查询它想要的数据。 说干就干,我立马新建了一个Spring AI工程,把Tool的功能和需要的参数描述清楚。其中grafanaService.query()内部逻辑就是通过Feign来调用上面那个查询的API。 @Tool(name = "query_grafana", description= "使用Grafana中的SQL查询grafana数据") public JSONObject queryGrafana(@ToolParam(description = "查询开始时间") String from, @ToolParam(description = "查询结束时间") String to, @ToolParam(description = "查询数据类型:table|time_series") String format, @ToolParam(description = "查询时间间隔,单位毫秒。只有当format为time_series时需要传入。") Long intervalMs, @ToolParam(description = "Grafana SQL查询语句") String rawSql){ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); LocalDateTime fromDateTime = LocalDateTime.parse(from, formatter); LocalDateTime toDateTime = LocalDateTime.parse(to, formatter); String fromTimestamp = String.valueOf(fromDateTime.toInstant(ZoneOffset.UTC).toEpochMilli()); String toTimestamp = String.valueOf(toDateTime.toInstant(ZoneOffset.UTC).toEpochMilli()); JSONObject resp = grafanaService.query(fromTimestamp, toTimestamp, intervalMs, rawSql, format); return resp; } @Resource private GrafanaClient grafanaClient; @Value("${grafana.cookie}") private String getGrafanaCookie; public JSONObject query(String fromTimestamp, String toTimestamp, Long intervalMs, String rawSql, String format) { GrafanaRequest request = new GrafanaRequest(fromTimestamp, toTimestamp, intervalMs, rawSql, format); return grafanaClient.query(getGrafanaCookie, request); } 3.2表结构RAG 有了能够执行查询的Tool之后,剩下的就是需要AI能够根据用户的query生成精准的参数以及查询SQL。 之前了解到公司部署了RAGFlow服务:https://xxx.com/knowledge,既然有了,那就得用起来! 创建知识集,发现支持添加飞书文档。 由于我们是需要完整的表结构,所以把配置修改为使用table的格式,一行数据便是一个chunk,以免出现语义上的中断。(埋点数据一般表都较小,语意较为明确。像一些字段很多的大表可能需要考虑更好的方案。) 创建飞书文档,手动到OBS的库中把我们想要AI帮助分析的表结构拉出来(验证想法时采取的临时方案),但由于建表时的不规范,很多表没有对表中字段添加comment,这会导致AI不理解每个字段的含义,也就无法准确地生成SQL。因此,我们手动补充每张表、每个字段的描述,以及与其它表之间的关联关系。 将飞书文档添加到数据集中,完成后点击名称查看切片详情。双击每个块也可以查看块的详情。 会发现RAGFlow自动给我们生成了一些关键词和问题,这些内容会对召回准确率产生影响。我自己觉得生成的不太准确,所以结合自己理解手动输入了一些关键词和可能的问题。 完成后,可以到检索测试tab测试召回的效果,根据结果确定合适的参数。并可以对chunk的内容和关键词等等进行适当的调整。 调优完成后,就需要对接RAGFlow的retrive接口,来把我们知识库召回的流程做成一个Tool。 @Resource private RagFlowService ragFlowService; @Tool(name = "get_table_schema", description= "根据query查询可能有关联的数据库表,返回建表语句。尽量传入多个中文关键词,每个关键词之间用空格隔开。") public List<String> getTableSchema(@Param("query") String question){ return ragFlowService.retrieval(question); } 3.3 OBS Agent 在我看来,想要构建一个能够 work 的Agent,需要以下几个要素: Agent=Architecture (Workflow、ReAct、Plan-Execute、Multi-Agent...) +LLM+Context Engineering(Prompt、Tool、Memory...) 本来是想用SpringAI Alibaba Graph或者 LangGraph来构建一个WorkFlow类或者Graph类的复杂智能体(ReAct、Plan-Execute、Multi-Agent)。但为了快速验证想法和节省个人时间,并且考虑到目前任务相对简单(PE+工具就足以完成),再加上部门正在试用Trae这个工具,所以决定基于Trae来构建一个Agent(可以顺便使用他们的高级模型/doge,也可以分享给其它同事使用)。 接入Trae之后,Architecture自然就是Trae的Agent架构了,根据我使用下来感觉采用的是基于ReAct的 Single-Agent。而Context Engineering的部分,对话功能以及长短期记忆,自然是Trae天生就具备的。而Tool则可以借助其自带的一些工具,另外还可以利用MCP来进行扩展,比如得物的MCP市场,提供了大量好用的Server,并且可以很方便的发布自己开发的Mcp Server。于是,我就把在第一步和第二步做的工具,在得物Mcp平台上进行发布,供我自己和其他感兴趣的同学使用。 最后,需要一个专门针对我这个场景的Prompt来指引LLM 顺利完成任务,经过我不断的修改,最终形成这样一段Prompt: # Role:数据分析专家 ## Background:用户需要专业的数据分析支持来解决复杂的业务问题,从海量数据中提取有价值的信息,为产品优化、运营策略和业务决策提供可靠依据。 ## Attention:数据准确性是分析工作的生命线,必须始终保持严谨细致的工作态度。每一次分析都可能影响重要决策,因此需要系统性思考、分步验证,确保每个环节的可靠性。 ## Profile: - Language: 中文 - Description: 专注于数据库表结构分析与Grafana-SQL查询的专业数据分析师,具备系统化解决复杂数据查询问题的能力 ### Skills: - 精通数据库表结构分析,能够快速识别表关系、字段含义和数据类型 - 熟练掌握Grafana-SQL语法规范,具备高效的查询语句编写和优化能力 - 具备专业的数据可视化技能,能够根据分析目标选择合适的图表类型 - 拥有深度业务需求理解能力,能够准确转化业务问题为数据查询方案 - 掌握系统化的问题分析方法,能够规划完整的数据分析流程和验证机制 ## Goals: - 准确理解用户业务需求,明确数据查询的核心目标和关键指标 - 系统分析相关表结构,确保对数据关系和业务逻辑的全面理解 - 设计高效的数据查询方案,平衡查询性能与结果准确性 - 生成专业的数据分析报告,包含可视化展示和深度业务洞察 - 确保所有分析过程可追溯、结果可验证、结论可执行 ## Constrains: - 查询不到数据时不要模拟任何数据,直接回复查不到数据 - 你自己所知道的时间是不准确的,如果涉及到时间,则需要使用工具获取当前时间 - 严格基于实际数据进行分析,严禁任何形式的数据虚构或推测 - 必须在完成表结构分析和需求理解后再执行具体查询操作 - 所有重要数据必须进行源头验证和多维度交叉检查 - 严格遵守数据安全和隐私保护原则,不超越授权数据范围 - 明确说明分析的局限性、假设条件和潜在的数据不确定性 ## Workflow: 1. 深度理解业务需求,明确查询目标、关键指标和预期输出 2. 不断使用工具获取你需要的表及其表结构,直到你认为已获取到足够的信息 3. 系统分析相关表结构,包括字段含义、数据类型、关联关系和索引结构 4. 设计查询逻辑方案,规划执行步骤、验证节点和性能优化策略 4. 编写符合Grafana语法的SQL查询语句,设置正确的参数和时间范围 5. 执行查询。如果查询出现401错误,则中断后续流程,并提示用户更新Cookie后重启obs-mcp-server;如果出现400错误,尝试修改自己的SQL语句重新查询; 6. 生成可视化图表和详细分析报告,报告中必须包含你执行查询的SQL语句 7. 调用飞书生成文档工具以Markdown格式创建飞书文档,返回最终的飞书文档地址 ## OutputFormat: - 分析报告,包含完整的分析过程和关键发现,创建新的飞书文档并保存在其中 - 可视化图表以嵌入式链接形式呈现,确保清晰展示数据趋势和分布 - 报告结构包含执行摘要、分析方法、数据结果、业务洞察和后续建议 ## Suggestions: - 建立系统化的表结构分析框架,提高数据关系识别的效率和准确性 - 持续学习Grafana-SQL最新语法特性,优化查询性能和资源消耗 - 培养多维度数据验证习惯,确保分析结果的可靠性和业务价值 - 深入理解业务场景,提升从数据到洞察的转化能力和决策支持水平 - 定期复盘分析案例,总结经验教训,持续改进分析方法论和工作流程 ## 工具描述 - query_grafana:使用Grafana中的SQL查询grafana数据 注意: 1. 当format为time_series时表示查询时间序列数据,SELECT的第一个字段必须是$__timeGroupAlias(timestamp, interval),表示时间分组别名。时间间隔intervalMs需要与rawSql中的$__timeGroup(timestamp, interval)保持对应。比如intervalMs=86400000L表示1天,rawSql中$__timeGroup(timestamp, 1d)也需要保持一致。 2. 当format为table时表示查询表格数据,SELECT的字段可以任意,intervalMs参数传null 3. 时间范围为闭区间,即包含开始时间from和结束时间to,格式为yyyy-MM-dd HH:mm:ss。 参数示例:{ "from": "2025-11-16 00:00:00", "to": "2025-11-16 23:59:59", "format": "table", "intervalMs": null, "rawSql": "SELECT region, COUNT(*) as user_count FROM intl_xxxxxxx WHERE $__timeFilter(timestamp) GROUP BY region ORDER BY user_count DESC" } ## Initialization 作为数据分析专家,你必须遵守Constrains,使用默认中文与用户交流。 最终,在 Trae 中构建了一个完整OBS Agent。 添加智能体:OBS大盘分析 四、成果 最终生成的报告(截取部分): 五、总结 AI时代来临,我们应该要善于发现当前系统中的哪些部分能够结合AI来进行提升,积极拥抱变化,有了想法就去做,边做边想边解决问题,永远主动向前一步。 本文章只是记录了从产生想法到构建MVP验证想法的整个过程,这中间当然有很多可以继续优化的地方,我本人目前有以下几个想法,也欢迎大家积极评论,贡献自己的独到见解。 接入数据库数据,通过动态监听Binlog的方式来识别各表之间的联系,比如select 语句的join,并将这种关系保存到Neo4j 这种图向量数据库中来实现表结构的 RAG。 基于LangGraph 或 SpringAI Alibaba 构建Multi-Agent System,细化各Agent的职责,精炼各Agent的Context 构成,以获得更好的效果。例如:协调者 Agent、表结构搜索 Agent、SQL 生成 Agent、分析报告 Agent等等。 接入飞书机器人,或者使用AI Coding工具生成一个前端页面。使得一些非技术人员,例如产品和运营也能很方便地使用。 往期回顾 数据库AI方向探索-MCP原理解析&DB方向实战|得物技术 项目性能优化实践:深入FMP算法原理探索|得物技术 Dragonboat统一存储LogDB实现分析|得物技术 从数字到版面:得物数据产品里数字格式化的那些事 一文解析得物自建 Redis 最新技术演进 文 /Neeson 关注得物技术,每周更新技术干货 要是觉得文章对你有帮助的话,欢迎评论转发点赞~ 未经得物技术许可严禁转载,否则依法追究法律责任。

优秀的个人博客,低调大师

《鸿蒙 HarmonyOS 应用开发从入门到精通(第 2 版)》学习笔记 ——HarmonyOS 环境搭建之安装DevEco Studio

作为一款开发工具,除了具有基本的代码开发、编译构建及调测等功能外,DevEco Studio还具有如下特点: 高效智能代码编辑:支持Java、XML、ArkTS、JS、C/C++等语言的代码高亮、代码智能补齐、代码错误检查、代码自动跳转、代码格式化、代码查找等功能,提升代码编写效率。 低代码可视化开发:丰富的UI界面编辑能力,支持自由拖拽组件和可视化数据绑定,可快速预览效果,所见即所得;同时支持卡片的零代码开发,降低开发门槛和提升界面开发效率。 多端双向实时预览:支持UI界面代码的双向预览、实时预览、动态预览、组件预览以及多端设备预览,便于快速查看代码运行效果。 多端设备模拟仿真:提供HarmonyOS本地模拟器,支持手机等设备的模拟仿真,便捷获取调试环境。 DevEco Studio支持Windows和Mac版本,两个版本的安装步骤类似,因此,下面将只针对Windows操作系统的软件安装方式进行介绍。 2.2.1 运行环境要求 为保证DevEco Studio正常运行,建议电脑配置满足如下要求: 操作系统:Windows10 64位、Windows11 64位 内存:8GB及以上 硬盘:100GB及以上 分辨率:1280*800像素及以上 2.2.2 下载和安装DevEco Studio 1. 下载DevEco Studio 进入DevEco Studio产品页(https://developer.harmonyos.com/cn/develop/deveco-studio#download),如下图2-10所示。 DevEco Studio( HarmonyOS 3.1/4.0及以下)下载地址为https://developer.huawei.com/consumer/cn/deveco-studio/archive/ 找到DevEco Studio下载页面(如下图2-10所示),根据自己的操作系统,下载对应的DevEco Studio安装包。 2. 安装DevEco Studio 下载完成后,双击下载的“deveco-studio-xxxx.exe”,进入DevEco Studio安装向导。如果之前有安装过老版本,则会提示先卸载老版本。 在如下图2-12所示的界面选择安装路径,默认安装于“C:\Program Files”路径下,也可以单击“Browse...”指定其他安装路径,然后单击“Next”按钮。 在如下图2-13所示的安装选项界面勾选“DevEco Studio”为了后续创建快捷方式用,而后点击“Next”按钮,直至安装完成。 安装完成后,先不要勾选Run DevEco Studio选项,接下来请根据配置开发环境,检查和配置开发环境。 参考资料 《跟老卫学 HarmonyOS 开发》 开源免费教程,https://github.com/waylau/harmonyos-tutorial 《鸿蒙 HarmonyOS 手机应用开发实战》(清华大学出版社) “鸿蒙系统实战短视频 App 从 0 到 1 掌握 HarmonyOS”(https://coding.imooc.com/class/674.html) 《鸿蒙 HarmonyOS 应用开发入门》(清华大学出版社) “2024 鸿蒙零基础快速实战 - 仿抖音 App 开发(ArkTS 版)”(https://coding.imooc.com/class/843.html) 《鸿蒙 HarmonyOS 应用开发从入门到精通战(第 2 版)》(北京大学出版社) 《鸿蒙之光 HarmonyOS NEXT 原生应用开发入门》(清华大学出版社)

优秀的个人博客,低调大师

五分钟搭建!一款开源专属密码管理工具-Vaultwarden

随着我们生活中账户数量的增加,记住多个不一样的密码着实困难,同时保持这些密码的安全性更是至关重要。密码管理工具的出现恰到好处地解决了这一问题,不仅能安全地存储和管理我们的密码,还提供了额外的安全功能,如二次验证和密码生成器等,下面为大家推荐一款密码管理工具—Vaultwarden。 应用简览 Vaultwarden 是一个开源的密码管理工具,以其轻量级和高效性著称,为个人和团队提供了一个安全可靠的方式来存储和管理密码。作为 Bitwarden 的非官方 Rust 实现,它特别适合那些寻求在资源受限的环境下运行密码管理解决方案的用户。Vaultwarden 通过强大的安全功能,如端到端加密和二次验证,确保了用户数据的安全,同时它的自托管能力让用户拥有对自己数据的完全控制。 主要功能 端到端加密:Vaultwarden 使用端到端加密技术确保您的密码和敏感信息在服务器上存储时保持加密状态,只有用户可以解密其数据。 跨平台同步:支持在多个设备和平台之间同步密码和数据,以及主流浏览器的扩展插件。 自托管能力:与依赖第三方云服务不同,Vaultwarden 允许用户自行托管服务器,给予用户对数据存储和传输的完全控制。 用户和组管理:支持多用户使用,包括组织账户管理,使得团队可以方便地共享和管理密码。 二次验证(2FA):增加安全层次,支持多种二次验证方法,如TOTP、U2F等,为账户安全添加额外保护。 安全密码生成器:内置密码生成器,帮助用户创建复杂且难以猜测的密码,以提高账户安全性。 安全笔记和文件存储:除了密码,用户还可以安全地存储敏感笔记和文件,确保所有敏感信息都受到保护。 数据导入/导出功能:允许用户从其他密码管理器轻松迁移数据,或者备份自己的数据。 应用特色 一、多类型密码分类 Vaultwarden 允许用户将存储的信息进行多种分类,如网站密码、安全笔记、银行账户信息等,帮助用户高效管理各类数据。这种分类方式不仅使得查找和更新信息变得更加容易,而且提高了整体的组织效率。 二、双重登录验证 为了提升账户安全性,Vaultwarden 支持双重登录验证(2FA),包括时间基于的一次性密码(TOTP)、短信验证码和物理安全密钥等多种验证方式。这一层额外的安全措施确保了即便密码被泄露,账户信息也能得到保护。 三、密码生成 Vaultwarden 配备了一个强大的密码生成工具,能够根据用户设定的参数(如长度和字符类型)生成难以猜测的密码。这项功能对于创建高安全性的新密码或更新旧密码至关重要,帮助用户避免使用简单或重复的密码,增强账户安全。 四、导入导出 Vaultwarden 提供了数据的导入和导出功能,使用户能够从其他密码管理工具方便地迁移数据,或者为了备份目的导出自己的数据。这种灵活性让用户可以无缝地在不同服务间转移数据,同时确保了数据的持久性和可访问性。 安装指南 进入云原生应用市场 搜索 Vaultwarden 进入详情,选择包类型(本应用支持,docker安装,ram安装) 点击安装,执行相应命令即可。如有疑问可参阅使用文档或加入社区 关于云原生应用市场 云原生应用市场是一个汇聚了各类开源软件的应用市场,不仅可以作为你自己的 Helm Chart 仓库,提供丰富多样的Helm应用,还有 Docker 应用、Rainbond 应用模板、信创应用等多种选择。 官网:https://hub.grapps.cn/ 微信群:关注 云原生应用市场 公众号加入技术交流群

优秀的个人博客,低调大师

Proxy-Go v11.2 发布,新增灵活指定出口 IP,分分钟搭建提供 IP 代理集群服务!

预祝各位oscer国庆节快乐,goproxy也迎来11.2国庆版本。 新增特性: 1、--bind-ip参数的IP部分,支持指定网卡名称,通配符,还能指定多个,详细说明如下: 指定网卡名称,比如:--bind-ip eth0:7777,那么客户端访问7777端口,出口IP就是eth0网卡的IP。 网卡名称支持通配符,比如:--bind-ip eth0.*:7777,那么客户端访问7777端口,出口IP就是eth0.开头网卡的IP中随机选择的一个。 IP支持通配符,比如:--bind-ip 192.168.?.*:7777,那么客户端访问7777端口,出口IP就是机器所有IP中,匹配192.168.?.*的IP中随机选择的一个。 还可以是网卡名称和IP的多个组合,多个使用半角逗号分割,比如:--bind-ip pppoe??,192.168.?.*:7777,那么客户端访问7777端口,出口IP就是机器网卡名称匹配pppoe?? 和机器所有IP中匹配192.168.?.*的IP中随机选择的一个。 通配符*代表0至任意多个字符,?代表1个字符。 如果网卡IP发生变化,也会实时生效。 可以通过--bind-refresh参数,指定刷新本地网卡信息的间隔,默认5,单位秒。 2、所有日志重构,使用gmc框架,日志输出更加规范,排查问题更准确。 手册新增典型用法,13,14,15。 手册地址 13.典型用法-拨号VPS 为了方便说明,假设背景情况如下: 1、vps有一个主网卡,名称是eth0,ip是1.1.1.1,然后vps可以pppoe拨号,拨号建立的网卡名称前缀都是pppoe_。 实现的效果: 提供动态IP代理服务,客户端访问1.1.1.1的代理端口7777,可以使用拨号的ip随机选择一个作为出口,7777端口支持代理认证。 7777端口同时支持http/socks5代理。 操作步骤: vps执行proxy sps -p :7777 --bind-ip pppoe_*:7777 -a user1:password1 -a user2:password2 。 命令中-a是设置代理认证用户,多个用户,可以重复-a参数,格式是:用户名:密码。 更多认证方式可以参考手册API认证,认证部分。 14.典型用法-多IP的VPS 为了方便说明,假设背景情况如下: 1、vps有一个主网卡,名称是eth0,ip是1.1.1.1,然后eth0配置了255个子网卡并设置了IP,比如:eth0:1,eth0:255,子网卡名称前缀都是:eth0:。 实现的效果: 提供动态IP代理服务,客户端访问1.1.1.1的代理端口7777,可以使用配置的255个子网卡的ip中随机选择一个作为出口,7777端口支持代理认证。 7777端口同时支持http/socks5代理。 操作步骤: vps执行proxy sps -p :7777 --bind-ip eth0::7777 -a user1:password1 -a user2:password2 。 命令中-a是设置代理认证用户,多个用户,可以重复-a参数,格式是:用户名:密码。 更多认证方式可以参考手册API认证,认证部分。 15.典型用法-拨号的VPS集群 为了方便说明,假设背景情况如下: 1、有一批vps,它们每个都有一个主网卡配置了固定的IP:x.x.x.x,然后vps可以pppoe拨号,拨号建立的网卡名称前缀都是pppoe_。 2、有一个VPS作为代理入口,它的ip是2.2.2.2。 实现的效果: 2.2.2.2提供动态IP代理服务,客户端访问2.2.2.2的代理端口8888,可以随机选择拨号vps集群中一个,然后使用拨号vps的拨号ip随机选择一个作为出口ip,8888端口支持代理认证。 8888端口同时支持http/socks5代理。 操作步骤: 拨号VPS: 拨号的vps执行proxy sps -p :7777 --bind-ip pppoe_:7777 。 入口VPS: 2.2.2.2 的vps执行proxy sps -p :8888 -a user1:password1 -a user2:password2 -P http://x.x.x.1:7777 -P http://x.x.x.2:7777。 命令中-a是设置代理认证用户,多个用户,可以重复-a参数,格式是:用户名:密码。 x.x.x.1,x.x.x.2是拨号vps的固定IP,有多个,重复-P参数即可 更新: v10.7及以后版本,执行:proxy update,即可完成快速更新到最新版。 特色功能 链式代理,程序本身可以作为一级代理,如果设置了上级代理那么可以作为二级代理,乃至N级代理。 通讯加密,如果程序不是一级代理,而且上级代理也是本程序,那么可以加密和上级代理之间的通讯,采用底层tls高强度加密,安全无特征。 智能HTTP代理,HTTPS代理,SOCKS5代理,会自动判断访问的网站是否屏蔽,如果被屏蔽那么就会使用上级代理(前提是配置了上级代理)访问网站;如果访问的网站没有被屏蔽,为了加速访问,代理会直接访问网站,不使用上级代理。 域名黑白名单,更加自由的控制网站的访问方式。 跨平台性,无论你是widows,linux,还是mac,甚至是树莓派,都可以很好的运行proxy。 多协议支持,支持HTTP(S),TCP,UDP,Websocket,SOCKS5代理。 TCP/UDP端口转发。 游戏盾,游戏代理,高仿服务器。 内网穿透,P2P传输,协议支持TCP和UDP,针对HTTP的优化穿透。 SSH中转,HTTP(S),SOCKS5代理支持SSH中转,上级Linux服务器不需要任何服务端,本地一个proxy即可开心上网。 KCP协议支持,HTTP(S),SOCKS5代理支持KCP协议传输数据,降低延迟,提升浏览体验。 动态选择上级代理,通过外部API,HTTP(S),SOCKS5,SPS代理可以实现基于用户或者IP的限速,连接数限制,动态获取上级。 灵活的上级分配,HTTP(S),SOCKS5,SPS代理可以通过配置文件实现基于用户或者IP的限速,连接数限制,指定上级。 反向代理,支持直接把域名解析到proxy监听的ip,然后proxy就会帮你代理访问需要访问的HTTP(S)网站。 透明HTTP(S)代理,配合iptables,在网关直接把出去的80,443方向的流量转发到proxy,就能实现无感知的智能路由器代理。 协议转换,可以把已经存在的HTTP(S)或SOCKS5或SS代理转换为一个端口同时支持HTTP(S)和SOCKS5和SS代理,转换后的SOCKS5和SS代理如果上级是SOCKS5代理,那么支持UDP功能,同时支持强大的级联认证功能。 自定义底层加密传输,http(s)\\sps\\socks代理在tcp之上可以通过tls标准加密以及kcp协议加密tcp数据,除此之外还支持在tls和kcp之后进行自定义加密,也就是说自定义加密和tls|kcp是可以联合使用的,内部采用AES256加密,使用的时候只需要自己定义一个密码即可。 底层压缩高效传输,http(s)\\sps\\socks代理在tcp之上可以通过自定义加密和tls标准加密以及kcp协议加密tcp数据,在加密之后还可以对数据进行压缩,也就是说压缩功能和自定义加密和tls|kcp是可以联合使用的。 安全的DNS代理,可以通过本地的proxy提供的DNS代理服务器与上级代理加密通讯实现安全防污染的DNS查询。 负载均衡,高可用,HTTP(S)\\SOCKS5\\SPS代理支持上级负载均衡和高可用,多个上级重复-P参数即可。 指定出口IP,HTTP(S)\\SOCKS5\\SPS\\TCP代理支持客户端用入口IP连接过来的,就用入口IP作为出口IP访问目标网站的功能。如果入口IP是内网IP,出口IP不会使用入口IP 支持限速,HTTP(S)\\SOCKS5\\SPS\\TCP代理支持限速。 支持限连接数,HTTP(S)\\SOCKS5\\SPS\\TCP代理支持限连接数。 SOCKS5代理支持级联认证。 证书参数使用base64数据,默认情况下-C,-K参数是crt证书和key文件的路径,如果是base64://开头,那么就认为后面的数据是base64编码的,会解码后使用。 支持客户端IP黑白名单,更加安全的控制客户端对代理服务的访问,如果黑白名单同时设置,那么只有白名单生效。socks/http(s)/sps/tcp/udp/dns/内网穿透bridge/内网穿透tbridge,都支持客户端IP黑白名单。 端口范围批量监听,HTTP(S)\\SOCKS5\\SPS\\TCP代理支持指定端口范围监听,避免启动过多进程,提高性能。 下载地址: Gitee Github

优秀的个人博客,低调大师

搭建网站前,先看看云服务器与虚拟主机的4个区别

云服务器与虚拟主机从字面上看十分相似,以致于很多企业不明白它们之间的区别。 云服务器与虚拟主机的区别 1、从技术层面来说,云服务有着丰富的服务器资源做基础,它整合了计算、存储、网络的三个核心要素,每个集群节点被部署在互联网的骨干数据中心;而虚拟主机则是服务器的其中一个部分,用来防止Web程序的组件,能够为网站提供数据传输和存放两个功能。 2、从服务器资源的层面来看,云服务是云计算服务的重要组成部分,具有独立的服务器资源,能够为网站提供多种资源;由于虚拟主机是从服务器上划分的,因此,使用虚拟主机就要和其他网站共享服务器的资源。 3、从服务器管理的层面看,云服务基于云计算的强大资源,能够进行远程的管理和运作,并且企业能够根据需要进行灵活配置;但虚拟主机却不能进行远程管理,技术人员只能到机房上使用控制面板对虚拟主机进行各种运维工作。 4、从使用成本的角度来说,云服务器不需要企业自建机房,在向服务商租用服务器时也无需提交押金,远程控制等优势也大大节省了人力、财力成本;由于由于虚拟主机是多个空间分享一台服务器的带宽、IP等资源,性比价也很高,但容易存在访问延迟、容易遭受攻击等问题。 服务器是为网站提供计算服务的设备,并承担着响应服务请求、处理访问等问题,需要具备承担服务并且保障服务的能力。云服务器和虚拟主机有着很大的区别,我们要根据网站的类型、访问流量的大小等因素,选择适合自己的服务器。

优秀的个人博客,低调大师

Linux系统:centos7下搭建ZooKeeper3.4中间件,常用命令总结

本文源码:GitHub·点这里 || GitEE·点这里 一、下载解压 1、Zookeeper简介 Zookeeper 作为一个分布式的服务框架,主要用来解决分布式集群中应用系统的一致性问题,它能提供基于类似于文件系统的目录节点树方式的数据存储,但是 Zookeeper 并不是用来专门存储数据的,它的作用主要是用来维护和监控你存储的数据的状态变化。通过监控这些数据状态的变化,从而可以达到基于数据的集群管理。 2、下载 环境版本centos7zookeeper 3.4.14 [root@localhost mysoft]$ cd /usr/local/mysoft/ [root@localhost mysoft]$ wget https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz [root@localhost mysoft]# tar -zxvf zookeeper-3.4.14.tar.gz [root@localhost mysoft]# mv zookeeper-3.4.14 zookeeper3.4 二、修改配置文件 1、数据和日志目录 [root@localhost /]# mkdir -p data/log/zkp1.log [root@localhost /]# mkdir -p data/zkpdata/zkp1 2、修改配置 [root@localhost mysoft]# cd zookeeper3.4/conf/ [root@localhost conf]# cp zoo_sample.cfg zoo.cfg [root@localhost conf]# vim zoo.cfg # 修改如下两块内容,其他默认 dataDir=/data/zkpdata/zkp1 dataLogDir=/data/log/zkp1.log 3、配置文件说明 1)tickTime 心跳检查的时间。 2)initLimit 集群中的从服务器与主服务器之间初始连接时能容忍的最多心跳数(tickTime的数量)。 3)syncLimit 集群中从服务器与主服务器之间的请求和答应最多能容忍的心跳数。 4)dataDir 数据存放目录。 5)dataLogDir 日志存放目录。 6)clientPort 客户端连接的接口,客户端连接zookeeper服务器的端口,服务器端会监听这个端口,默认是2181。 三、启动运行 1、启动服务端 [root@localhost bin]# pwd /usr/local/mysoft/zookeeper3.4/bin [root@localhost bin]# /usr/local/mysoft/zookeeper3.4/bin/zkServer.sh start /usr/local/mysoft/zookeeper3.4/conf/zoo.cfg ZooKeeper JMX enabled by default Using config: /usr/local/mysoft/zookeeper3.4/conf/zoo.cfg Starting zookeeper ... STARTED [root@localhost bin]# ps -aux |grep zookeeper 2、启动客户端 [root@localhost /]# cd /usr/local/mysoft/zookeeper3.4/bin/ [root@localhost bin]# ./zkCli.sh Connecting to localhost:2181 四、常用操作命令 ## 创建节点 [zk: localhost:2181(CONNECTED) 2] create /cicada cicada-smile1 Created /cicada [zk: localhost:2181(CONNECTED) 8] create /cicada2 cicada-smile2 Created /cicada2 [zk: localhost:2181(CONNECTED) 4] get /cicada cicada-smile1 ## 查看目录 [zk: localhost:2181(CONNECTED) 5] ls / [zookeeper, cicada, cicada2] ## 查看指定目录 [zk: localhost:2181(CONNECTED) 17] ls / zookeeper [com.ptp.user.service.UserService] ## 删除节点 [zk: localhost:2181(CONNECTED) 10] delete /cicada ## 删除目录全部 [zk: localhost:2181(CONNECTED) 18] rmr /cicada2 [zk: localhost:2181(CONNECTED) 19] ls /cicada2 Node does not exist: /cicada2 ## 查看剩下节点 [zk: localhost:2181(CONNECTED) 13] ls / [zookeeper] 五、源代码地址 GitHub·地址 https://github.com/cicadasmile/linux-system-base GitEE·地址 https://gitee.com/cicadasmile/linux-system-base

优秀的个人博客,低调大师

36.FFmpeg+OpenCV直播推流(搭建crtmpserver服务器并使用ffmepg,vlc测试推流播放)

开发环境 Ubuntu 16 64位+Windows10 开发过程 1.登录Ubuntu切换到root用户(减少权限问题),执行以下命令 apt update 它的作用是同步 /etc/apt/sources.list 和 /etc/apt/sources.list.d 中列出的源的索引,这样才能获取到最新的软件包。它只是更新了apt的资源列表,没有真正的对系统执行更新。如果需要,要使用apt-get upgrade来更新 2.源更新之后,开始下载crtmpserver wget https://codeload.github.com/j0sh/crtmpserver/zip/centosinit 下载完成后,在目录下可以看到如下 root@ubuntu:~# ls centosinit 3.我们需要openssh网络协议的支持,执行以下命令下载libssl-dev apt install libssl-dev libssl-dev是OpenSSL通用库。SSL是Secure Sockets Layer(安全套接层协议)的缩写,可以在Internet上提供秘密性传输。4.然后我们需要解压crtspserver,解压需要使用unzip,如果没有安装,就先安装 apt install unzip unzip crtmpserver 5.解压成功之后进入crtmpserver的以下目录中 root@ubuntu:~/crtmpserver-centosinit/builders/cmake# ls androidapplestreaming CMakeFiles common lua run toolchain-sourcery_g++_lite.cmake vmtests applications cmake_find_modules crtmpserver Makefile tests trafficdissector cleanup.sh cmake_install.cmake debianpackage.patch package.sh thelib vg.sh CMakeCache.txt CMakeLists.txt ltib precompiled.gch tinyxml vm 执行命令 cmake . 命令执行成功的前提是g++已经被安装,如果没有,则会提示错误,通过以下命令安装 apt install g++ 6.cmake .命令执行完之后,在同样的目录下执行make命令 make make的执行基于CMakeLists文件的存在,所以,这也是需要在这个目录下执行的原因7.make编译完成之后,我们就可以开启crtmpserver服务器了,执行下边的命令 ./crtmpserver/crtmpserver ./crtmpserver/crtmpserver.lua 执行后可以看到服务器已经开启的画面此时服务器已经进入了接收推流的状态8.接下来,我们使用ffmpeg命令行推流试试 ffmpeg -i path(视频文件地址) -f flv rtmp://192.168.1.1:1932/live/test -i 指定视频路径-f 执行格式,推流使用flv,及时你的是mp4,你也不能使用-f mp4192.168.1.1是你Ubuntu的ip地址,1932是crtmpserver的端口号,可以从上边的图上看到 执行后,我们打开vlc播放器将这个地址输入到这里,点击媒体->打开网络串流输入这个地址,可以看到视频正常播放了9.可能存在的几个问题 a.视频非常模糊 因为ffmepg对视频编码进行了处理,我们将推流的命令改为 ffmpeg -i 文件 -f flv -c copy rtmp:..... 可以看到清晰了很多,这是因为做了直接copy处理 b.你的视频地址输入vlc中,没有播放 如果此时服务器正常,推流也正常的情况下,这种情况,可能是推流已经结束了,所以要看到视频需要保证你接收推流的时间一定要在推流没有结束之前进行,也就是看你手速了,短视频很快就推完了

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册