SSH连接虚拟机全攻略:配置、选型与排错指南

折腾过虚拟机的人基本都经历过这样一个场景:装好了系统,打开虚拟机窗口,用鼠标在里面点来点去,想复制一段命令却发现剪贴板不通,窗口分辨率还很别扭,等你想同时操作好几台机器的时候,更是一片混乱。后来我发现,用SSH远程连接工具连上VM虚拟机,才是真正舒服的玩法。今天这篇就专门说说这件事——为什么要这么做、怎么把前置条件配好、工具怎么选、以及第一次连接时最容易卡住的地方。

这篇内容是给两类人看的:一类是刚接触Linux虚拟机、还在忍受VM控制台窗口的同学;另一类是已经在用SSH,但偶尔遇到连接失败、想系统理清网络和配置逻辑的开发者。我会把从我实际踩坑里总结出来的经验都摆出来,尽量讲得直白,跟着操作就能跑通。

1. 为什么绕不开SSH:虚拟机控制台窗口远没有你想的那么方便

很多人一开始觉得,我明明能直接打开虚拟机的图形界面,为什么非要用SSH从外部连进去?这不脱裤子放屁吗?我当初也这么想。真正用过一阵子之后才明白,控制台窗口和SSH的体验差距,简直是天壤之别。

1.1 VM控制台窗口的三大痛点

先说复制粘贴。在虚拟机窗口里,宿主机和虚拟机之间的剪贴板经常处于“时灵时不灵”的状态。你要从网页上复制一条命令,切到虚拟机窗口里粘贴,有时候能用,换了发行版或者没装增强工具(比如VMware Tools或VBox Guest Additions)之后,直接不互通。结果就是对着屏幕手敲一长串命令,或者花十分钟去装工具。SSH连上之后,宿主机和远程会话之间复制粘贴天然就是通的,因为是走网络协议的,和剪贴板无关。

再说显示效果。虚拟机的图形界面分辨率经常很尴尬,要么拉伸变形,要么只有800x600,你想把它调大,又受到虚拟机显卡驱动的限制。SSH就不存在这个问题——纯文本终端,窗口多大,会话就多大,支持自由缩放,字号也能任意调整,看着舒服多了。

第三个痛点是多机器管理。如果你同时开两三台虚拟机做集群实验,控制台窗口来回切换能把人搞疯。窗口一多,哪台是哪台都要靠标题栏分辨。用SSH工具之后,所有会话列在侧边栏,一目了然,还能给每台机器起一个中文备注名,点一下就是一个终端,效率完全不一样。

1.2 SSH到底是什么:一条加密的远程命令通道

SSH全称是Secure Shell,它的本质是一条加密的远程命令通道。你在一台机器上运行SSH客户端,去连另一台机器上运行的SSH服务端,中间传输的所有数据都是加密的。登录时用密码或者密钥验证身份,登录成功后,你敲的每条命令都发到远程机器执行,结果传回本地终端。

这套机制的好处,用一个不太严谨但很贴切的比喻:虚拟机窗口相当于你跑到机房,坐在那台电脑前面用键盘;SSH相当于你坐在自己工位上,用一条加密专线远程操作机房的机器。后者不需要你在物理机旁边,不需要依赖图形界面,也不怕通信内容被人偷听。

2. 连接前的必修课:把虚拟机的“门牌号”搞清楚

在用SSH工具连接之前,你得先知道远端的门牌号,也就是虚拟机的IP地址。这一步看着简单,实际最容易出问题。我在帮别人排查的时候,十次里有三四次是卡在IP地址根本没搞对。

2.1 桥接和NAT:两种网络模式决定你能不能连上

VMware VirtualBox这些虚拟机软件,新建虚拟机的时候会让人选网络模式,最常见的就是NAT和桥接两种。它们直接影响宿主机能不能访问虚拟机的IP,所以必须先弄清楚差别。

NAT模式,虚拟机和宿主机在一个内部小网段里,虚拟机通过宿主机转发访问外部网络。用电话分机的逻辑来理解就很形象:所有虚拟机都是分机,宿主机是总机,分机之间能互拨,分机也能拨外线,但外部的人想直接拨到分机是进不来的。也就是说,默认NAT模式下,从宿主机往虚拟机发SSH连接,方向是不通的。

