FTP协议深度解析:控制连接、数据连接与主动被动模式原理
1. 从一次文件传输的困惑说起很多人第一次接触FTP是在某个需要把文件从一台机器搬到另一台机器的场景里。比如你在本地写好了一个网站的前端页面想传到服务器上或者同事发来一个地址让你去上面下载一批素材。这时候有人告诉你“用FTP传一下就行了。”你打开浏览器输入地址发现它跟普通网页不太一样需要账号密码登录进去后看到的是一堆文件和文件夹可以上传、下载、重命名、删除。这就是FTP给人的第一印象——一个远程文件管理器。但如果你只把它当成“远程文件管理器”那就会错过它背后真正有意思的东西。FTP的全称是File Transfer Protocol文件传输协议它是互联网早期就存在的一套标准专门用来解决“两台计算机之间怎么可靠地传文件”这个问题。它不像HTTP那样只负责把网页拉下来给你看也不像SMB那样深度绑定在局域网和操作系统里。FTP的设计目标很纯粹让一台机器上的文件能够被另一台机器上的用户看到、取走、放上去而且这个过程要能适应各种网络环境、各种文件类型、各种权限控制。这篇文章适合谁看如果你是刚入行的运维或开发需要搞清楚FTP到底怎么工作、为什么有时候能连上却传不了文件、被动模式和主动模式到底差在哪里那这篇内容就是为你准备的。如果你已经用了很多年FTP但一直停留在“填地址、输账号、拖文件”的层面想弄明白它底层到底发生了什么那也可以往下看。我会从协议的设计思路讲起把控制连接和数据连接分开说清楚再把主动模式和被动模式的差异、常见坑点、以及实际排查问题的思路一步步展开。全文不会堆砌RFC原文而是用从业者之间聊天的口吻把这件事讲透。2. FTP为什么要把“说话”和“搬东西”分成两条通道2.1 控制连接一条一直开着的“对讲机”FTP最特别的地方是它在设计上把“命令交互”和“数据传输”拆成了两条独立的TCP连接。这跟HTTP完全不一样。HTTP是你发一个请求服务器返回一个响应请求和响应都在同一条连接上完成干脆利落。但FTP不是这样。当你用FTP客户端连接服务器时客户端会先跟服务器的21端口建立一条TCP连接这条连接叫控制连接。控制连接建立之后客户端和服务器之间就开始“对话”了。客户端发送的命令是纯文本的比如USER admin、PASS 123456、PWD、CWD /upload、LIST、RETR file.zip。服务器收到这些命令后会返回三位数字的状态码和一段说明文字比如230 Login successful、257 /upload is current directory、150 Opening data connection。这条控制连接在整个会话期间是一直保持的。你登录、切换目录、查询文件列表、发起下载、上传完成、最后退出所有这些动作的“指令”都走这条连接。你可以把它想象成一条对讲机通道双方一直在互相喊话“我要进这个目录”“好的你进了”“我要下载这个文件”“好的我准备发数据了”。这里有一个关键点控制连接只负责传命令和状态码它本身不传文件内容。文件内容走的是另一条连接。为什么要这样设计因为文件传输可能很大、很慢如果命令和文件数据混在一起服务器就很难在传输大文件的同时响应其他命令。分开之后控制连接始终保持轻量和及时响应数据连接专门负责搬运字节流互不干扰。2.2 数据连接临时开一条“货运专线”当客户端发出需要传输数据的命令时比如LIST列出目录、RETR下载文件、STOR上传文件服务器和客户端之间会临时建立第二条TCP连接这就是数据连接。这条连接专门用来传目录列表、文件内容这些实际数据。数据连接的生命周期很短需要传数据时建立传完就关闭。下一次再传再重新建立。这就像你叫了一辆货车来搬东西搬完货车就走了下次要搬再叫一辆。但问题来了这条数据连接到底是谁主动连谁是客户端连服务器还是服务器连客户端这个问题的答案就是FTP里最容易被搞混的主动模式和被动模式的区别。2.3 主动模式服务器回头连客户端在主动模式下客户端在控制连接上发送PORT命令告诉服务器“我这边开了一个端口你连过来吧。”服务器收到之后会从自己的20端口主动向客户端指定的那个端口发起TCP连接建立数据连接。这个模式的名字叫“主动”是因为服务器主动发起数据连接。听起来很合理但在实际网络环境里它经常出问题。原因很简单现在绝大多数客户端都在防火墙或NAT设备后面。服务器从外面主动连客户端的某个端口这个连接请求很可能被客户端的防火墙直接挡掉或者NAT设备不知道怎么转发。结果就是控制连接好好的命令也能发但一到要传数据的时候就卡住最后超时失败。我见过很多次这种情况用户说“FTP能登录能看到目录但下载文件就卡死”。一问用的就是主动模式。这不是FTP坏了而是网络环境变了主动模式的设计假设——客户端有公网可达的地址——在今天的互联网上往往不成立。2.4 被动模式客户端连服务器的临时端口被动模式就是为了解决这个问题而出现的。在被动模式下客户端不再告诉服务器“你连我”而是发送PASV命令意思是“你开一个端口告诉我地址和端口号我来连你。”服务器收到PASV后会在自己这边随机开一个临时端口然后通过控制连接把IP和端口号返回给客户端。客户端拿到之后主动向服务器的这个临时端口发起数据连接。这样一来数据连接的方向就反过来了客户端主动连服务器。对于客户端来说它主动往外连防火墙通常不会拦对于服务器来说它只需要开放一个端口范围给客户端连入就行。这个模式在今天的网络环境下适应性好得多所以绝大多数FTP客户端默认都用被动模式。但被动模式也不是没有坑。服务器返回的那个IP地址有时候是内网地址客户端拿到之后根本连不上。这种情况在服务器位于NAT后面时特别常见。服务器以为自己有公网IP就把内网IP返回给客户端客户端拿着一个192.168.x.x的地址去连当然连不上。这时候就需要在服务器端配置一个公网IP地址让它在被动模式下返回正确的地址。2.5 两种模式的对比与选择对比项主动模式被动模式数据连接发起方服务器主动连客户端客户端主动连服务器客户端防火墙友好度差容易被拦好主动出站通常允许服务器防火墙配置只需开放21和20需要开放21和一个端口范围NAT环境适应性差客户端需公网可达较好但服务器需正确返回公网IP常见使用场景内网、老式客户端公网、现代客户端默认实际工作中我的建议很直接优先用被动模式。如果被动模式连不上再检查服务器端的被动端口范围有没有开放、返回的IP是不是公网地址。主动模式只在完全可控的内网环境里才考虑比如两台机器在同一个交换机下没有防火墙干扰。3. 一条FTP命令从发出到文件落地中间经历了什么3.1 登录阶段USER、PASS和权限校验FTP会话的第一步是登录。客户端连上服务器的21端口后服务器会先返回一个220状态码表示服务就绪。然后客户端发送USER命令带上用户名服务器返回331表示需要密码客户端再发送PASS命令带上密码。如果用户名和密码正确服务器返回230登录成功。这个过程看起来简单但有几个细节值得注意。第一FTP的密码在控制连接上是明文传输的。这是FTP协议本身的设计缺陷因为它诞生在互联网早期那时候安全性还不是首要考虑。后来出现了FTPSFTP over SSL/TLS和SFTPSSH File Transfer Protocol来解决这个问题但那是另外的话题了。第二匿名FTP是一种特殊配置用户用anonymous作为用户名密码通常填邮箱地址服务器会允许有限制的访问。很多公共软件下载站就是用匿名FTP来提供文件的。登录成功之后服务器会根据配置给这个用户分配一个根目录。用户看到的/其实是服务器上的某个物理目录用户不能越界访问。这个根目录的映射关系是FTP服务器权限控制的基础。3.2 目录操作PWD、CWD、LIST背后的交互登录之后你通常会先看看当前在哪个目录用PWD命令服务器返回257 / is current directory。然后你想进某个子目录用CWD upload服务器返回250 Directory successfully changed。这些命令都走控制连接一来一回很快。当你执行LIST命令时事情就稍微复杂一点了。客户端发送LIST服务器返回150 Opening data connection表示数据连接正在建立。然后服务器通过数据连接把目录列表发过来发完之后在控制连接上返回226 Transfer complete。客户端收到226就知道列表传完了可以关闭数据连接。这里有一个常见的误解很多人以为LIST的结果是直接在控制连接上返回的。不是的。LIST的输出走的是数据连接。如果你用抓包工具看会发现控制连接上只有150和226这两个状态码真正的文件列表在另一条连接上。这也是为什么主动/被动模式配置错误时LIST命令会卡住——因为数据连接建不起来。3.3 文件下载RETR命令与数据连接的建立下载文件用RETR命令后面跟文件名。客户端发送RETR report.pdf服务器返回150 Opening data connection然后通过数据连接把文件内容推过来。客户端一边接收一边写入本地文件收完之后服务器在控制连接上返回226 Transfer complete。这个过程里数据连接是二进制安全的。FTP有两种传输模式ASCII模式和二进制模式。ASCII模式会对文本文件做换行符转换比如把Unix的\n转成Windows的\r\n。二进制模式则原样传输不做任何转换。如果你传的是图片、压缩包、可执行文件必须用二进制模式否则文件会损坏。很多FTP客户端会根据文件扩展名自动判断但有时候判断不准手动切换一下更保险。我踩过一次坑用ASCII模式传了一个二进制文件传完之后文件大小变了打开是乱码。后来改成二进制模式重新传一切正常。这个教训让我养成了一个习惯不确定的时候一律用二进制模式。对于文本文件二进制模式传过去也不会坏只是换行符保持原样而已现在的编辑器基本都能处理。3.4 文件上传STOR命令与覆盖策略上传文件用STOR命令。客户端发送STOR newfile.txt服务器返回150然后客户端通过数据连接把文件内容推给服务器服务器写入磁盘完成后返回226。上传时有一个重要问题如果服务器上已经存在同名文件STOR会直接覆盖不会询问。这意味着如果你不小心传了一个同名但内容不同的文件原来的文件就没了。有些FTP服务器支持APPE命令用于追加内容而不是覆盖还有STOU命令让服务器自动生成一个不冲突的文件名。但在大多数场景下覆盖是默认行为操作前确认清楚是必要的。另外上传时的权限问题也很常见。服务器上的目标目录可能对当前FTP用户没有写权限这时候STOR会返回550 Permission denied。这不是网络问题而是文件系统权限问题需要去服务器上检查目录的属主和权限位。3.5 断开连接QUIT与连接清理所有操作完成后客户端发送QUIT服务器返回221 Goodbye然后关闭控制连接。如果数据连接还开着也会被一并关闭。一个规范的FTP客户端会在退出前确保所有数据传输完成不会中途强行断开。但实际中有时候网络闪断或者客户端崩溃控制连接会异常断开。服务器端通常有超时机制一段时间没有命令交互就会自动清理会话。这个超时时间可以配置太短会导致大文件传输中途被断太长会占用服务器资源。一般设置几分钟到十几分钟比较合理。4. 那些年我们踩过的FTP坑从连不上到传不动4.1 能登录但LIST卡死被动模式端口没开这是最经典的FTP问题。客户端能连上21端口能输入用户名密码能登录成功但一执行LIST就卡住最后超时。原因几乎可以确定数据连接建不起来。如果用的是被动模式服务器在收到PASV后会开一个临时端口等待客户端来连。如果服务器的防火墙没有开放这个端口范围客户端连不上LIST就会一直等。解决办法是在服务器防火墙里开放被动模式配置的端口范围比如50000-51000同时在FTP服务器配置文件里指定这个范围。如果用的是主动模式服务器会主动连客户端的某个端口。如果客户端在NAT后面这个连接请求到不了客户端同样会卡住。解决办法是改用被动模式或者在客户端网络里做端口映射。排查这个问题有一个简单方法用telnet或nc手动连一下服务器返回的被动端口看能不能通。如果不通就是防火墙或网络策略的问题。4.2 被动模式返回内网IPNAT环境下的地址错误服务器在NAT后面时它自己感知到的IP是内网地址比如10.0.0.5。当客户端发送PASV时服务器会把这个内网IP返回给客户端。客户端拿到10.0.0.5去连如果客户端不在同一个内网里这个地址根本不可达。解决办法是在FTP服务器配置里指定一个公网IP让它在被动模式下返回这个公网地址。不同服务器的配置项名称不一样有的叫pasv_address有的叫PassivePortRange配合MasqueradeAddress。配置好之后服务器返回给客户端的就是公网IP客户端就能连上了。这个问题在云服务器上特别常见。云主机通常有内网IP和公网IP两个地址FTP服务器默认绑定内网IP返回的也是内网IP。如果不做额外配置外网客户端用被动模式就会失败。4.3 传输大文件中途断开超时与缓冲区设置传一个几百兆甚至几个G的文件时有时候传到一半就断了。原因可能有几个一是控制连接超时服务器在数据连接传输期间没有收到控制连接上的命令以为客户端掉线了就把会话清理了。解决办法是调整服务器的空闲超时时间或者让客户端在传输期间定期发送NOOP命令保持连接活跃。二是数据连接的缓冲区设置不合理。缓冲区太小会导致频繁的系统调用传输效率低缓冲区太大可能占用过多内存。一般设置成64KB到256KB比较平衡。这个参数在服务器和客户端都可以调具体看软件文档。三是网络本身不稳定。FTP协议本身没有断点续传机制断了就得重来。但很多FTP客户端支持REST命令可以从指定偏移量继续下载。如果服务器也支持REST就可以实现断点续传。不过这个功能需要双方都支持不是所有场景都能用。4.4 中文文件名乱码编码问题的根源用FTP传中文文件名的文件时经常出现乱码。原因是FTP协议最初没有规定文件名编码不同服务器和客户端用的编码可能不一样。有的用UTF-8有的用GBK有的用Latin-1。客户端用UTF-8发过去服务器用GBK解读就乱了。解决办法是统一编码。现代FTP服务器大多支持UTF-8可以在配置里开启。客户端也要设置成UTF-8。如果服务器只支持GBK那客户端也得跟着用GBK。关键是两边要一致。如果实在统一不了就尽量避免用中文文件名用英文或数字代替这是最省事的做法。4.5 权限问题550错误的各种面孔550是FTP里最常见的错误码之一意思是“请求的操作未执行”。它可能对应多种原因文件不存在、目录不存在、没有读权限、没有写权限、磁盘满了、文件被占用等等。看到550不要慌先看后面的说明文字通常会写具体原因。如果是550 Permission denied那就是权限问题。检查FTP用户对目标目录有没有相应的读或写权限。如果是550 Failed to open file可能是文件被其他进程占用了或者磁盘空间不足。如果是550 No such file or directory那就是路径写错了。排查权限问题时可以先用ls -l看看目录和文件的权限位再用id看看FTP进程运行在哪个用户下然后判断这个用户有没有权限。有时候是SELinux或AppArmor在拦截那就需要额外配置安全策略。5. 从协议原理到实际选型FTP在今天还能怎么用5.1 FTP、FTPS、SFTP名字像但本质不同很多人把FTP、FTPS、SFTP混为一谈其实它们差别很大。FTP是明文传输控制连接和数据连接都不加密。FTPS是在FTP基础上加了SSL/TLS加密相当于HTTPS之于HTTP的关系。SFTP则完全不是FTP的加密版它是SSH协议的一个子系统走的是22端口跟FTP没有任何关系。特性FTPFTPSSFTP加密无SSL/TLSSSH默认端口2121控制22数据连接独立连接独立连接复用SSH连接防火墙友好度差差好配置复杂度低中中如果只是内网传文件FTP够用。如果要跨公网传敏感数据至少要用FTPS或SFTP。SFTP因为复用SSH连接只需要一个端口防火墙配置简单得多现在越来越受欢迎。但SFTP在传输大量小文件时性能不如FTP因为每个文件操作都要在SSH通道里来回交互。5.2 被动端口范围怎么规划才合理配置被动模式时需要指定一个端口范围。这个范围不能太小否则并发连接多了会不够用也不能太大否则防火墙规则太宽泛。一般建议至少预留100个端口比如50000-50100。如果并发用户多可以扩大到1000个。端口范围的选择还要考虑服务器上其他服务的占用情况。用netstat或ss命令看一下哪些端口已经被占用了避开它们。另外如果服务器在云平台上安全组规则也要同步开放这个范围否则防火墙开了也没用。还有一个细节被动模式返回的IP地址。如果服务器有多个网卡或多个IP要确保返回的是客户端能访问到的那个IP。有些FTP服务器支持根据客户端来源自动选择返回的IP这个功能在复杂网络环境里很有用。5.3 日志怎么看从227和150状态码定位问题FTP服务器的日志里会记录每次会话的详细过程包括客户端IP、执行的命令、返回的状态码、传输的字节数等。学会看日志排查问题会快很多。几个关键状态码227是PASV命令的响应后面跟着被动模式的IP和端口如果客户端连不上这个地址问题就出在这里。150表示数据连接即将打开如果看到150之后没有226说明数据传输中途失败了。425表示无法打开数据连接通常是防火墙或端口问题。530表示登录失败用户名或密码错误。我一般排查FTP问题的顺序是先看能不能连上21端口再看能不能登录再看PASV返回的地址和端口能不能连通最后看数据传输有没有完成。这个顺序能覆盖绝大多数问题。5.4 替代方案什么时候不该用FTPFTP虽然经典但并不是所有场景都适合。如果需要频繁同步大量文件rsync更合适它支持增量传输和断点续传。如果需要在脚本里自动化上传下载curl和wget对FTP的支持也很好而且更容易集成到CI/CD流程里。如果是在Web应用里让用户上传文件直接用HTTP的multipart/form-data更简单不需要额外开FTP服务。我的经验是FTP适合“人手动传文件”的场景比如运维人员把备份文件拉到本地或者设计师把素材传到服务器。一旦涉及到自动化、高频、大量文件的场景就应该考虑更现代的方案。这不是说FTP不好而是每个工具都有它最适合的边界。6. 写在最后关于FTP的一点个人体会我用了很多年FTP从最早的命令行客户端到后来的图形化工具再到各种编程语言里的FTP库。这个东西给人的感觉是“简单”但真正用起来坑一点都不少。它的简单是表面的底层那些连接模式、端口协商、编码问题、权限控制每一个都能让人折腾半天。但正是这些坑让我对网络协议的理解深入了很多。FTP把控制流和数据流分开的设计虽然带来了主动/被动模式的复杂性但也让我明白了“关注点分离”在协议设计里的价值。后来看其他协议的时候我会下意识地想它是怎么处理控制面和数据面的它的连接是谁发起的它在NAT环境下怎么工作这些问题意识都是从踩FTP的坑里练出来的。如果你现在还在用FTP我的建议是把被动模式配好把端口范围规划清楚把编码统一成UTF-8然后尽量用二进制模式传文件。这几件事做好了90%的问题都不会遇到。剩下的10%看日志、抓包、逐步排查总能找到原因。FTP不复杂复杂的是它运行的那个网络环境。理解了环境就理解了FTP。

