网络排查实战:常用命令、DNS与SMTP协议详解

不管是刚入行的网络工程师,还是被网络问题折磨过的开发、运维同学,ping、nslookup、tracert这些命令,以及DNS、SMTP背后的原理,都属于那种“日常在用、但鲜少系统梳理”的知识点。很多人在排查“网页打不开”“邮件发不出去”这类问题时,往往凭感觉乱试,不会把命令、协议、排查思路串成一条线。这篇文章要做的,就是把“网络常用命令 + DNS层次查询 + SMTP协议分析”这三块内容串成一个完整的动手学习项目,配合抓包和命令行实测,讲清楚每个命令在什么场景下用、输出怎么看、协议交互底层发生了什么。无论你是学生、运维新人,还是开发中需要排查网络问题的工程师,这套内容都能直接拿来做实验、落地到工作里。

1. 项目整体设计与思路拆解

1.1 为什么把命令、DNS、SMTP放在一起学

单独记命令没意义,逐条看协议文档又太枯燥。这个项目设计的核心逻辑是:用一个真实场景把它们串起来。比如“用户说网页打不开”,你排查看不到页面,第一反应是网络通不通,于是用ping验证连通性,用tracert看路径在哪一跳断了;接着怀疑域名解析有问题,用nslookup或dig查解析结果,发现DNS服务器返回异常;最后问题定位到某台服务器,需要确认某个服务端口是否开放,于是用telnet或nc探测端口。你看,这一整套排查流程里,命令是手段,DNS和TCP/IP协议是底层逻辑,把它们放在一个项目里学,知识才真正串起来了。

SMTP的分析也是同理。邮件发送失败是最常见的应用层故障,但你把telnet到25端口手工敲一遍SMTP命令,亲眼看到服务器返回的250、550、554状态码,你就会理解邮件协议不是黑盒,而是可以通过命令行直接交互的明文协议。配合Wireshark抓包,你甚至能看到一封邮件从发起连接到DATA传输再到断开的完整过程。

1.2 环境准备与工具选型

做这套实验不需要高端设备,一台普通电脑就够了。系统方面,Windows、Linux、macOS都能跑,但我的建议是准备一台Linux虚拟机或者云主机作为“目标机”,因为Linux自带的dig、tcpdump等工具实在太方便,Windows上则需要额外处理。具体环境如下:

角色系统工具用途
本机(客户端)Windows / LinuxWireshark、nslookup、ping、tracert、telnet发起查询、抓包分析、协议交互
测试主机Linux(某云主机或虚拟机)Python、Postfix(可选)、tcpdump搭建SMTP服务、验证协议
DNS测试本机dig(Linux)、nslookup(通用)层次查询实验

提示:如果你用的是Windows 10/11,telnet客户端默认没装,需要在“启用或关闭Windows功能”里勾选“Telnet客户端”。不想装的话,用Test-NetConnection(PowerShell)或者nc也行,后面会讲到替代方案。

抓包工具首选Wireshark,这是协议分析绕不开的利器。但要注意,Wireshark在Windows上抓包需要安装Npcap驱动,安装完最好重启一次系统,否则经常出现“找不到接口”的问题。另外,抓包时如果流量是加密的(如HTTPS、SMTPS),那只能看到TLS握手,看不到明文内容,所以实验SMTP时我们刻意选择不加密的25端口,明文协议才能看清交互细节。

2. 网络常用命令实战解析

2.1 连通性测试:ping 与它的输出细节

ping是最基础的连通性测试工具,基于ICMP协议发送回显请求。它验证的是“本机到目标主机IP层是否可达”,注意,是IP层,不是应用层。这意味着ping通只能说明网络层通,不能说明某个应用服务正常。

实测中最常见的坑是:ping通,但网页打不开。原因可能有很多,比如DNS解析失败、防火墙拦了80/443端口、目标服务器上的Web服务挂了,所以ping的结果只能作为参考,不能当成“服务正常”的判据。

ping的输出怎么解读?以Linux下的ping example.com为例:

PING example.com (93.184.216.34) 56(84) bytes of data. 64 bytes from 93.184.216.34: icmp_seq=1 ttl=57 time=11.4 ms