桥接模式,虚拟机和宿主机像两台并排的电脑,都接在同一个交换机上,各自从路由器拿到独立IP。对外来说,虚拟机像真实局域网里的一台机器,宿主机访问它,跟访问局域网里另一台电脑没有任何区别,SSH自然能通。

所以如果你发现怎么连都连不上,先回头确认一下虚拟机的网络模式。使用桥接模式,或者把NAT模式的虚拟网络配置成允许宿主机访问(VMware里可以直接加一条端口转发规则),都是可行方案。从新手友好程度来看,桥接模式最省心,但也依赖你所在局域网比较干净、路由器不限制设备数量。

2.2 在虚拟机里面查IP的两个命令

知道了模式,接下来要去虚拟机里面看它实际拿到的IP。打开虚拟机的终端,执行:

ip addr

重点看网卡对应的IP地址。如果主机名下方有一个192.168.x.x或10.0.x.x之类的地址,这个就是要拿来连接的门牌号。有些系统默认没有启用网卡,会看到state DOWN,这时先执行:

sudo nmcli connection up 网卡名

或者直接用ip link set 网卡名 up把网卡拉起来。

另外还有一个非常使用的工具:

hostname -I

它能直接在屏幕输出当前所有IP地址,省得在一堆输出里找半天。如果你是先在虚拟机里查好IP,再回到宿主机上用SSH工具连接,整个过程就很顺。我习惯在查IP前先确认虚拟机是开机状态,并且系统完整启动完成,不然容易白等。

2.3 动态IP的坑:今天能连上,明天为什么不行了

默认情况下,虚拟机通过DHCP自动获取IP,这意味着每次重启可能会变。你今天记住了这个IP,明天虚拟机重启之后可能就变了,SSH工具里填的还是旧地址,当然连不上。

解决这个问题有两条路。简单粗暴的,是每次重启后用hostname -I查一下新IP,更新工具里的配置。这种方案省事,但不够稳,尤其当你频繁重启、IP总变的时候,会非常烦躁。

更好的方案是给虚拟机设置一个固定的地址。实现方式有两种:一种是在虚拟机的网络配置文件里直接写死IP,让它不再依赖DHCP;另一种是在虚拟网络管理界面里为他做DHCP地址保留,确保路由器每次分配给同一虚拟机的MAC地址都下发同一个IP。后一种不会影响虚拟机的配置,体验比较优雅,适合想长期稳定使用多台虚拟机的场景。

不管用哪种方案,目标就一个:让虚拟机的IP固定下来,之后SSH工具里配置一次,后面就不用在改地址上折腾了。

3. Windows下选哪款SSH工具:横向对比和我的选型思路

很多人第一次接触SSH是在Windows的命令行里敲ssh 用户名@IP。这种方式完全可用,但有个前提:命令行窗口本身的功能比较朴素,没有会话管理、没有SFTP文件浏览、没有日志配色,用起来跟专门的SSH工具相比,体验差距明显。我推荐在Windows上装一个专门的SSH客户端工具,让连接和管理都集中在一个界面里。

3.1 几款常用工具的对比

我常看到有人纠结选哪一款。其实不用太纠结,看你的核心诉求是什么。下面是我用过之后比较客观的感受,整理成表格方便对比:

工具优点不足适合人群
Windows自带OpenSSH无需安装,命令行直连会话管理弱,多标签体验差;文件传输需配合scp偶尔远程一次的人
XShell免费版足够用,专业终端体验,多标签、颜色配置丰富需要官网注册获取免费许可;对服务器连接管理友好日常登录Linux服务器的开发者
FinalShell集成文件管理、CPU内存实时监控全功能版收费;部分功能对新手反而花哨喜欢图形化看状态的用户
MobaXterm免费版功能全面,多标签、SFTP、远程桌面都在一个窗口上部功能按钮略多;免费版有限制会话数多工具需求集于一身的人
Tabby终端界面现代,开源免费,可插件扩展部分功能需要依赖Node.js环境喜欢折腾配置的进阶玩家