相关新闻

LangChain入门:手把手教你开发AI Agent,小白也能快速上手(收藏版)

LangChain入门:手把手教你开发AI Agent,小白也能快速上手(收藏版)

本文为Python AI Agent开发实战系列教程首篇,全面介绍了LangChain框架的诞生背景、核心特点(统一模型接口、模块化架构、智能体工具调用、记忆管理)及丰富应用场景(如RAG、Agent构建、对话系统等)。通过一个天气查询Ag…

2026/10/16 3:11:01 阅读更多 →
小白程序员必看!掌握Karpathy Loop与自身改进1000倍的秘诀,收藏提升技能!

小白程序员必看!掌握Karpathy Loop与自身改进1000倍的秘诀,收藏提升技能!

本文探讨了如何通过验证器让Agent持续试错,以及多Agent协作时遇到的协调和记忆问题。介绍了Git提交DAG、结构化工件和知识图谱如何解决这些问题,并指导读者在何时引入图技术。核心在于建立可测量、可回退、可复现的验证闭环,当协调和共享事实…

2026/10/16 3:11:01 阅读更多 →
小程序逆向分析实战:从解包到签名拆解与安全反馈

小程序逆向分析实战:从解包到签名拆解与安全反馈

小程序逆向分析这件事,乍一听有点像地下实验室里才发生的事,实际上它跟拆一台旧家电、顺着电路板看元器件布局没什么两样。前阵子因为一直在研究某家电品牌的官方小程序,我完整走了一遍“拿到小程序包、还原逻辑代码、拆解请求签名、反馈安全…

