ARP协议详解:从IP到MAC的地址解析原理与网络排障实战

1. ARP到底在解决什么问题

1.1 网络世界里的两套“门牌号”

干网络这一行,尤其是日常维护和排查链路问题的时候,你早晚会撞上一个看似基础却极其关键的概念——ARP,全称Address Resolution Protocol,地址解析协议。我在刚开始接触组网那阵子,以为它就是“把IP换成MAC”这么简单,直到有次线上业务访问时通时断,抓包看到一堆重复ARP应答,才意识到这个协议没摸透,网络故障排查起来有多被动。

先说清楚它到底在解决什么问题。一个网络设备要通信,其实需要两套“门牌号”。一套是IP地址,它负责逻辑定位,告诉网络“我在哪个网段、我是哪台主机”,这个地址是可以人为规划、随意改动的。另一套是MAC地址,也叫物理地址,它出厂时烧在网卡里,负责数据链路层的物理定位,通俗地说就是“在同一个局域网内,数据帧该送到哪个网卡设备上”。

这两套地址必须配合使用。IP地址让数据包跨网段时能被路由,MAC地址让数据帧在每段链路上真正落到目标设备。问题就来了:上层应用只知道目标IP,比如你ping 192.168.1.1,操作系统知道你是在跟192.168.1.1通信,可真正把数据封装成帧、丢到网线上的时候,以太网帧头里必须填上目标MAC地址。如果这台设备的MAC地址你不知道,这事就没法进行下去。

ARP就是为这个“从已知IP找未知MAC”的过程而生的。它自动维护一张映射表,把IP地址和MAC地址对应起来,让上层协议可以透明地通信,不需要你手工去查每台设备的网卡编号。

1.2 为什么不能直接绕开ARP

有人可能会问,既然这么麻烦,干脆只用一个地址不行吗?答案没那么简单。

如果只用MAC地址,那路由器的转发规模根本无法接受。MAC地址是全球唯一的,但它的结构没有任何地理或层级关系,没有“前缀可聚合”这一说,每个路由器如果靠MAC转发,就得记住全网所有设备的MAC,交换机上的转发表也会爆炸。而且MAC地址是在网卡出厂时决定的,用户改不了,你换了一台电脑,MAC地址就变了,网络的管理和定位会变得非常痛苦。

如果只用IP地址呢,也不行。以太网这种二层链路,本身就不知道什么叫“网段”,它只认帧头里的目的MAC。数据帧送到设备上,网卡得先判断“这个帧是不是给我的”,判断依据就是MAC地址。没有第二层地址,网卡面对每一帧都得往上送让CPU去解IP头,性能直接崩掉。

所以网络协议栈设计了两层地址体系,IP负责逻辑规划,MAC负责物理交付,ARP则充当这两个世界之间的翻译。理解了这个背景,你就明白ARP不是“额外负担”,而是必不可少的基础设施。它更像一个小区里的门牌对照表:IP是业主姓名,MAC是房间钥匙号,你要把快递送到正确房间,必须先查清楚姓名对应的房间号。

2. ARP完整的工作流程:从一次ping说起

2.1 同一网段下的一次“点名”

讲清ARP机制,最好的方式是看一次真实的通信过程。比如你在电脑上ping同一网段的一台服务器,IP是192.168.1.10,你自己的IP是192.168.1.5。

第一步,操作系统先查自己的ARP缓存表,看看有没有192.168.1.10对应的MAC地址。如果缓存里有,直接封装以太网帧发出去,整个过程压根不会再发ARP请求。这也是为什么第二次ping通常比第一次快。

如果缓存里没有,OK,ARP先生上场了。主机A构造一个ARP请求报文,里面核心字段是:发送方MAC(就是主机A自己的MAC)、发送方IP(192.168.1.5)、目标IP(192.168.1.10)、目标MAC这里填全零。然后把这个报文封装在以太网帧里,目的MAC地址填FF:FF:FF:FF:FF:FF,也就是广播地址,在本地网段里广播出去。

这里有几个细节值得注意。第一,ARP请求是以太网广播帧,所有在同一广播域内的主机都能收到这个帧。第二,收到帧的主机网卡先检查目的MAC,发现是广播地址,就会把帧交给上层协议栈去处理。第三,协议栈拆开ARP报文后,只看目标IP是不是自己,不是自己就直接丢弃,不回应。