横向对比后你会发现,其实没有哪一个“最好”的工具,只有最适合你习惯的那一个。对大多数人来说,选一款免费、支持多标签、集成基础的SFTP文件浏览、界面不丑陋的,就够了。

3.2 我为什么不用控制台自带工具

核心原因就一句话:控制台自带工具把“登录终端”和“传输文件”这两件事拆得太远。你在命令行里敲scp传文件,每次都要写完整的路径,传完了想看一眼远程目录下的文件,又要再敲一遍命令列目录。而像MobaXterm或FinalShell这类集成工具,左边直接是文件列表,鼠标拖拽就能上传下载,遇到要改配置文件的场景,甚至能直接在图形界面里编辑,体验完全是降维打击。

再者就是多会话管理。控制台每开一个窗口就是独立的,还没法保存分组;专用工具可以给每个会话保存好IP、用户名、备注名,右键就能连,对我们这种经常要管理三四台虚拟机的场景来说,节省下来的时间非常可观。

4. 从工具到虚拟机:首次连接完整实操拆解

接下来是最关键的部分,我把从零到一的完整流程拆开,每一步都给出明确说明,跟着走就行。我以MobaXterm为例,但这套步骤在任何SSH工具里都是相通的,只要把界面上的项目名换一下即可。

4.1 在虚拟机里启动SSH服务

连接之前,先确认虚拟机里有SSH服务端在运行。大多数主流Linux发行版默认装了OpenSSH,但有些精简版或特殊环境可能没有。在虚拟机终端里执行:

ps -ef | grep sshd

有输出说明SSH服务进程已经存在。如果没有输出,就需要手动安装。Debian系(比如Ubuntu)用:

sudo apt update sudo apt install openssh-server -y

RedHat系(比如CentOS)用:

sudo yum install openssh-server -y

装好之后启动并设置开机自启:

sudo systemctl enable --now sshd

装完后为了保险,可以再确认一下端口有没有监听:

ss -tlnp | grep :22

能看到0.0.0.0:22或[::]:22在LISTEN,说明一切正常。这一步最常见的问题,就是用精简镜像装完系统之后根本没有安装SSH服务,然后拿着工具连,报connection refused,完全摸不着头脑。

4.2 填写连接参数

回到宿主机,打开SSH工具,新建会话。需要填的量并不多:

  • 主机地址:之前查到的虚拟机IP,比如192.168.31.128
  • 端口:默认是22,除非你改过
  • 用户名:你想登录的账户,比如ubuntu或test
  • 密码:对应账户的密码(密钥登录的情况后面单独说)

填完之后先别急着保存密码,第一次建议还是手动输入一次,确认账号没问题。点击连接后,工具会弹出第一次连接的指纹确认提示,意思是想确认这个远程主机的身份是不是可信的,直接选信任/接受并保存,后续连接就不会再问。

4.3 首次登录和中文乱码问题

密码验证通过之后,你会看到Linux的Shell提示符,比如ubuntu@ubuntu:~$。这时候SSH连接就算正式建立了。输入几个基础命令验证一下:

w free -m df -h

分别查看在线用户、内存和磁盘使用率,能正常输出,说明连接完全可用。

这里有个很多人会遇到的问题:在终端里看到中文文件名变成乱码。这通常是编码设置不对。将客户端的字符编码设置从默认改成UTF-8,大部分发行版默认就是UTF-8编码,改完就正常了。XShell、MobaXterm都在会话属性里能找到字符编码选项。

4.4 配置密钥登录,彻底告别密码

如果你需要在虚拟机上频繁登录,每次都输密码有点烦,而且密码还有被键盘记录的风险。更优雅的方式是用密钥对登录,把公钥放到虚拟机上,之后连接时自动走验证,不需要手动输密码。

先在宿主机生成一对密钥:

ssh-keygen -t ed25519 -C "local-user@host" -f ~/.ssh/vm_key

一路回车(也可以为密钥设置一个口令),会生成两个文件:vm_key是私钥,自己留着;vm_key.pub是公钥,需要放到虚拟机上。

把公钥拷贝到虚拟机上:

ssh-copy-id -i ~/.ssh/vm_key.pub 用户名@虚拟机IP