2026/10/16 3:11:01 阅读更多 →

最新新闻

光储充换电站分时电价双层优化模型及Matlab实现

光储充换电站分时电价双层优化模型及Matlab实现

光储充换电站和分时电价互动这两件事,放在一起研究的论文和代码我见过不少,但真正能把“用户充电负荷”这个变量建模得当、又能在Matlab里跑通寻优的,确实不算多。这个标题对应的方向,简单说就是:站在运营商的视角&…

2026/10/16 4:47:24 阅读更多 →
Kafka与ZooKeeper的关系及bootstrap.servers配置详解:从旧架构到KRaft模式

Kafka与ZooKeeper的关系及bootstrap.servers配置详解:从旧架构到KRaft模式

1. 先讲清楚Kafka和ZooKeeper到底什么关系很多刚接触Kafka的人都会被一件事搞糊涂:Kafka不是号称"去ZooKeeper化"了吗?为什么配置里还有一个KAFKA_ZOOKEEPER_CONNECT?更离谱的是,生产者和消费者的配置里写的却是bootstr…

2026/10/16 4:47:24 阅读更多 →
公众号+题库小程序:从内容池到变现闭环的实操指南

公众号+题库小程序:从内容池到变现闭环的实操指南

“公众号是内容池,题库小程序是印钞机”,这句话我第一次听到时,是在和一个做考证培训的同行聊天。当时觉得夸张,但自己真把一个公众号和一个题库小程序跑起来之后,才发现这话糙理不糙。公众号负责沉淀内容和信任&#…