这里bytes=56是指发送的数据载荷是56字节,加上ICMP头部8字节,总共84字节;icmp_seq=1是序号,用来判断丢包;ttl=57是目标主机返回时的TTL值,这个值能帮你大致判断经过了多少跳;time=11.4 ms是往返时延。

Windows和Linux的ping参数差异也要注意。Windows下默认发送4个包,Linux默认一直发送直到Ctrl+C;Windows用-t持续发送,Linux不需要;Windows用-S指定源地址,Linux则用-I。如果你在Windows上习惯了ping -t,切到Linux会有点不适应,反过来也一样。

2.2 路由追踪:tracert / traceroute 的路径判断

tracert(Windows)和traceroute(Linux)用来探测本机到目标主机经过的路径节点。原理是利用TTL字段逐跳递增:先发送TTL=1的包,第一个路由器收到后TTL减为0,返回ICMP超时消息,这样我们就得到了第一跳的地址;再发TTL=2的包,得到第二跳地址,以此类推。

输出的每一行是一个路由节点,如果出现* * *表示这一跳没有响应,可能是节点禁用了ICMP响应,也可能是真的不通。区别方法是多试几次,如果某一跳始终超时,但下一跳有响应,那么超时的节点大概率是“静默丢弃”,可以忽略;如果从某一跳开始后面全部超时,那问题节点就可能出在这里。

实际排查时,tracert最有用的一点是帮你区分“到底是我的网络问题,还是目标服务器的问题”。比如访问某个网站很慢,ping时延又正常,但tracert发现某条链路时延突然飙升到几百毫秒,那大概率就是那个节点在“排队”。不过,如今很多大厂网络做了负载均衡和路由优化,tracert看到的路径可能不是你业务流量的真实路径,甚至会出现目标服务器故意丢弃ICMP导致全程打星号的情况,所以结果仅供参考,别一看到*就认定网络断了。

2.3 域名解析查询:nslookup 与 dig 的联合使用

nslookup是Windows上最常用的DNS查询工具,跨平台可用。基础用法就是nslookup 域名,默认会返回域名对应的A记录和使用的DNS服务器信息。如果想查询其他记录类型,在交互模式下输入set type=mx再查询,或者用set type=ns查域名服务器。

Windows下有个细节:nslookup默认使用的DNS服务器来自本机网络配置,如果你想手动指定DNS服务器,直接nslookup 域名 8.8.8.8就能指定用公共DNS查询。这在排查“本机DNS配置错误但外部DNS正常”的场景里非常常用。

Linux上我更推荐dig,因为它输出更完整、格式更清晰。dig默认输出包含查询状态(status: NOERROR)、查询的DNS服务器(SERVER)、耗时(Query time)等关键信息。最常用的是.(根域)的追踪模式(后面专门讲),以及指定记录类型的查询:

dig example.com A dig example.com MX dig example.com NS

2.4 端口探测:telnet / nc / Test-NetConnection

确认“服务是否在监听”最直接的方法是端口探测。telnet ip 端口是最经典的做法,比如telnet smtp.example.com 25,如果能连上,会看到SMTP服务器的欢迎横幅(以220开头),说明端口开放、服务在运行;如果连接超时或被拒绝,说明端口不可达。

但Windows的telnet客户端体验不佳,连接成功时窗口无提示,失败则直接报错,很多新手会误判。Linux和macOS上nc -zv ip 端口更直观:

nc -zv example.com 25

-z表示扫描模式(只测试端口不发送数据),-v是显示详细信息。成功输出succeeded,端口关闭则提示refused或timeout。

PowerShell用户还有更现代的Test-NetConnection:

Test-NetConnection example.com -Port 25

它会同时显示PingSucceeded和RemotePort Open状态,一步到位。我实际用的经验是:优先用nc和Test-NetConnection,telnet作为兜底,图形界面不太好用也不太好判断。

2.5 本机网络状态:ipconfig / netstat / arp

这四个命令通常交叉使用,用来判断本机网络配置是否正常。ipconfig(Windows)或ip addr(Linux)查看本机IP、子网掩码、网关和DNS地址。排查网络时,先确认IP是否正常获取(如果看到169.254.x.x,说明DHCP失败),网关是否正确,DNS服务器是否可通。

netstat查看本机端口监听和连接状态。比如netstat -an显示所有连接和监听端口,netstat -ano在Windows下还能看到对应的进程PID。当你说“某服务端口被占用”时,就是用它查是哪个进程占用的。Linux下还可以加-tunlp显示监听的TCP/UDP端口及对应进程名。