这个命令会自动在你的用户目录下创建.ssh/authorized_keys文件并把公钥追加进去。下次连接的时候,在SSH工具里选择刚才生成的私钥文件,就能免密登录了。

如果没有ssh-copy-id命令(比如在Windows的某些环境下),可以手动把公钥内容追加到远程机器的~/.ssh/authorized_keys文件末尾:

mkdir -p ~/.ssh chmod 700 ~/.ssh touch ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys echo "你的公钥内容" >> ~/.ssh/authorized_keys

记住一个关键坑:~/.ssh目录权限要设置成700,authorized_keys文件权限要设置成600,否则SSH服务端会认为权限过于开放,直接拒绝公钥认证,让你去输密码,这一步我帮别人排过好几次错。

5. 连不上的排查全记录:按链路一步步定位

连接失败的时候,不要慌,也不要东点一下西点一下。我习惯按照一条链路,从最底层到最上层逐步排查,思路非常管用。这条链路依次是:虚拟机本身的状态 -> 网络能否到达 -> 端口能否连接 -> SSH服务是否正常 -> 认证是否通过。

5.1 第一步:确认虚拟机还活着

很多人第一步就栽了。排查之前先确认虚拟机确实开着、没有卡死、系统进入到了可以登录的状态。这一步没法通过SSH查,只能回到VM控制台窗口看看。

5.2 第二步:测试宿主机到虚拟机的网络能否通

在宿主机上打开命令提示符:

ping 虚拟机IP

有响应说明网络链路OK。如果ping不通,先排查虚拟机网卡配置和网络模式,忘记你不通的这台虚拟机是否和宿主机不在同一个网段。

一个很常见的翻车场景:虚拟机没开机,你用工具去连,当然连不上。另一个更隐蔽的:你加了块新网卡,系统路由表乱了,导致虚拟机能上网但宿主机就是ping不到它。这时候看路由表:

ip route

确认默认路由指向的是你期望的网卡和网关。之前有个同学一直连不上群里的虚拟机,查了半天发现虚拟机的默认路由走的是虚拟网卡,跟宿主机通信不经过SSH所在的那张物理网卡,数据包有去无回。把路由规则理顺之后就正常了。

5.3 第三步:检查端口是否处于可达状态

网络通了,不代表22号端口一定可以连。在宿主机上测试端口:

telnet 虚拟机IP 22

如果连接被拒绝或超时,说明SSH服务端没在监听,或者防火墙拦截了。也可以在宿主机上用:

nc -vz 虚拟机IP 22

如果用这条命令能显示连接成功,说明端口是开的。反过来如果端口不通,再用虚拟机内部的ss -tlnp确认服务监听状态,以及防火墙规则:

sudo firewall-cmd --list-all

检查有没有放行22端口。有些发行版默认防火墙没开,有些开了但只放行了几个端口,SSH被人为挡在门外。看到连接被拒的时候,第一反应应该是防火墙或者SSH服务挂了,而不是怀疑自己的工具填错了。

5.4 几种报错信息的含义

每个报错背后对应的原因,其实很有规律,我把常见的情况整理到表格里:

报错信息原因解决办法
Connection timed out网络不可达检查虚拟机IP是否变化、网卡是否启用、网络模式
Connection refusedSSH服务没启动或防火墙拦截确认sshd存在且运行;放行22端口
Host key verification failed远程主机密钥变化(重装系统常见)在~/.ssh/known_hosts里删除旧记录
Permission denied (password)密码错误或密码认证被关闭确认密码正确;检查sshd_config里的PasswordAuthentication
Permission denied (publickey)公钥认证失败检查密钥权限、authorized_keys内容、密钥文件是否选对

还有一个很有意思的坑,是“明明密码是对的,却一直提示Permission denied”。这种情况多半是sshd服务端配置文件里设置了禁止密码登录,只允许公钥登录。如果你手头没有可用的公钥,可以直接把虚拟机的sshd_config里的PasswordAuthentication改回yes,重启服务再试。

排查完认证,整个链路的思路就闭环了。以后再遇到连接问题,不需要像无头苍蝇一样乱撞,只要照着链条一层层往上排查,总能找到卡点。