2026/10/16 4:47:24 阅读更多 →
把Claude API变成工程流程:本地自动化代码助手实践

把Claude API变成工程流程:本地自动化代码助手实践

如果你的工作流还停留在把代码复制到聊天对话框、再把结果复制回编辑器,那这个标题值得你仔细看完。我第一次在代码仓库里看到free-claude-code这个名字时,以为又是一个套壳的“AI 写代码”玩具。可把它拆开跑了一遍才发现,真正值钱的不是那几…

2026/10/16 4:47:24 阅读更多 →
Deepin安装oh-my-zsh完整指南:避坑与配置详解

Deepin安装oh-my-zsh完整指南:避坑与配置详解

说实话,在Deepin上安装oh-my-zsh这件事,我前前后后折腾过三次,这次是第四次,才算是把整个流程彻底捋顺了。Deepin本身是个很省心的Linux发行版,开箱即用,但对经常在终端里干活的人来说,默认的ba…

2026/10/16 4:47:24 阅读更多 →
酉空间核心解析:内积、埃尔米特矩阵与酉对角化

酉空间核心解析:内积、埃尔米特矩阵与酉对角化

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 4:46:24 阅读更多 →

日新闻

个人 AI Agent 平台接入 TaoToken:统一 Key 与 API 通道的配置大纲

个人 AI Agent 平台接入 TaoToken:统一 Key 与 API 通道的配置大纲

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 0:00:05 阅读更多 →
信号与系统频域分析作业解题指南

信号与系统频域分析作业解题指南

1. 作业背景与核心要求解析信号与系统作为电子信息类专业的核心基础课,其作业设计往往直接关联课程的核心知识框架。2026年春季第六次作业的布置,通常对应着课程进展到频域分析的关键阶段。根据常规教学进度推测,本次作业可能涉及以下核心内容…

2026/10/16 0:00:05 阅读更多 →
Django MVT实战:从零构建图书借阅系统,彻底搞懂Model-View-Template分层

Django MVT实战:从零构建图书借阅系统,彻底搞懂Model-View-Template分层

1. 从一个"四不像"的练手项目说起如果你已经看完了Django的官方教程前几章,跟着敲完了投票应用,大概会有一种"我好像会了,又好像什么都不会"的割裂感。教程里每个知识点都是拆开的——这一章讲模型,下一章讲视…

2026/10/16 0:00:05 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/15 16:18:54 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/15 19:41:51 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/15 13:48:15 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 0:14:36 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 3:49:43 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 9:49:14 阅读更多 →