arp -a查看本机ARP缓存表,用于排查局域网内的IP/MAC绑定异常。有个场景:内网机器突然无法上网,ping网关也不通,查看ARP后发现网关IP对应的MAC地址与真实网关不一致——这就是ARP欺骗的典型现象。不过现在很多交换机支持DHCP Snooping和动态ARP检测,现实中遇到的机会少了,但排查思路要保留。

3. DNS层次查询:从递归到迭代的完整链路

3.1 一套域名解析到底经历了什么

很多人以为输入example.com后,浏览器直接问“负责example.com的服务器要IP”,但实际过程更曲折。DNS采用层次化结构,全球域名的解析从根域名服务器(.)开始,经过顶级域服务器(如.com、.org),再到权威域名服务器,逐级查询才能拿到最终结果。

以example.com为例,完整解析链路是:

  1. 客户端向本地配置的DNS服务器(递归解析器)发起查询,问“example.com的A记录是什么”。
  2. 递归器如果本地缓存没有,就去问根域名服务器(.):“你知道example.com的NS是谁吗?”
  3. 根服务器不直接回答,而是返回顶级域.com的NS列表,“去问com服务器吧”。
  4. 递归器再向.com顶级域服务器查询,得到example.com的权威NS服务器地址。
  5. 递归器最后向该权威NS发起查询,拿到example.com的A记录。
  6. 递归器把结果返回给客户端,并按TTL缓存一段时间。

这里有两个重要概念要区分:递归查询是客户端给DNS服务器的,DNS服务器替客户端“跑腿”查出最终结果;迭代查询是DNS服务器之间逐级询问的过程,每次只得到“下一步该问谁”的指引,而不是最终答案。也就是说,对客户端这端是递归,对服务器之间是迭代。很多人在面试时被问到“递归和迭代的区别”,你把这个链路画清楚就答出来了。

3.2 dig 实测层次查询过程

纸上谈兵没意思,用dig +trace直接看链路。在Linux上执行:

dig +trace example.com

输出会分成几个阶段,每一段都标注了查询的服务器和得到的结果。开头部分是根服务器列表(根域服务器地址),然后看到向某个根服务器发起的.查询返回了com的NS,接着向com的顶级域服务器查询返回了example.com的权威NS(比如a.iana-servers.net),最后向权威服务器查询得到最终的A记录。

如果你只想看某个域的NS记录,不关心完整链路,用dig example.com NS +short即可直接返回权威服务器列表。

实际动手时,你可以敲dig +trace www.example.com比较一下,域名层级越深(比如a.b.example.com),迭代次数越多,你就能直观理解“层次查询”的含义。记得清缓存再测,用dig +norecurse关闭递归查询,也能看到不同层级服务器的返回差异。

3.3 DNS缓存与TTL的坑

DNS结果不是永久有效的,每条记录都有TTL(Time To Live,生存时间)值,单位为秒。递归器缓存未过期的记录后,再次收到同样查询会直接返回缓存,不再向权威服务器发起迭代。这是DNS能支撑海量查询的关键。

但缓存也带来排查问题:你改了域名的解析记录,测试时却发现“还是旧的IP”,大概率就是本地缓存或递归器缓存没到期。Windows上清缓存用ipconfig /flushdns,Linux的systemd系统用systemd-resolve --flush-caches(新版为resolvectl flush-caches),macOS用sudo dscacheutil -flushcache。注意清本地缓存只能解决本机问题,如果你觉得某个公共DNS缓存有问题,换个DNS服务器试(比如临时指定114.114.114.114或8.8.8.8)也是常用手段。

提示:排查询问题时要分清“权威服务器记录”和“递归器缓存查询结果”,用dig 域名 @权威服务器可以获得最原始的记录,拿它和dig 域名(默认递归器)的结果对比,就能区分是缓存问题还是记录本身的问题。

4. SMTP协议分析与手工交互实测

4.1 SMTP协议是什么,邮件传输的核心逻辑

SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)是电子邮件发送的核心协议,它定义了邮件客户端/服务器如何把邮件推送给下一跳服务器。注意“推”这个字:SMTP的作用是把邮件从发送方“推”到接收方的邮件服务器,至于收件人怎么把邮件取下来,那是POP3/IMAP的事——这两个是“拉”协议。很多人一开始混淆,记住一句话:发邮件用SMTP,收邮件用POP3或IMAP。