当192.168.1.10那台服务器收到请求,发现自己正是目标IP,它就会记录下请求方(192.168.1.5)的IP和MAC对应关系,放进自己的缓存表,然后构造一个ARP应答报文。应答报文里的目标IP填192.168.1.5,目标MAC填刚学到的MAC地址,以单播方式发回去。注意,应答不是广播,因为发送方已经在请求中知道了对方的MAC。

主机A收到应答,把192.168.1.5和对应MAC的映射写进自己的缓存,随后正式发送ping的数据包。整个过程一共只有两个ARP报文,一请求一应答,后续通信全走缓存,不问路了。

2.2 跨网段时的ARP行为和网关的角色

上面说的是同网段通信。如果你ping一个不在自己网段的IP,比如从192.168.1.5去ping 10.0.0.8,情况就不一样了。主机会先把目标IP和自己掩码做与运算,发现目标不在同一广播域,于是不再查找目标IP的MAC地址,而是查找默认网关的MAC。

操作系统会把数据包先交给网关,具体流程是这样的:查路由表,匹配默认路由,确定下一跳是192.168.1.1;ARP解析的目标不是10.0.0.8,而是192.168.1.1的MAC;拿到网关MAC后,把数据帧的目的MAC填成网关MAC,源MAC填自己的MAC,然后丢到链路上。网关收到帧后拆开看是IP包,根据路由表继续往下一跳转发,每经过一跳,源MAC和目标MAC都会被改写,但源IP和目标IP全程不变。

这个特点经常被忽略,却极其重要。排查跨网段不通时,不少人上来就抓包查“IP包有没有到目标服务器”,却忘了先验证网关的ARP是否正常。我见过太多案例,业务系统反复宣称“链路断了”,最后发现只是网关设备ARP缓存老化或绑错,二层始终没通。

2.3 ARP报文结构与关键字段解读

ARP报文不长,但每个字段都有讲究。标准Ethernet II帧里,ARP报文加在帧头的Type字段之后,总共28字节,分布在如下字段中:

字段长度说明
硬件类型2字节链路类型,以太网为1
协议类型2字节上层协议,IPv4为0x0800
硬件地址长度1字节MAC地址长度,通常为6
协议地址长度1字节IP地址长度,通常为4
操作码2字节1表示请求,2表示应答,3/4为RARP
发送方MAC6字节发起方物理地址
发送方IP4字节发起方逻辑地址
目标MAC6字节请求时全零
目标IP4字节被解析方逻辑地址

整个ARP报文28字节,加上以太网头14字节共42字节,不足以太网最小帧长60字节时还需要补齐填充字段。

抓包的时候你重点看三样东西:操作码是1还是2,目标MAC是否为全零,应答报文里的发送方MAC和IP是否对应正确。有一次我定位一个神秘断网问题,抓包发现ARP应答来了但MAC地址和IP对应关系完全不对,一查是某台设备被改了静态ARP,这种畸形应答在Wireshark里一眼就能看出来。

3. 亲手验证ARP机制:几种实用的实操方法

3.1 查看和管理本机的ARP缓存

纸上谈兵没意思,真正吃透一个协议,得亲手把它“摸”一遍。最简单的办法,就是查看自己电脑上的ARP缓存表。

Windows系统,命令很简单:

arp -a

你会看到类似这样的输出:

接口: 192.168.1.5 --- 0x5 互联网地址 物理地址 类型 192.168.1.1 a4-5e-60-8a-2b-1c 动态 192.168.1.10 30-9c-23-14-77-08 动态 224.0.0.22 01-00-5e-00-00-16 静态

这里的“动态”是指通过ARP协议自动学习并会超时老化的条目,“静态”一般是系统保留或手工绑定的条目。类型里还可能出现“static”,如果是手工添加的能看到。

Linux/macOS系统,用ip命令更直观:

ip neigh show

输出是这样的:

192.168.1.1 dev eth0 lladdr a4:5e:60:8a:2b:1c REACHABLE 192.168.1.10 dev eth0 lladdr 30:9c:23:14:77:08 STALE

