手头只有一台笔记本和一部手机,没有显示器也没有网线,树莓派怎么连接?很多第一次玩树莓派的人都会卡在这一步,甚至因此误以为买树莓派必须额外配一块HDMI屏幕。实际上,用手机热点 + Advanced IP Scanner组合,完全可以在无屏环境下解决这个问题,而且速度足够快:系统烧录好之后,从完成预配置到SSH进系统,熟练的话5分钟绰绰有余。这套方案尤其适合学生党、出差党,以及把树莓派当作开发板做项目的人——你需要的全部设备就是一台手机、一台电脑和一张TF卡。
这篇文章不是简单的命令堆砌,而是把无屏SSH连接背后的逻辑、写卡阶段的预配置细节、扫描工具的使用原理、以及我亲身踩过的坑都梳理出来。我会把每一步对应到实际截图上应该看到的内容,方便你照着核对。准备好了就开始。
1. 无屏连接的核心逻辑:树莓派开机后到底在做什么
1.1 SSH为什么能成为"无屏主力方案"
树莓派本质上是一台完整的Linux电脑,只是没有自带屏幕和输入设备。无屏(Headless)模式下,核心问题只有一个:如何在没有显示器的情况下和它建立交互通道。SSH(Secure Shell)就是最主流、最轻量的答案——只要树莓派通电、联网、系统里跑着sshd服务,你就能从电脑或手机远程进入它的终端,执行任何命令。
这里有个容易忽略的知识点:现代Raspberry Pi OS默认安装并配置好了openssh-server,但出于安全考虑,2022年4月之后的官方镜像在首次启动时默认禁用SSH服务。这也就意味着,光把系统写进TF卡还不够,你必须主动在系统里"打开SSH"这个开关。这个开关怎么开,直接决定了你后期能不能顺利连上。
SSH还有一个隐含优势:不挑操作系统。Windows、macOS、Linux都有现成的SSH客户端,手机上也有一堆优秀App。这意味着你不必为树莓派准备专门的串口调试线或HDMI转接板,网络一通,剩下的全在命令行里解决。
1.2 手机热点在组网里扮演什么角色
无屏树莓派需要和电脑处在同一个局域网内才能被SSH访问。最常见的做法是家里有路由器,树莓派和电脑都连同一个WiFi。但现实场景往往没这么理想:在学校宿舍没有路由器权限、在户外想临时调试、或者树莓派被塞进某个项目里不方便接网线——这时候手机热点就是最灵活的替代品。
手机热点本质上是一个微型AP(无线接入点),它启动后相当于创建了一个小局域网,树莓派通过WiFi加入这个网络后,会从手机的DHCP服务获得一个IP地址。手机和树莓派、电脑和树莓派之间都处于二层互通状态,SSH流量只需要在这一个小网段里走,延迟低、不受外网影响。大部分安卓手机热点的默认网段是192.168.43.x,iPhone热点则是172.20.10.x,具体以你手机"关于手机/状态"里显示的IP为准。
用热点还有个隐藏好处:树莓派开机后会主动连上热点的WiFi,你甚至不需要去路由器后台找IP,直接在手机热点的已连接设备列表里就能确认它是否上线。这在后面排查问题时非常管用。
1.3 Advanced IP Scanner解决的是哪个痛点
树莓派通过DHCP拿到的IP是动态的,而且在无屏状态下你根本不知道它拿到了哪个地址。这就需要一个"探测"手段:扫描当前局域网里所有活跃设备,找到那台属于树莓派的主机。
Advanced IP Scanner是一个在Windows平台非常成熟的免费局域网扫描工具,它不仅能扫出设备的IP和MAC地址,还能识别主机名、设备厂商,甚至探测开放的端口。这对于定位树莓派来说几乎是量身定做:树莓派的默认主机名是raspberrypi,网卡MAC地址前缀也带有Raspberry Pi厂商信息,扫描结果里通常一眼就能认出来。如果你用macOS或Linux,也可以用nmap等替代工具,但操作流程和思路完全一致。本文后续默认使用Advanced IP Scanner,因为它在Windows上体验最省心。
2. 写卡阶段的三步预配置:把SSH和WiFi直接塞进系统里
2.1 用Raspberry Pi Imager完成"官方一条龙"预配置
现在烧录树莓派系统,我强烈建议直接使用官方工具Raspberry Pi Imager,不要再用Etcher裸写镜像然后手动改配置文件。原因很简单:Imager把SSH开关、WiFi配置、用户名密码这些初始化动作都集成到了写卡流程里,你只需在图形界面上点几下,它就会自动把配置写入SD卡,省去了手动创建配置文件的麻烦,也不容易出错。
操作流程:
- 安装并打开Raspberry Pi Imager,选择你的树莓派型号和操作系统。如果是做日常开发,选"Raspberry Pi OS (32-bit)"或"Raspberry Pi OS (64-bit)"的Lite版(无桌面)即可,后面的一切操作都通过SSH完成;如果之后还需要图形界面,再装带桌面的版本。
- 选择要写入的SD卡。
- 点击界面右下角的齿轮图标(高级选项),这一步是核心。在弹窗里完成三件事:
- 开启SSH:点击"Enable SSH",并选择"Use password authentication"(或者配置公钥),否则默认不开放SSH端口。
- 设置用户和密码:新版本系统不再有默认的pi用户,必须在这里设置一个用户名,比如peter,再设置一个密码。这个用户名和密码就是之后SSH登录用的凭证。
- 配置WiFi:填写"SSID"为你的手机热点名称,"Password"为热点密码。建议热点名用英文,有的系统对特殊字符处理不友好。
- 点击"Write"开始烧录,等待完成即可。
如果你在写卡时截图,最终应该能看到类似这样的选项面板:SSH开关处显示ON,用户名文本框里填了字母,密码框里显示圆点,无线网络栏里SSID和密码都已填好。只要截图上这四项都有,说明预配置没有漏。
2.2 老系统手工配置:boot分区里的ssh空文件和wpa_supplicant.conf
如果你出于某种原因还是想用手动方式配置(比如Imager不支持某些自定义镜像),方法也很成熟。系统写进TF卡后,卡上会有一个FAT32格式的boot分区,Windows下可以直接看到并读写文件。完成以下两步:
第一步,在boot分区根目录新建一个没有任何扩展名的空文件,命名为ssh。这个文件的作用是告诉系统"首次启动后自动启用sshd服务"。文件的扩展名和内容都不重要,空文件就行。
第二步,在boot分区根目录新建wpa_supplicant.conf配置文件,内容参考:
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 country=CN network={ ssid="你的手机热点名" psk="你的热点密码" key_mgmt=WPA-PSK }保存后弹出SD卡,插进树莓派通电即可。截图的话,SD卡boot目录下能看到ssh和wpa_supplicant.conf两个文件并列出现在不完整列表里,这就是有效的标志。
这里有个非常多人踩的坑:wpa_supplicant.conf必须放到boot分区根目录,而不是/etc/wpa_supplicant/目录——后者是系统启动后在rootfs里读取的配置。你在Windows下看到的boot分区,才对应树莓派启动时的/boot/firmware,所以文件位置放错,系统根本不会读取。另外,文件换行符尽量保持LF,用记事本编辑有可能导致解析失败,推荐用VS Code或Notepad++改完再保存。
2.3 用户账户和系统版本带来的"隐藏变数"
2022年9月之后的官方镜像删除了默认pi用户,这是一个影响很大的变化。很多旧教程让你用pi@raspberrypi去登录,在新系统上会直接提示"用户不存在"。如果你用的Imager预配置,那就必须在SSH连接时使用你创建的用户名,比如peter@192.168.x.x。如果用的老镜像或者像Ubuntu Server这种其他系统,默认用户名往往是ubuntu,需要你在烧录时或者官方文档里确认。
另外,Bookworm版本的Raspberry Pi OS默认网络管理已经切换到了NetworkManager,和老系统的dhcpcd行为有差异。这影响的是后续固定IP的做法,具体在最后一部分讲。这一步你先知道即可,不用记。
3. 手机热点组网与Advanced IP Scanner扫描定位:现场实操
3.1 开启热点的设置细节与树莓派通电后的等待
实操开始。先打开手机热点,建议在热点设置里把频段固定为2.4GHz而不是5GHz。原因很务实:树莓派Zero、3B等老型号不支持5GHz,即使你用4B或5,2.4GHz的穿墙和兼容性也更好。在户外或室内信号一般的情况下,2.4GHz的连接稳定性反而更高,SSH连接对丢包率比较敏感。
热点开好后,给树莓派通电。这里要注意电源质量,树莓派4B/5在无屏状态下虽然负载不高,但劣质电源也可能导致WiFi模块工作不稳定,出现反复掉线。通电后等待30秒到1分钟,让系统完成首次启动。然后打开手机的热点设置页面,查看已连接设备列表——如果树莓派成功连上WiFi,你会看到列表里多了一台设备。这一步虽然不起眼,却是整个方案里最有效的"启动状态确认法":看到设备数+1,说明系统已经跑起来并且网络通了,接下来扫描才有意义。
3.2 Advanced IP Scanner扫描范围如何设置
回到电脑上,下载安装Advanced IP Scanner。它有两种版本:安装版和便携版,建议用便携版,免安装,某些需要临时拿来用的场景很方便。打开软件后界面很简洁,顶部有一个IP范围输入框。
关键来了:扫描范围怎么填?你需要先看手机的IP。在安卓上进入设置 → 关于手机 → 状态信息,能看到类似192.168.43.1这样的IP地址;iPhone在"设置 → 无线局域网 → 点击热点网络信息"里也能找到路由器的IP。这个IP就是手机热点的网关地址,也是整个小局域网的起点。
假设手机IP是192.168.43.1,那么树莓派拿到的IP一定在192.168.43.2到192.168.43.254之间。所以扫描范围填:
192.168.43.1-192.168.43.255然后点击"Scan"按钮。十几秒后,结果列表会列出所有活跃设备。这一条反映了核心的操作逻辑:先定位自己所在的网段,再让工具去扫这个网段,方向对了才能快速锁靶。
3.3 如何从扫描结果里精准认出树莓派
扫描结果出来之后,不要急着SSH,先学会认设备。正常情况下你会看到:
- 电脑自己的IP(因为电脑也连在同一热点下)。
- 手机热点网关的IP(一般是192.168.43.1)。
- 树莓派的IP:设备名称可能直接显示为
raspberrypi,制造商字段可能显示Raspberry Pi,开放端口列里能看到22。
如果设备名被自定义过或者扫描工具识别不出厂商,还有更可靠的判断方法——看MAC地址。树莓派网卡的MAC地址前三位(OUI)有固定的几个段,常见的有DC:A6:32、B8:27:EB、E4:5F:01、28:CD:C1、D8:3A:DD等,都用于Raspberry Pi设备。扫描结果里点开设备详情看MAC地址,只要前缀落在这几个范围内,基本就能确定是树莓派。
对照截图的话,Advanced IP Scanner的结果区域应该有类似这样的一行:设备名称raspberrypi,IP为192.168.43.123,MAC地址以B8:27:EB开头,开放端口一栏显示22。看到这三要素齐全,直接记下IP,下一步就可以命令连接了。
4. SSH首次登录与终端工具选型:从确认指纹到免密优化
4.1 各平台SSH客户端怎么选才顺手
扫描出IP后,SSH连接本身是半分钟的事,但选对客户端能让后续操作顺畅很多。我的建议是先用系统自带工具跑通,再根据需求决定要不要图形化客户端。
- Windows 10/11:打开PowerShell或Windows Terminal,直接输入ssh命令即可,系统自带OpenSSH客户端。这是最省事的选择,不需要装任何软件。
- Windows替代方案:如果你习惯图形界面,可以装PuTTY,它把IP、端口、用户名都做成了表单,双击填好就能连。但对频繁操作命令行的用户来说,PowerShell的可复制性和字体渲染体验其实更好。
- macOS/Linux:直接用内置的Terminal,ssh命令天然可用,无需额外安装。
- 手机端(备用):JuiceSSH或Termius,在紧急情况下用手机App也能登进树莓派改配置。
工具对比大概是这样:
| 场景 | 推荐工具 | 理由 |
|---|---|---|
| Windows日常调试 | PowerShell / Windows Terminal | 自带OpenSSH,可与系统集成 |
| Windows图形界面需求 | PuTTY | 表单化简单,老牌稳定 |
| macOS / Linux | 系统Terminal | 原生ssh命令,无额外依赖 |
| 手机临时登录 | JuiceSSH / Termius | 在无电脑环境下应急 |
4.2 首次登录的完整流程与"指纹确认"意味着什么
假设扫描到的树莓派IP是192.168.43.123,用户名是peter,打开终端输入:
ssh peter@192.168.43.123第一次连接,终端会提示确认主机指纹(fingerprint),问你Are you sure you want to continue connecting (yes/no)?。这是SSH防止中间人攻击的机制——客户端会记住服务器的公钥,后续连接时如果公钥变了,会主动告警。对于第一次连接,理论上应该对照一下指纹,但在家庭/热点局域网这种信任环境下,你输入yes即可。
然后输入你在Imager里设置的密码。这里要提醒一点:Linux终端输入密码时不显示任何字符,连星号都没有,这是正常的,不是键盘坏了。输完直接回车,出现类似peter@raspberrypi:~ $的提示符,说明SSH登录成功。截图的话,终端顶部应该有peter@raspberrypi字样,提示符以$结尾——看到这个画面,无屏SSH连接就算完整跑通了。
进入系统后第一时间改掉弱密码,跑一下passwd命令。另外可以用几个命令验证网络状况:
hostname -I whoami ip routehostname -I会列出当前IP,ip route能看到默认网关是否指向手机热点的IP。这些都确认无误,说明组网链路是健康的。
4.3 SSH连接更稳的三个小优化
SSH刚连上的时候很顺畅,但如果长时间不操作,终端很容易卡住不动,输入命令也无响应。这是SSH会话保活机制的问题,可以用两种方式解决:
第一种,在树莓派的sshd配置里加保活参数。编辑/etc/ssh/sshd_config,添加:
ClientAliveInterval 60 ClientAliveCountMax 3然后重启sshd服务:
sudo systemctl restart sshd这样服务器每60秒向客户端发送一次保持连接的数据包,连接就不容易因空闲被NAT网关或热点踢掉了。
第二种,如果你不想改全局配置,可以在自己电脑的SSH客户端里设置保活。Windows的OpenSSH客户端可以在~/.ssh/config里添加:
Host raspberrypi HostName 192.168.43.123 User peter ServerAliveInterval 30我更推荐第二种,因为它不只在树莓派上生效,对家里所有SSH服务器都适用。
再往前一步,想省去每次输密码的麻烦,可以配置SSH密钥登录。在自己电脑上执行:
ssh-keygen -t ed25519 -C "pi-key" ssh-copy-id peter@192.168.43.123第一条生成密钥,第二条把公钥推送到树莓派。之后再次SSH登录,系统会直接免密进入。这对手机热点环境下反复掉线重连尤其方便——重连次数多了,你就知道少输一次密码意味着什么。
5. 连接失败排查:实测中最常踩的故障与根因分析
5.1 热点设备列表里根本没看到树莓派
这是最常见的失败场景。手机热点已开启,树莓派通了电,但热点设置页面的已连接设备数量始终没有增加。出现这种情况,99%是WiFi配置环节出了问题,与SSH无关。
排查链路应该从写卡阶段开始回看:
- 确认
wpa_supplicant.conf文件名是否正确。不少人在Windows下改文件时,系统默认隐藏扩展名,最后存成了wpa_supplicant.conf.txt,系统压根识别不了。建议在文件管理器里勾选"查看文件扩展名"再确认一遍。 - 确认SSID和密码大小写是否和热点完全一致。手机热点名如果带了空格或特殊字符,最好在手机里先重命名为纯英文,避免WiFi配置解析失败。
- 确认SD卡boot分区文件写入位置是否正确。放到
/boot/没问题,但如果你解压镜像后用了某些工具挂载到系统里,路径会变化,写到rootfs目录就不生效了。 - 热点的频段问题。树莓派如果只能2.4GHz,而手机热点开的是5GHz频段,设备无法连接。切换频段后重启树莓派再观察。
如果以上都检查完还是连不上,建议直接重新烧录一次系统,并且这次用Imager的图形化配置,不要手动改文件,排除人为因素。很多时候"折腾半天配置文件没结果",不如重写卡十分钟解决。
5.2 热点能看到设备,但IP扫描扫不到或SSH连不上
设备已经连上热点,说明WiFi层是通的。这时候Advanced IP Scanner扫不到,大概率是扫描范围填错了。比如手机IP是172.20.10.1(iPhone热点常见网段),而你还在扫192.168.1.x,自然一无所获。先看手机IP,再回头检查扫描范围,这个顺序别搞反。
如果扫描结果里能看到设备,但开放端口列表里没有22,或者在SSH连接时提示Connection refused,那说明树莓派的sshd服务根本没有运行。核心原因就是写卡时没有启用SSH——新系统默认禁用,而没有ssh文件或Imager配置的开关,系统启动后不会自动拉起sshd。
解决办法有两个:一是把TF卡重新插到电脑上,在boot分区再次创建ssh空文件(前提是系统还没完成初始化);二是如果你已经能通过串口或其他方式进入系统,执行sudo systemctl enable --now sshd手动开启。但对于大多数无屏用户,最省心的做法是重新用Imager烧录,确保高级选项里的SSH开关是打开的。
还有一个容易忽略的情况:树莓派首次启动时会做一些磁盘扩展和初始化工作,如果SSH请求来得太早,系统还没就绪,连接会超时。解决方式就是多等30秒再试,不要一通电就狂按回车。
5.3 热点AP隔离:看起来都在网里,实际互相不可达
这是最隐蔽也最坑的一种情况。有的手机开启热点后,默认启用了类似"AP隔离"或"私人网络"的功能,无线客户端之间无法互相通信。后果就是树莓派和电脑各自都连上了热点,也能上网,但电脑去ping树莓派的IP永远超时,Advanced IP Scanner自然什么都扫不到。
这个功能在不同手机上的位置不一样。小米手机在"热点设置 → 私人网络"里,华为叫"AP隔离"或"网络隔离",三星则在"移动热点 → 配置"里。开启状态下,客户端之间是隔离的,必须关掉这个开关或者换成不限速、不做客户端隔离的模式。你可以先用手机流量上网测试,如果手机热点连的树莓派和电脑彼此不可达,优先检查这里。
为了快速定位这类问题,连接前可以先在电脑上ping手机的网关IP(比如ping 192.168.43.1),通,说明电脑到热点的链路OK;再观察热点网段和扫描范围是否一致;最后再确认隔离选项。按这个顺序排查,基本能在半分钟内圈定问题层级。
5.4 IP地址变化导致的"旧连接失效"
手机热点重启、树莓派断电重启、DHCP租约到期,都可能导致树莓派的IP地址变化。今天SSH连的是192.168.43.123,明天可能就变成了192.168.43.78。遇到连接不上,第一反应不是改配置,而是重新跑一次Advanced IP Scanner,看看树莓派当前的实际IP是否和之前记录的一致——我的实际经验里,这个原因占了一半以上的"突然连不上"案例。
6. 把临时方案变成日常方案:固定IP、替代热点与远程开发闭环
6.1 在树莓派里固定IP,告别"今天扫一个地址明天又变"
从"临时连一次"到"长期负责一个项目",动态IP就会成为麻烦,尤其是做小车、智能家居之类的项目时,每次重启都要重新扫描定位,效率太低。所以建议登录成功后直接把IP固定下来。
Bookworm及以上版本的Raspberry Pi OS默认用NetworkManager,修改方式如下。首先查看当前网络连接名:
nmcli con show找到WiFi连接名字(通常是预配置的SSID或者类似preconfigured的名称),然后执行:
sudo nmcli con mod "你的连接名" ipv4.addresses 192.168.43.50/24 sudo nmcli con mod "你的连接名" ipv4.gateway 192.168.43.1 sudo nmcli con mod "你的连接名" ipv4.dns "192.168.43.1 8.8.8.8" sudo nmcli con mod "你的连接名" ipv4.method manual这里有几个数值需要根据实际情况替换:IP地址要选在热点网段内且不冲突的地址,比如.50;网关是手机热点的IP,安卓热点通常是192.168.43.1,iPhone热点是172.20.10.1。设置完成后重启网络或者直接sudo reboot,之后树莓派就会固定使用这个IP,不再随DHCP租约变化。
如果你用的是老系统(Bullseye及以前),可以通过编辑/etc/dhcpcd.conf固定:
interface wlan0 static ip_address=192.168.43.50/24 static routers=192.168.43.1 static domain_name_servers=192.168.43.1 8.8.8.8修改后重启网络验证。固定IP这个动作虽然配置简单,但它带来的体验改善是质变级的:长期连树莓派开发时,你不再需要每次做"扫描——对比MAC——试SSH"这条链路,直接输入IP回车,省去大量重复操作。
6.2 用电脑热点代替手机热点的适用场景
手机热点适合户外和临时场景,但在家里或办公室,如果不想额外占用手机网络,完全可以用电脑开热点代替。Windows系统自带"移动热点"功能,在设置里开启后,网段通常是192.168.137.x;macOS的"互联网共享"开启后,通常也是类似网段。
这种方式的优势在于:扫描工具、SSH客户端和热点服务都在同一台电脑上,不用在电脑和手机之间来回切换。Advanced IP Scanner的扫描范围直接填192.168.137.1-192.168.137.255,操作路径更短。缺点是电脑的无线网卡在开启热点后,通常不能再同时连接其他WiFi(除非用有线网卡的方式共享网络,如果电脑有网线连路由器,仍然可以直接开热点分享)。这一点决定了它更适合在固定场所使用,而不是移动场景。
6.3 无屏环境的"远程开发闭环":SSH之外的配套工具
SSH连入只是第一步,无屏环境下的日常开发,还需要配套几个工具才能形成完整闭环。
文件传输上,scp命令最直接。从电脑拷贝文件到树莓派:
scp ./myfile.py peter@192.168.43.123:/home/peter/把树莓派上的文件拉回来:
scp peter@192.168.43.123:/home/peter/result.log ./如果你和我一样使用VS Code做开发,强烈建议安装Remote-SSH插件。它允许你直接在VS Code里打开树莓派上的项目文件夹,写代码、改配置、跑终端都要舒服很多,等于把SSH终端和编辑器整合在了一起。这个插件和手机热点组网方式没有任何冲突,只要SSH能通,它就能用。
如果需要图形界面但又不方便接HDMI,可以用raspi-config开启VNC服务,然后在电脑上用VNC Viewer连接。操作很简单:
sudo raspi-config进入"Interface Options → VNC"启用,然后从电脑VNC连接树莓派IP即可看到完整桌面。这样即使不带屏幕,你也能操作图形界面的应用,比如调试OpenCV窗口、配置IDE插件等。
说到VNC连接,难免会遇到画面不流畅的情况,原因和SSH保活一样,热点信号不稳定或AP隔离问题都会放大延迟。优先确保手机热点频段固定2.4GHz、AP隔离关闭,并将树莓派与手机放在同一房间,VNC体验基本能达到可用的流畅度。
我在实际项目里把这套流程固化成了一个模板:烧录镜像时用Imager预配SSH和WiFi,登录后第一件事就是固定IP和改密码,之后再经过SCP传代码、VS Code Remote-SSH写程序、VNC处理图形界面需求,全程不需要显示器。这套流程说不上多高深,但它是无屏开发最低成本的路径,尤其是当你手头只有一台手机和电脑时,能解决90%以上的"第一次连接"问题。最后分享一个我自己的习惯:每次重刷系统前,把Imager里的"高级选项"配置保存下来,以后给新卡烧录时直接复用,省得每次重复填。下次遇到树莓派连不上,先别怀疑硬件坏了,按照扫描失败、端口不通、AP隔离这个顺序排查一遍,大概率几分钟就能找到原因。