SMTP工作在应用层,默认监听25端口。它基于文本命令和响应码交互,你可以用telnet直接和一个SMTP服务器“对话”。不加密的SMTP用25端口,加密的SMTPS用465端口(SSL/TLS),而STARTTLS则是在25端口上先建立明文连接、再升级为加密通道。实际邮件系统里25端口主要用于服务器之间的转发,客户端提交邮件则常用587端口。

4.2 SMTP命令与响应码速查

SMTP命令不多,但每个都关键。最常用的有:

命令含义示例
EHLO / HELO向服务器打招呼,标识客户端身份EHLO client.example.com
MAIL FROM指定发件人MAIL FROM:<sender@example.com>
RCPT TO指定收件人RCPT TO:<receiver@example.com>
DATA开始传输邮件内容DATA
内容以.结尾结束邮件数据邮件正文
QUIT断开连接QUIT
RSET重置会话RSET
NOOP保持连接NOOP

SMTP响应码是三位数字,开头第一位表示状态类型:2xx表示成功,3xx表示需要更多输入,4xx是临时失败(可以重试),5xx是永久失败(不可重试)。常见的有:

响应码含义
220服务就绪,欢迎你
221会话结束,正在关闭
250请求的命令执行成功
251用户非本地,将转发
354开始邮件输入,以.结束
421服务不可用,连接将被关闭
450邮箱被锁定,稍后重试
451处理异常,稍后重试
452存储空间不足
500语法错误,命令无法识别
550邮箱不可用(常见于收件人地址错误)
554事务失败(常被反垃圾策略返回)

4.3 用 telnet 手工发送一封邮件

纸上谈兵没意思,用自己的电脑连一次真实SMTP服务器才过瘾。整个过程相当于“人肉客户端”,逐条命令发出去看服务器如何应答。

开始前明确一点:直接连25端口往公共邮箱发信大概率被拒,因为现在主流邮件服务商对25端口限制很严,反垃圾策略也苛刻。我们这里的实操目标有两个:一是连接一个本地搭建的SMTP服务(比如Linux上用Python的smtpd模块临时起一个调试服务),二是连接公共SMTP服务器但不做实际发送,只观察握手和命令响应。

用Python在Linux上起一个调试SMTP服务器:

python3 -m smtpd -n -c DebuggingServer 127.0.0.1:25

这个服务会在控制台直接打印收到的邮件内容,不会真正投递,非常适合教学实验。启动后,另开一个终端:

telnet 127.0.0.1 25

看到220欢迎信息后,逐行输入:

EHLO test.local MAIL FROM:<alice@example.com> RCPT TO:<bob@example.com> DATA Subject: Test mail from telnet Hello Bob, this is a SMTP test. . QUIT

每一步都能看到如下响应:

220 localhost Python SMTP proxy 1.0 250 HELP 250 OK 250 OK 354 End data with <CR><LF>.<CR><LF> 250 OK 221 Bye

看到354表示服务器已经在等待邮件正文,输入完内容后单独一行点号(.)结束数据,然后收到250 OK,这封邮件就算“传输成功”了。随后切到服务端窗口,你会发现邮件原文已经打印出来。整个过程清晰展示了SMTP的会话状态机。

注意:几个特别容易踩的坑。第一,MAIL FROM和RCPT TO里必须用尖括号包裹邮箱地址,MAIL FROM:<alice@example.com>,少一对尖括号都可能触发500语法错误。第二,DATA命令本身不包含邮件内容,服务器返回354后才开始输入正文,正文结束的标志是单独一行的英文句点。第三,命令和参数之间、每行命令结束都要有空格?不,实际SMTP命令与参数之间是空格分隔,命令回车换行结束。格式一定要严格,否则服务器会返回500 Syntax error。

4.4 抓包看SMTP交互细节与坑

如果只想看协议交互但不想真的发邮件,可以用Wireshark抓包观察。在Wireshark里设置抓包过滤器为tcp port 25,然后执行一次上面telnet的过程,收工后停止抓包,过滤显示smtp,就能看到TCP流里还原出的完整对话。