状态字段很有讲究。REACHABLE表示最近确认过这个邻居可达;STALE表示缓存条目已超时但还在表里,下次要用需要重新探测;DELAY表示正在确认过程中。我第一次看到STALE还以为缓存有问题,后来才明白这只是半衰期的正常状态。

想手动清空缓存做测试,Windows用arp -d *,Linux用ip neigh flush all。清空之后再ping一台设备,抓包就能看到完整的ARP请求和应答过程。

3.2 用抓包工具观察ARP的完整交互

光看缓存表还是不过瘾,建议直接上抓包工具,把ARP交互过程完完整整看一遍。操作步骤不复杂,先打开抓包软件,过滤条件填arp,然后打开一个命令行窗口去ping另一台设备。注意抓包前最好把本机ARP缓存清掉,否则可能没有ARP请求发出。

你会在抓包结果里看到一条请求和一条应答,请求帧的目的MAC是广播地址,应答帧是单播。这里有个值得注意的细节,Wireshark对ARP报文的解析非常清楚,它会显示“Who has 192.168.1.10? Tell 192.168.1.5”这样可读性很强的描述,底层就是操作码为1的请求。应答对应的描述是“192.168.1.10 is at 30:9c:23:14:77:08”,操作码为2。

我还建议你测一下免费ARP(Gratuitous ARP)。当一台设备IP地址配置完成、或网卡状态从down变为up时,它会主动发送一个ARP请求,目标IP是自己的IP,目标MAC是全零。这种报文不是为了“找自己”,而是告诉整个广播域:这个IP是我在用,你们把缓存更新一下。抓包时你会看到一台主机的IP频繁出现在ARP请求的发送方IP和目标IP两个字段里。

免费ARP在实际运维中作用很大,比如VRRP虚拟路由冗余协议的主备切换、Windows系统IP冲突检测,都会用到它。如果你看到一台设备反复发送免费ARP,通常是它检测到IP地址冲突,或者正向网络中通告自己的地址变更。

3.3 手动构造ARP报文会是什么体验

如果你想更深入地理解ARP机制本身,而不是停留在工具层面,我推荐一个实验:不通过系统协议栈,手工构造一个ARP请求报文。这个实验做一次,你对ARP的理解会比看十篇文章都深刻。

用Python的scapy库可以轻松做到:

from scapy.all import Ether, ARP, sendp packet = Ether(dst="ff:ff:ff:ff:ff:ff") / ARP( op=1, hwsrc="00:11:22:33:44:55", psrc="192.168.1.99", hwdst="00:00:00:00:00:00", pdst="192.168.1.10" ) sendp(packet, iface="eth0")

这个报文发送出去以后,如果你在另一台机器上抓包,会发现一个奇怪的现象:一个本来不存在的主机192.168.1.99在询问192.168.1.10的MAC地址。这台被询问的机器会照样回复,而且会把192.168.1.99和MAC地址00:11:22:33:44:55记到缓存里。这其实就是ARP协议的一大特性,它对请求完全信任,不做任何身份校验。

我建议你还可以尝试构造一个不请自来的ARP应答报文,把某个合法IP对应到一个错误MAC上,然后在真机间互相ping一下。你会看到通信立刻中断,而排查手段只有清缓存或重启网卡。做这种实验务必在隔离测试环境里玩,千万别在办公网和生产网上搞,后面我们会细讲为什么。

3.4 缓存老化时间与静态绑定

ARP缓存不是永久的,每条记录都有生存周期,防止设备换了网卡或IP地址变更后,老映射长期占用缓存表。不同系统的默认老化时间差距很大,Windows一般在15到45秒之间,Linux的默认值在30秒左右,而不同厂商的交换机、路由器也各有策略。

在实际网络中,快速老化有助于提高地址变更的收敛速度,但也意味着同一个IP的ARP解析会更频繁,占用一定网络资源。慢速老化则会让连续通信更稳定,牺牲了对变更的实时响应能力。如果设备频繁“漂移”,比如双机热备的虚IP来回切换,正确的做法不是傻等缓存过期,而是用免费ARP主动刷新全网。

