4、无头模式启动:SSH 与 VNC 配置、WiFi 预配置、通过路由器查找 IP、首次 SSH 登录

树莓派最迷人的地方在哪?我觉得就是「无头模式」。说白了,就是不给它接显示器、键盘、鼠标,直接通过网络远程控制。我刚开始玩树莓派那会儿,手头只有一台笔记本电脑,没有多余的 HDMI 显示器。当时就想,这玩意儿难道还得专门配个屏幕?后来才发现,无头模式才是树莓派的正确打开方式。

这一章,我们就来搞定这件事。你只需要一张烧好系统的 SD 卡,一台路由器,和你的电脑。嗯,开始吧。

4.1 什么是无头模式?为什么需要它?

无头模式(Headless Mode),就是让树莓派在没有外接显示器和输入设备的情况下独立运行。你通过 SSH 或 VNC 从另一台电脑远程操作它。

我遇到过不少新手,第一次插电发现屏幕没画面,就以为板子坏了。其实不是,树莓派默认的 HDMI 输出在某些显示器上可能不兼容,或者你压根就没插显示器。无头模式能帮你绕过这些麻烦。

无头模式的核心优势:

  • 省设备:不需要额外买显示器、键盘、鼠标
  • 省空间:树莓派可以塞在角落、机柜里、墙上
  • 远程管理:人在办公室,控制家里的树莓派
  • 自动化部署:批量配置多台树莓派,不用一台台接屏幕

你想想看,如果每台服务器都得配个显示器,那机房得有多大?树莓派虽然是个小玩具,但无头模式让它有了「服务器范儿」。

4.2 预配置 WiFi:让树莓派连上网络

树莓派通电后,第一件事就是联网。如果你用的是有线网(以太网),插上网线就行,啥都不用配。但如果你像我一样,想把树莓派扔在客厅角落用 WiFi,那就得提前做点手脚。

方法很简单:在 SD 卡的 boot 分区里放一个配置文件。

4.2.1 创建 wpa_supplicant.conf

把烧好系统的 SD 卡插回电脑,你会看到一个名为 boot 的分区(Windows 下直接显示,macOS/Linux 下自动挂载)。在里面新建一个文件,命名为 wpa_supplicant.conf。

country=CN
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
    ssid="你的WiFi名称"
    psk="你的WiFi密码"
    key_mgmt=WPA-PSK
}