这里有个明显的体验差异:telnet窗口里命令是一行行实时交互的,抓包里则能看到每条命令和响应带有的TCP序列号。SMTP基于TCP,意味着它有TCP的可靠传输和连接管理特性,你还能在报文里观察到三次握手、ACK确认,以及发送方向的交替。用Wireshark的“跟踪TCP流”功能,甚至可以一键还原出所有明文SMTP命令和响应,这就是协议分析最直观的体现。

抓包时有个细节提示:本地回环地址(127.0.0.1)的流量在Windows的Wireshark里默认可能抓不到,需要选择“Loopback: lo”接口,或者直接用npcap回环抓包。在Linux下用tcpdump -i lo port 25就没这个烦恼。如果你在虚拟机里做实验,别忘了用真机的Wireshark抓虚拟机网卡流量,不过这么搞会看到加密的SSH流量混杂,稍微有点烦——最佳方案还是在Linux里用tcpdump抓包导出pcap,再用Wireshark分析。

5. 常见问题与排查技巧实录

5.1 ping通但QQ能上、网页打不开,怎么定位

这是最让人抓狂的现象。QQ能用说明TCP/IP链路正常,问题多半出在HTTP层或DNS层。依次排查:先ping域名,如果ping不通但ping IP通,说明DNS解析有问题——用nslookup 域名看解析是否正常;如果ping域名也通、但浏览器就是打不开,再用telnet 域名 80或nc -zv 域名 80看80端口是否通,不通就可能是目标服务器的Web服务挂了或被防火墙拦截;如果端口也通,试着用curl -v http://域名看详细输出,通常能直接看到HTTP响应异常或重定向错误的位置。

5.2 抓包看不到DNS/SMTP明文?多半是加密流量

做DNS实验时,你可能会发现Wireshark里看不到“明文DNS请求”,而是显示DNS协议但内容加密,或者干脆显示为QUIC(UDP 443)——这是因为你的系统开启了DNS over HTTPS(DoH)或DNS over TLS(DoT)。Windows 11、部分浏览器默认启用DoH,要想看传统明文DNS,可以在系统DNS设置里关闭DoH选项。SMTP也是一样,如果你连接的是587/465端口,流量是TLS加密的,Wireshark里只见TLS看不到SMTP明文。想做明文实验,连接25端口,且保证对方没有强制要求STARTTLS。

5.3 SMTP 554、550 这类错误码背后的真实原因

用telnet连公共邮箱的SMTP服务器测试时,最容易遇到的是554 5.7.1 Relay access denied或550 5.1.1 User unknown。前者表示服务器不允许你中继转发——你没有身份认证,但直接报中继被拒,这是正常的,因为现在免费邮箱SMTP服务器都需要认证后才能发信;后者表示收件人不存在。排查邮件发送失败时,先看响应码:5xx开头的基本是永久性错误,改配置、改代码才能解决;4xx开头的是临时错误,等一会重试可能就好了。

如果自己搭建的Postfix发信被退,常见原因包括反向DNS(PTR)记录缺失、IP被列入垃圾邮件黑名单、SPF/DKIM签名不匹配。这些已经不是协议层问题,而是反垃圾体系对发件方信誉的考核。排错思路是先用dig -x 发信IP看有没有PTR记录,再用在线工具检测IP黑名单状态,最后检查DNS里的SPF和DKIM记录是否存在且正确。

5.4 实验环境坑:telnet删字符、控制台回车符

用telnet手工输入SMTP命令时,最常见的困扰是打错字没法退格——按Backspace会发送0x7f,有些服务器直接报500。我的建议是命令不长,一次打好再回车,错了就重新发送一整句。另一个坑是回车符:SMTP标准要求CRLF就结束一行,但有些终端只发LF。在交互测试时大部分服务器容忍LF,但在DATA阶段,结尾的.必须单独一行且以CRLF结束,这往往是手工发送邮件时最容易失败的点。实在不行就在代码里发,不要肉搏。

5.5 排查套路总结:从命令到协议,形成自己的排查顺序

我在实际工作里总结了一条排查顺序,推荐给你:先ping测连通、再nslookup查解析、然后telnet/nc测端口、接着tracert看路径、最后用抓包看应用层交互。每一步都有一票否决的能力——哪一步出现问题,就锁定在哪一层,不要跨层乱猜。这套顺序不仅适用于邮件故障,对“网页打不开”“视频连不上”“接口报超时”等大部分网络问题都有效。