你还可以手动干预ARP缓存,这在处理固定的重要设备时很有用。Windows下添加静态ARP条目:

arp -s 192.168.1.10 30-9c-23-14-77-08

Linux下同理:

ip neigh add 192.168.1.10 lladdr 30:9c:23:14:77:08 dev eth0 nud permanent

静态条目不会被老化删除,但请谨慎使用。我有一个沉迷“稳”的同事,把公司所有服务器的ARP全绑成了静态,结果某台服务器网卡故障更换,新MAC地址在静态条目面前完全无效,全网都无法访问那台服务器,排查了一下午才反应到问题出在昨天的“加固操作”上。固定条目该用,但一定要纳入变更管理,否则就是定时炸弹。

4. ARP的安全缺陷与常见故障排查

4.1 ARP欺骗的底层原理与破绽

前面我们说过,ARP协议对收到的请求和应答报文都无条件信任,主机收到一个新的ARP应答或请求,就会默默更新自己的缓存表,不管这个消息是不是真的。这个设计让ARP在稳定环境中非常高效,但也让它成为局域网内最常见的攻击面。

ARP欺骗的基本思路很简单。攻击方伪造一个ARP应答,声称“我是网关”,把网关的IP地址绑定到自己的MAC地址上。受害主机收到这个应答后更新缓存,把去往网关的帧全部发给攻击者,攻击者再转发给真正的网关,就到了典型的中间人位置,可以抓包、篡改、窃取敏感数据。

更隐蔽的是ARP泛洪攻击。攻击者伪造大量随机IP和MAC映射,广播虚假ARP报文,受害设备的ARP缓存表被大量垃圾条目塞满,真正的条目反而存不进去,结果是整个局域网通信瘫痪。我见过小型办公网被这类手段打挂的情况,表面上看所有主机都“在线”,网线灯也亮,但互相之间就是ping不通,抓包全是满屏的ARP请求。

防御ARP欺骗,主要有几个方向:

  • 在接入交换机上配置DAI(Dynamic ARP Inspection,动态ARP检查),它的核心是结合DHCP Snooping绑定表,只允许合法的IP-MAC映射通过,非法ARP报文直接丢弃。
  • 在交换机端口上开启端口安全,限制端口上学习的MAC数量,防止攻击者接入多个伪地址。
  • 在服务器或网关设备上做静态ARP绑定,虽然维护量大,但在高风险核心设备上仍是有效手段。
  • 网络分区分段,缩小广播域,让ARP欺骗的影响范围尽量可控。

这些措施依赖设备能力,普通家用路由器和傻瓜交换机基本做不了。但最基本的意识要有:办公网内如果出现“明明连在同一台交换机上,却频繁读不到共享目录”这类诡异现象,除了链路问题,ARP安全也要纳入排查范围。

4.2 MAC地址表、ARP缓存和转发的区别

很多人经常把交换机上的MAC地址表和主机的ARP缓存表搞混,这两个东西完全不是一个层面。MAC地址表存在交换机的芯片转发表里,用于二层转发决策,它记录“哪个MAC地址从哪个端口学到的”。当交换机收到一个帧时,查看目标MAC在MAC地址表中对应的端口,然后从那个端口转发出去;查不到就向所有端口泛洪。

ARP缓存表存在主机或路由器上,用于三层地址解析,记录IP和MAC的映射关系。发送方向目标IP发送数据前,必须先查ARP缓存得到目标MAC,然后封装成帧。也就是说,主机查ARP缓存是为了“明确目的MAC是谁”,交换机查MAC地址表是为了“明确这个MAC要从哪个端口出去”。

判断网络上数据包走不通,找错方向是很常见的。比如两台主机在同一交换机上,A ping B不通,但B能看到大量来自A的广播包。这时要考虑A有没有成功解析到B的MAC,B有没有在正常情况下发出ARP应答。如果ARP应答发出了但A没收到,再回头看交换机端口是否隔离了单播帧,这属于二层策略问题。如果A收到了应答、但数据帧发出去B没反应,那问题才可能转向交换机的MAC地址表和端口状态。

4.3 常见ARP故障速查表