6. 首次连接之后的进阶玩法:让SSH连接更顺手也更安全

第一次连接成功只是开始。连接本身不算难,难的是后面怎么把SSH用起来、用得好。下面是我自己长期用下来觉得最值的几个配置项和玩法,分享出来供你参考。

6.1 用配置文件保存主机信息

如果你每天要连的虚拟机、服务器很多,每次打开工具都要一顿点选很麻烦。可以先在SSH工具里把会话分组,按项目或环境分好类,保存下来,每次双击就能登录。这点通常有点被新人忽略,但用过一阵子之后,会省下大量时间。

也可以使用SSH自带的配置文件方式管理主机:

nano ~/.ssh/config

每台机器用一段简单配置描述:

Host vm1 HostName 192.168.31.128 User ubuntu Port 22 IdentityFile ~/.ssh/vm_key

下次直接执行ssh vm1就能连上,再也不用记IP了。这个文件可以在宿主机上用任意编辑器改,改完即时生效,适合命令行固执派。

6.2 让文件传输不再局限于scp

SSH连上之后,文件传输最基础的命令是:

scp 本地文件 用户名@虚拟机IP:/目标路径

但这个命令每次都要写完整主机名,不够优雅。有经验的用户会用scp配合~/.ssh/config里的别名,写成scp a.txt vm1:/home/ubuntu/,简洁很多。

另外我强烈建议用集成SFTP的SSH客户端,边浏览边传输,体验马上不一样。用MobaXterm或FinalShell这类工具的图形文件面板,可以像操作本地文件一样拖拽传输,效率提升巨大。

6.3 别用root裸奔:安全和体验的取舍

很多新手为了省事,直接给虚拟机设置了root密码,然后用SSH工具以root身份连接。这样确实省去了sudo的操作,但风险也随之而来:一旦密码泄露,整个系统就完全暴露了。更稳妥的姿势是平时用普通账户登录,需要管理员权限时再sudo,避免高频使用root账号。

还有几个安全习惯我一直在坚持,顺手分享出来:

  • 如果不需要从公网访问虚拟机,就不要暴露22端口到外网
  • 尽量用密钥登录,把密码登录禁掉
  • 如果一定要开密码登录,用高强度密码,不要用物理键位顺序那种弱密码
  • 修改密钥或者新增SSH配置之后,记得重启sshd服务确认没配错

6.4 远程开发与本地编辑:SSH的价值不只在敲命令

连接稳定之后,你可以把SSH用得更深。例如用VSCode的Remote-SSH插件,直接在本地编辑器里打开虚拟机的项目目录,代码高亮、智能提示、远程运行全部搞定。写代码体验跟本地几乎一样,特别适合在虚拟机里跑测试的场景。

还有一个常用思路是端口转发,能让宿主机直接访问虚拟机里运行的服务。比如虚拟机上跑了一个Web应用,监听8080端口,你可以在SSH会话里设置隧道,让宿主机通过localhost:8080访问虚拟机上的服务:

ssh -L 8080:localhost:8080 vm1

这样的话,虚拟机的图形界面不开也没关系,浏览器直接访问本地地址就能看到应用效果。整个工作流清爽了很多,也不再需要依赖虚拟机控制台窗口的放大缩小了。

把前面这些配置都顺下来之后,你会发现SSH连接虚拟机这件小事,从“能用”到“好用”之间,差的恰恰就是这些细节。我自己的习惯是每次新建虚拟机之后,第一件事就是把网络固定好、SSH服务装好、密钥登录配上,之后再开始折腾别的。磨刀不误砍柴工,这套流程跑顺之后,后面的所有操作都会快很多。

相关新闻

大模型企业知识库搭建实战:从文档处理到RAG调优全指南

大模型企业知识库搭建实战:从文档处理到RAG调优全指南

最近两年我做过的知识库项目不算少,从几百条文档的小团队到几十万页的集团档案库都碰过。每次跟客户聊需求,开场白十有八九都是同一句话:“我们想把公司资料喂给大模型,让它帮我们回答问题。”这句话听起来简单,背后要…