6. 实验拓展与后面还能玩什么

6.1 用Python分别写一个DNS查询客户端和SMTP发送脚本

学会了手工交互后,用代码固化这些流程,能让你对协议的理解再上一个台阶。Python标准库里的socket模块可以让你自己构造DNS查询报文,虽然实际生产环境用dnspython更方便,但用原生socket手工构造一个查询包,你能直观看到报文的Header部分:标识ID、标志位(QR、Opcode、RD等),以及Question部分的QNAME编码——这是非常硬核但极有价值的练习。

SMTP发送脚本则可以直接用标准库的smtplib,或者你用纯socket手工发送命令,体会会更深。比如用smtplib发送一封带附件的邮件时,内部其实会构造MIME协议格式的邮件数据,而MIME本身就是SMTP之上的一个扩展话题,值得顺带了解。代码本身不复杂,核心价值在于理解“邮件是由信封、头和正文三部分组成的”。

6.2 把投递全链路打通:从发件人到收件人服务器

如果你有余力,可以在Linux主机上用Postfix搭建一个完整可用的邮件系统,然后自己发一封到本地账号的邮件,再用mail命令收取。这样你就把SMTP的“推”和POP3/IMAP的“拉”结合在了一起,看到发送、接收的完整闭环。真实的邮件系统还会涉及MX记录、多级转发、反垃圾过滤、内容过滤,每一样都能单独开一个实验。这个项目做完之后,基本的网络排查和协议分析能力就具备雏形了。

我个人做这套实验时最深的体会是:真正搞懂协议,不是背文档,而是亲手按过一次命令,亲眼看过一次抓包。尤其在SMTP实验里,看到自己敲下去的一行行命令换来服务器的反馈,仿佛从协议文本里听到了对话。动手、动脑、再复盘,这套方法论放到任何网络协议上都成立。最后提醒一句:实验用的服务、端口和域名,尽量都用本地模拟环境,不要对公网服务器做违规探测,这也是一个工程师最基本的职业素养。

相关新闻

Agent框架插件化机制深度拆解:从生命周期到事件总线

Agent框架插件化机制深度拆解:从生命周期到事件总线

最近我把一套开源的 Agent 框架源码完整过了一遍&#xff0c;本来没抱太大期待——市面上叫 Agent 框架的项目太多了&#xff0c;多数是把模型调用和工具函数包一层&#xff0c;换个名字就开源。但真正读下来&#xff0c;我意识到自己低估了它的插件化设计。不是那种“你写一个…

2026/10/20 16:07:27 阅读更多 →
基于Django与微信小程序的校园活动抽奖系统开发实践

基于Django与微信小程序的校园活动抽奖系统开发实践

1. 项目整体设计与核心需求拆解1.1 这个抽奖系统到底解决什么问题先说结论&#xff1a;这个系统解决的是校园活动里最让人头疼的“现场抽奖怎么搞”的问题。我见过太多活动主办方的操作方式——要么用纸质抽奖箱&#xff0c;人工抽号&#xff0c;效率低还容易被质疑公平性&…

2026/10/20 16:07:27 阅读更多 →
模型蒸馏 (Knowledge Distillation) 入门:把大模型能力“蒸“进小模型

模型蒸馏 (Knowledge Distillation) 入门:把大模型能力“蒸“进小模型

授权与合规声明 本文为作者原创技术分享&#xff0c;内容基于公开可查的工程实践与官方文档整理&#xff0c;仅用于学习交流。文中涉及的工具、命令与配置均在你自建的隔离环境中操作&#xff1b;引用第三方内容已尽量标注来源。若你对文中任何技术细节有疑问&#xff0c;以官方…

2026/10/20 16:06:26 阅读更多 →

最新新闻

Agentic Harness Workflow:从能跑通代码到可交付工程的AI编程框架

Agentic Harness Workflow:从能跑通代码到可交付工程的AI编程框架

1. 为什么"能跑通的代码"和"能交付的工程"之间隔着一道鸿沟 如果你最近半年深度用过任何一款 AI 编程助手&#xff0c;大概率经历过这样的场景&#xff1a;你让它写一个功能&#xff0c;它三下五除二吐出一大段代码&#xff0c;你复制粘贴进去&#xff0c;…