实操中ARP相关的问题,归纳起来就那么几类,但每类的表现形式都值得记录。我整理了一个速查表,排查时可以直接套用。

故障现象可能原因排查手段
同网段Ping不通目标IP的ARP缓存缺失,或缓存条目错误清空缓存,重新Ping并抓包看ARP请求是否有应答
跨网段Ping不通网关ARP解析失败,或网关本身被ARP欺骗查看本机arp表里网关条目,抓包确认网关是否回应ARP
能上内网、间歇性断流ARP缓存老化频繁,攻击者周期性发送欺骗报文抓包过滤arp,观察是否有大量异常单播应答
换网卡后无法通信其他设备ARP缓存里还保留旧MAC清空故障设备周边主机缓存,或让新设备主动发送免费ARP
IP地址冲突提示存在两台设备配置了相同IP抓包看免费ARP冲突检测,逐台排查网络内IP配置
防火墙开启但业务不通防火墙阻断ARP或丢弃未知单播检查防火墙日志,核对ARP策略是否放行

4.4 一个典型的ARP排查案例复盘

最后分享一个我的真实排查案例,完整走一遍ARP故障定位流程,相信对你会更有参考意义。

某次某办公室反馈突发断网,多台电脑能打开共享文档但访问互联网非常卡,部分机器已经完全打不开网页。我先看共性问题,让现场同事随机开一台电脑,查看ARP缓存里网关那一条:

arp -a | findstr 192.168.1.1

结果发现网关的MAC地址是00:1b:21:5a:3e:11,而我提前从核心交换机上查到的网关真实MAC是68:9c:70:ab:2d:44,完全对不上。基本实锤是ARP欺骗。我继续加了抓包过滤arp,果然看到一台终端的IP在持续发送大量免费ARP报文,宣称自己就是网关IP。把那台终端从交换机上隔离掉,全网立即恢复。后续处理是给核心网关做了静态ARP绑定,并在接入交换机上开启了DAI,彻底断掉这个隐患。

整个过程从上报到恢复不到半小时,核心就是先验证ARP映射再层层往下排查。如果当时一上来就重启防火墙或者打运营商电话,问题大概率还要扩散。

我自己做网络排障,有个习惯:先把ARP缓存和抓包当成前置检查项,不管故障现象是“慢”“断”“不通”,都先确认二层的解析没问题,再往三层以上走。这个习惯帮我省掉了太多无用功,也希望你在实际工作中少踩些弯路。

相关新闻

五步集成Claude和Gemini:构建高可用LLM网关

五步集成Claude和Gemini:构建高可用LLM网关

大模型接入这件事,放在两年前还是烧钱又稀罕的活儿,现在基本成了标配。但标配归标配,我见过太多团队栽在同一个地方:接一个模型跑demo沾沾自喜,等要接第二个、第三个的时候,直接被各家API的差异化打法整懵。…

2026/10/21 2:54:02 阅读更多 →
PyTorch LSTM多变量多步股票预测完整实战:从数据预处理到模型训练

PyTorch LSTM多变量多步股票预测完整实战:从数据预处理到模型训练

简介:面向金融时序预测与深度学习初学者的PyTorch LSTM多变量多步股票预测资源包,基于真实股票数据(600519.xlsx)演示从数据预处理、特征构建、序列到序列建模到多步预测与评估的完整流程,适合希望系统掌握LSTM在金融领…

2026/10/21 2:54:02 阅读更多 →
合规支付系统设计与风控实践指南

合规支付系统设计与风控实践指南

简介:这是一套面向区块链支付系统开发者与创业者的USDT跑分源码,聚焦于API监听、自动回调与三级分销功能实现,适用于数字货币支付平台搭建、稳定币交易系统二次开发及分销型SaaS产品学习。资源包含2000个文件,主体为148个PHP后端逻…

2026/10/21 2:53:02 阅读更多 →

最新新闻

芯片烧录上位机实操指南:错误代码分类排查与产线稳定避坑

芯片烧录上位机实操指南:错误代码分类排查与产线稳定避坑

Flashrunner这种上位机,操作界面上看起来就是几个窗口、几个按钮,但真正在产线或者实验室里跑起来,你会发现它背后牵扯的东西远比想象中多。芯片型号匹配、通信稳定性、目标文件格式、供电质量,甚至是一根USB线的好坏,…