2026/10/20 13:01:55 阅读更多 →
PyTorch深度学习框架实战指南:从动态图原理到模型部署全流程

PyTorch深度学习框架实战指南:从动态图原理到模型部署全流程

做深度学习这些年,从 TensorFlow 切到 PyTorch,又亲眼看着 PyTorch 从“研究圈的小众玩具”变成工业界的主流选择,这个生态演进过程本身就很有意思。如果你现在问我要选哪个深度学习框架,我的答案基本是不过脑子的:PyT…

2026/10/20 13:01:55 阅读更多 →
双绞线8芯线全解析:从线序原理到千兆布线实操避坑指南

双绞线8芯线全解析:从线序原理到千兆布线实操避坑指南

1. 从一根网线说起:为什么值得把双绞线8芯线拆开看很多人第一次接触网线,注意力都放在水晶头压得牢不牢、测线仪灯亮不亮,很少有人认真想过:这根线里为什么偏偏是8根芯,而不是4根、6根或者10根?我最初做综合…

2026/10/20 13:01:55 阅读更多 →

最新新闻

智能驾驶感知算法岗面试高频考点与实战指南

智能驾驶感知算法岗面试高频考点与实战指南

智能驾驶感知算法岗的面试,跟我平时帮人做模拟面试时看到的准备方式,几乎不在一个频道上。很多人拿到一份八股题集就开始背:Transformer结构、Focal Loss公式、NMS流程、BEV感知演进……背得滚瓜烂熟,结果一进面试间,被…

2026/10/20 13:38:46 阅读更多 →
Hyper-Laplacian先验快速去卷积:从原理到工程实现

Hyper-Laplacian先验快速去卷积:从原理到工程实现

简介:这份资源是图像去模糊方向经典论文《Fast Image Deconvolution using Hyper-Laplacian Priors》的配套Matlab实现,面向从事图像恢复、计算摄影与视觉研究的学生和开发者,用于解决模糊图像复原中卷积核未知、边缘细节难以保持的问题。压缩…

2026/10/20 13:38:46 阅读更多 →
TensorFlow从零手写ResNet18:80行代码详解残差连接与BasicBlock实现

TensorFlow从零手写ResNet18:80行代码详解残差连接与BasicBlock实现

1. 为什么80行代码值得认真拆解ResNet18这个网络结构,搞深度学习的人几乎没有不知道的。2015年那篇残差学习的论文出来之后,基本上把深层网络训练难的问题给解决了。但很多人第一次接触ResNet,要么是直接调tf.keras.applications.ResNet50&am…

2026/10/20 13:38:46 阅读更多 →
Hyper-Laplacian先验快速去卷积:查找表加速非凸优化

Hyper-Laplacian先验快速去卷积:查找表加速非凸优化

简介:这份资源是图像去模糊领域经典论文《Fast Image Deconvolution using Hyper-Laplacian Priors》的配套Matlab实现,面向从事图像恢复、计算摄影与视觉研究的学生和开发者,用于解决模糊图像复原及盲去卷积中卷积核与清晰图像联合估计的问题…

2026/10/20 13:38:46 阅读更多 →
10月arXiv机器学习论文盘点:强化学习、长尾分布与数据效率

10月arXiv机器学习论文盘点:强化学习、长尾分布与数据效率

1. 另类入口:当arXiv变成一座每周更新的森林如果说学术搜索像一张精准的地图,那arXiv的cs.LG板块就更像一片每周定时更新的森林——你永远知道自己能在这里找到最新的机器学习论文,但也正因为"最新"这两个字,每次走进来…

2026/10/20 13:38:46 阅读更多 →
AI编程工具进化:从代码补全到能独立交付项目的“许愿机”

AI编程工具进化:从代码补全到能独立交付项目的“许愿机”

说实话,我已经不太想用“Coding Agent”来称呼手上这批AI开发工具了。不是矫情,是最近连续几周用它们做真正的项目——不是教它写个冒泡排序或者生成一段样板代码,而是从需求梳理、数据结构设计到部署脚本、线上监控告警的完整链路走下来——…

2026/10/20 13:37:45 阅读更多 →

日新闻

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实现详解

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

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

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

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

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

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

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