2026/10/20 17:04:26 阅读更多 →
Postman接口关联实战:从登录Token到下单的自动化流程

Postman接口关联实战:从登录Token到下单的自动化流程

某B2C在线商城的API接口文档里&#xff0c;最经典的一条业务就是“登录-选择商品加入购物车-下单”。我拿到这个需求的第一反应是&#xff1a;请求参数倒是不难&#xff0c;难在这些接口之间要传一堆动态数据&#xff0c;登录返回token、商品列表返回productId、购物车返回购物…

2026/10/20 17:04:26 阅读更多 →
Agentic Harness Workflow:用状态机+Agent工程化框架驾驭AI编码

Agentic Harness Workflow:用状态机+Agent工程化框架驾驭AI编码

1. 为什么“让AI写代码”这件事需要一套工程化框架 1.1 从“对话式写代码”到“流程化跑任务”的认知转变 过去一年多&#xff0c;我身边不少开发者对 AI Coding 的态度经历了三个阶段&#xff1a;最开始是好奇&#xff0c;拿它写个正则、补个单元测试&#xff1b;然后是依赖&…

2026/10/20 17:04:26 阅读更多 →
InstallShield中附属MSI的安装卸载实战与调试

InstallShield中附属MSI的安装卸载实战与调试

前两天帮人看一个安装包的诡异问题&#xff1a;主程序明明是装成功了&#xff0c;但被一起带上的那个MSI组件死活装不上&#xff0c;卸载的时候还赖在系统里不走。这个场景搞Windows安装包的朋友应该不陌生——主程序用InstallShield打成一个安装包&#xff0c;安装时还要顺带把…

2026/10/20 17:04:26 阅读更多 →
HUSB351快充芯片:小体积PD协议芯片的工程落地逻辑

HUSB351快充芯片:小体积PD协议芯片的工程落地逻辑

1. 从“机乐堂”供应链变动看快充芯片选型的底层逻辑最近在整理一批快充配件的BOM清单时&#xff0c;注意到一个细节&#xff1a;某款标称30W PD快充的迷你插线板&#xff0c;其协议识别模块的丝印从常见的“FP6606”悄然换成了“HUSB351”。进一步交叉查证发现&#xff0c;该产…

2026/10/20 17:04:26 阅读更多 →
MVMD联合小波阈值去噪:多通道非平稳信号MATLAB实战

MVMD联合小波阈值去噪:多通道非平稳信号MATLAB实战

简介&#xff1a;这份资源面向信号处理、故障诊断与振动监测方向的学习者和研究人员&#xff0c;提供一套基于MATLAB的完整联合去噪方案&#xff0c;用于从含噪多通道信号中恢复原始信号。核心流程涵盖MVMD多元变分模态分解、基于相关系数的有效模态筛选、小波阈值去噪、模态重…

2026/10/20 17:03:25 阅读更多 →

日新闻

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

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

2026/10/20 1:01:30 阅读更多 →
ESP32舵机控制指南:原理、多路驱动与避坑实战

ESP32舵机控制指南:原理、多路驱动与避坑实战

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

2026/10/20 1:01:30 阅读更多 →
位移法实现一阶低通滤波:单片机ADC采样降噪实战

位移法实现一阶低通滤波:单片机ADC采样降噪实战

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

2026/10/20 1:01:30 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型&#xff08;GMM&#xff09;的语音识别系统&#xff0c;很多人第一反应就是一堆数学公式&#xff0c;觉得门槛很高。但如果你真的在MATLAB里把它落地跑通&#xff0c;会发现核心其实就是三件事&#xff1a;把声音变成特征向量&#xff0c;用GMM给每个类别…

2026/10/20 10:02:13 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人&#xff0c;但落到具体操作上&#xff0c;无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程&#xff1a;对图像做反白、改调色板、彩色转灰度&#xff0c;最后把像素数据导出成txt文件。单看每一…

2026/10/19 17:32:41 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词&#xff0c;你会发现一个很有意思的现象&#xff1a;每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型&#xff0c;有人指的是运动控制系统&#xff0c;还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/20 2:50:50 阅读更多 →

月新闻

我发现了一个新思路:用 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/20 10:02:08 阅读更多 →
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/20 9:50:17 阅读更多 →
黑夜航拍船只数据集训练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/20 9:50:45 阅读更多 →