2026/10/21 4:12:41 阅读更多 →
Linux下Node.js安装与环境变量配置:从PATH原理到cnpm全局安装

Linux下Node.js安装与环境变量配置:从PATH原理到cnpm全局安装

前两天刚在群里帮一个朋友排查问题,他下载了 Node.js 压缩包,解压后心里想着装好了,结果在终端里敲node -v,系统只回了一句command not found。这种场景我见过太多次:教程里写着“安装 Node.js 并配置环境变量”&#…

2026/10/21 4:12:41 阅读更多 →
轻量级可编程地图交互组件:lingbot-map设计与实践

轻量级可编程地图交互组件:lingbot-map设计与实践

1. 项目概述:一个轻量级、可嵌入的地理信息交互组件“lingbot-map”这个名字一出现,我就下意识在终端里敲了npm search lingbot-map和pypi search lingbot-map——结果是空的。再查 GitHub、GitLab 和国内主流开源平台,也没有匹配的公开仓库。…

2026/10/21 4:12:41 阅读更多 →
知识工作流自动化实践:用插件搭建输入到输出的完整闭环

知识工作流自动化实践:用插件搭建输入到输出的完整闭环

knowledge-work-plugins 这套东西,我断断续续折腾了小半年,从最初的几个零散脚本,到后来慢慢攒成一个像样的工具集,中间踩过的坑、推翻重来的设计,都挺值得拿出来聊聊的。很多做知识管理的人,工具换了一茬又…

2026/10/21 4:12:41 阅读更多 →
Kafka分区机制:高并发吞吐的基石与生产实践

Kafka分区机制:高并发吞吐的基石与生产实践

刚开始接触Kafka时,我对分区(Partition)的认知只停留在“一个Topic可以拆成多个分区”这个层面,直到某次压测让我吃了大亏:三个Broker的集群,Topic只建了三个分区,消费者组里却启动了九个消费线…

2026/10/21 4:12:41 阅读更多 →
lingbot-map:轻量级语义化地图交互组件设计与实践

lingbot-map:轻量级语义化地图交互组件设计与实践

1. 项目概述:一个轻量级、可嵌入的地理信息交互组件“lingbot-map”这个名字一出现,我就下意识在终端里敲了npm search lingbot-map和pypi -s lingbot-map——结果是空的。再查 GitHub、GitLab 和国内主流代码托管平台,也没有匹配的公开仓库。…

2026/10/21 4:11:41 阅读更多 →

日新闻

统一内存+量化:锐龙AI Max PRO 400如何本地跑320B大模型

统一内存+量化:锐龙AI Max PRO 400如何本地跑320B大模型

这段时间硬件圈和AI圈都在传一个事:AMD锐龙AI Max PRO 400系列把最高192GB统一内存搬进了PC形态的产品里,按宣传口径,本地跑320B参数的大家伙不再是纸面概念。我第一反应倒不是“内存真大”,而是这话背后的含金量——它把过去只能…

2026/10/21 0:00:11 阅读更多 →
AI助手深度使用体验:对话质量、长文本处理与指令遵循如何留住用户

AI助手深度使用体验:对话质量、长文本处理与指令遵循如何留住用户

1. 从“封号重开”这个行为说起:用户到底在追求什么“封号重开”这四个字,放在任何产品语境里都带着一股决绝的味道。一个账号从零开始积累使用记录、调教偏好、沉淀工作流,背后是大量的时间和精力成本。正常情况下,没有人愿意主动…

2026/10/21 0:00:11 阅读更多 →
ROS中YOLOv3工程落地:通信同步、坐标变换与性能调优

ROS中YOLOv3工程落地:通信同步、坐标变换与性能调优

1. 为什么在ROS里硬刚YOLOv3不是“炫技”,而是工程落地的必经之路我第一次在某高校机器人实验室看到那台搭载Jetson TX2的移动底盘原地打转、反复识别错垃圾桶时,就意识到:单纯跑通darknet_ros demo和真正让YOLOv3在ROS里“干活”&#xff0c…

2026/10/21 0:00:11 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在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 阅读更多 →