注意几个细节:

  • country=CN:国家代码要写对,否则 5GHz 频段可能搜不到。我在国内一般写 CN,国外按当地代码写。
  • ssid:WiFi 名称,区分大小写,别写错。
  • psk:WiFi 密码,如果密码里有特殊字符(比如 $、#),建议用双引号括起来。
  • key_mgmt:加密方式。家用路由器基本都是 WPA-PSK 或 WPA2-PSK。

小技巧:如果你用的是企业级 WiFi(比如学校、公司的 802.1X 认证),配置会复杂一些。我建议新手先用自己的手机热点测试,等 SSH 能连上了再折腾企业网络。

4.2.2 企业级 WiFi 配置(进阶)

有些场景下,你确实需要连企业 WiFi。我曾经在一家工厂部署树莓派,他们的网络就是 WPA2-Enterprise。配置长这样:

network={
    ssid="企业WiFi名称"
    key_mgmt=WPA-EAP
    eap=PEAP
    identity="你的用户名"
    password="你的密码"
    phase2="auth=MSCHAPV2"
}

嗯,这个配置我当年折腾了整整一下午。后来发现是证书验证的问题,加了一行 ca_cert="/etc/ssl/certs/ca-certificates.crt" 才搞定。如果你也遇到类似问题,别慌,先试试不验证证书:

network={
    ssid="企业WiFi名称"
    key_mgmt=WPA-EAP
    eap=PEAP
    identity="你的用户名"
    password="你的密码"
    phase2="auth=MSCHAPV2"
    ca_cert="/etc/ssl/certs/ca-certificates.crt"
    # 如果还是连不上,尝试下面这行
    # phase1="peapver=0"
}

4.3 启用 SSH:让树莓派开门迎客

WiFi 配好了,树莓派能上网了。但怎么进去?SSH 就是那扇门。

树莓派官方系统(Raspberry Pi OS)从 2016 年 11 月开始,默认关闭了 SSH 服务。原因很简单——安全。但对我们无头启动来说,这反而成了障碍。

解决办法:在 boot 分区里放一个空文件,名为 ssh(注意,没有扩展名)。

重要:文件名必须是 ssh,不能是 ssh.txt 或 ssh.conf。Windows 用户记得在文件资源管理器里勾选「显示文件扩展名」,否则你建出来的可能是 ssh.txt.txt。

树莓派启动时,如果检测到 boot 分区里有这个文件,就会自动启用 SSH 服务,然后把这个文件删掉。一次性的,很干净。

4.4 通过路由器查找树莓派的 IP 地址

树莓派连上网络了,SSH 也开了。但有个问题——你不知道它的 IP 地址。无头模式下,没有屏幕,你怎么知道它拿到了什么 IP?

我常用的方法有几种:

4.4.1 方法一:路由器管理页面(最推荐)

打开浏览器,输入路由器的管理地址(通常是 192.168.1.1 或 192.168.0.1),登录后找到「DHCP 客户端列表」或「已连接设备」。你会看到类似这样的信息:

主机名 IP 地址 MAC 地址
raspberrypi 192.168.1.105 b8:27:eb:xx:xx:xx
android-phone 192.168.1.102 xx:xx:xx:xx:xx:xx

看到 raspberrypi 了吗?那就是你的树莓派。记下 IP 地址,比如 192.168.1.105。

小技巧:如果你给树莓派改了主机名(比如改成 my-pi),这里显示的就是 my-pi。我习惯在第一次登录后就改主机名,方便区分多台设备。

4.4.2 方法二:nmap 扫描(没有路由器权限时)

有些公司网络或公共网络,你进不去路由器管理页面。这时候可以用 nmap 扫描局域网。

在电脑上安装 nmap,然后运行:

# 扫描 192.168.1.0/24 网段,查找 SSH 端口开放的主机
nmap -p 22 --open 192.168.1.0/24

输出大概长这样:

Nmap scan report for 192.168.1.105
Host is up (0.0023s latency).
PORT   STATE SERVICE
22/tcp open  ssh

嗯,192.168.1.105 就是它了。如果你不确定自己的网段,先运行 ipconfig(Windows)或 ifconfig(macOS/Linux)查看本机 IP。

4.4.3 方法三:mDNS(Bonjour/Avahi)

树莓派默认启用了 mDNS 服务(也叫 Avahi)。这意味着你可以直接用主机名访问它,不用查 IP。

# 在 macOS 或 Linux 上
ssh pi@raspberrypi.local

# Windows 需要安装 Bonjour 或 iTunes,或者用 PowerShell
ssh pi@raspberrypi.local

这个方法最方便,但有个前提——你的电脑和树莓派必须在同一个子网,而且网络设备不能屏蔽 mDNS 广播。我在家用这个方法从来没出过问题,但在公司网络里偶尔会失效。

4.5 首次 SSH 登录

IP 地址拿到了,终于可以登录了。打开终端(Windows 用户用 PowerShell 或 CMD),输入:

ssh pi@192.168.1.105

第一次连接,你会看到这样的提示:

The authenticity of host '192.168.1.105 (192.168.1.105)' can't be established.
ECDSA key fingerprint is SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.
Are you sure you want to continue connecting (yes/no/[fingerprint])?

这是 SSH 在问你是否信任这台主机。输入 yes,回车。

安全提醒:这里显示的「指纹」是用来验证主机身份的。理论上你应该通过其他渠道(比如直接看树莓派屏幕)确认这个指纹是否正确。但在家庭网络里,一般没人会中间人攻击你的树莓派。我通常直接输 yes。

然后输入密码。树莓派默认的用户名是 pi,密码是 raspberry。

登录成功后,你会看到:

Linux raspberrypi 5.10.17-v7+ #1414 SMP Mon Apr 12 16:00:37 BST 2021 armv7l

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Mon Jan 10 12:34:56 2022

pi@raspberrypi:~ $

看到这个提示符,恭喜你——你已经成功通过 SSH 登录了树莓派!

4.6 首次登录后的必要操作

登录进去之后,别急着玩。先做几件要紧事:

4.6.1 修改默认密码

树莓派的默认密码是公开的,全世界都知道。不改密码,你的树莓派就是一台「公共服务器」。

passwd

系统会提示你输入当前密码(raspberry),然后输入新密码,再确认一次。嗯,别用 123456 这种,至少来个大小写加数字的组合。

4.6.2 更新系统

sudo apt update
sudo apt upgrade -y

这一步会更新软件包列表,并升级所有已安装的软件。第一次更新可能比较慢,取决于你的网络和树莓派型号。我建议你泡杯咖啡等着。

4.6.3 启用 VNC(可选)

SSH 只能操作命令行,如果你想看到树莓派的桌面,就需要 VNC。

sudo raspi-config

在菜单里选择:

  1. Interface Options
  2. VNC
  3. 选择 Yes 启用

然后退出,重启 VNC 服务:

sudo systemctl enable vncserver
sudo systemctl start vncserver

在电脑上安装 VNC Viewer(RealVNC 或 TigerVNC 都行),输入树莓派的 IP 地址,就能看到桌面了。

我的经验:VNC 在树莓派 3B+ 及更早型号上有点卡,毕竟性能有限。树莓派 4 和 5 就好多了。如果你只是做服务器用途,SSH 完全够用,VNC 不是必须的。

4.7 本章知识图谱

下面这张图总结了无头模式启动的完整流程:

无头模式启动流程 1. 烧录系统到 SD 卡 2. 预配置 WiFi + SSH 3. 插入 SD 卡并通电 4. 查找树莓派 IP 地址 路由器管理页面 nmap 扫描局域网 mDNS (raspberrypi.local) 5. SSH 登录 (ssh pi@IP) 6. 修改密码 → 更新系统 → 启用 VNC boot 分区放 ssh 和 wpa_supplicant.conf

4.8 常见问题与避坑

我整理了几个新手最容易踩的坑,你遇到了可以回来翻翻:

问题 原因 解决办法
SSH 连接被拒绝 boot 分区没有 ssh 文件,或文件名写错了 重新插卡,确认文件名是 ssh 无扩展名
WiFi 连不上 wpa_supplicant.conf 格式错误,或国家代码不对 检查 ssid 和 psk 是否正确,country 写 CN
找不到树莓派 IP 路由器 DHCP 列表刷新慢,或树莓派没连上网 等 1-2 分钟再刷新,或者用 nmap 扫描
mDNS 解析失败 网络设备屏蔽了 mDNS 广播 改用 IP 地址直接连接
VNC 连接后黑屏 树莓派没有启动桌面环境 运行 sudo raspi-config 启用桌面启动

曾经踩过的坑:有一次我帮朋友配置树莓派,WiFi 死活连不上。折腾了两个小时,最后发现是 WiFi 名称里有个空格,而我在配置文件里没加引号。嗯,从那以后我所有 ssid 和 psk 都老老实实加双引号。

无头模式启动其实不复杂,核心就三步:预配置 WiFi、启用 SSH、查找 IP。只要每一步都做对了,树莓派就能安安静静地待在角落里,任你远程调遣。