树莓派4B无头安装与远程连接踩坑记:从零到SSH成功

前言

最近入手了一块树莓派4B,由于手头没有多余的显示器,只能采用"无头"模式(headless)进行安装和配置。本以为只是简单的刷系统、建两个文件就能搞定,没想到过程中遇到了不少坑:WiFi连不上、默认密码无效、SSH拒绝连接、IP地址变来变去......好在最终通过一步步排查和尝试,成功用MobaXterm远程登录了树莓派。现将完整的踩坑过程和解决方案记录下来,希望能帮助到有同样需求的朋友。


一、准备工作

  • 硬件:树莓派4B、16GB SD卡、读卡器、电脑(Windows)、USB转TTL串口模块(备用,但最终成为救命稻草)

  • 软件:Raspberry Pi Imager(官方刷机工具)、MobaXterm(SSH客户端)、Notepad++(编辑配置文件)、DiskGenius(备用,用于修改Linux分区文件)


二、第一次尝试:传统"无头"配置法

1. 刷写系统

从树莓派官网下载最新版Raspberry Pi OS Lite(无桌面版),用Raspberry Pi Imager烧录到SD卡。

2. 开启SSH和配置WiFi

按照网上的教程,在SD卡的boot分区根目录下新建两个文件:

  • 空文件 ssh(用于开启SSH)

  • wpa_supplicant.conf(用于连接WiFi)

wpa_supplicant.conf 内容如下:

复制代码
country=CN
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
    ssid="我的中文WiFi"
    psk="mypass@word"
    key_mgmt=WPA-PSK
}

保存后弹出SD卡,插入树莓派,上电。

3. 第一次失败:找不到树莓派IP

登录路由器后台,发现并没有名为raspberrypi的新设备。WiFi指示灯正常闪烁,但就是连不上。

排查思路:

  • 重新插拔SD卡到电脑,发现ssh文件消失了 (正常现象,说明系统已读取并开启SSH服务),但wpa_supplicant.conf还在。

  • 怀疑是WiFi配置文件有问题。

4. 排查WiFi配置文件

  • 文件名问题 :确认文件名是wpa_supplicant.conf,而不是wpa_supplicant.conf.txt(Windows默认隐藏扩展名,需开启显示)。

  • 编码问题 :我的SSID是中文,密码含@特殊字符。用Windows记事本保存会默认ANSI编码,导致树莓派无法识别。改用Notepad++将文件转为UTF-8无BOM格式

  • 格式检查 :确保country=CN存在,引号为英文半角,无多余空格。

  • 换行符问题:在Notepad++中转换为Unix格式(LF)。

修改后重新插入树莓派,依然连不上WiFi。


三、启用串口,查看启动日志

1. 连接USB转TTL串口模块

树莓派引脚连接:

  • GND -> GND(6号引脚)

  • TXD(模块)-> RXD(树莓派10号引脚)

  • RXD(模块)-> TXD(树莓派8号引脚)

电脑上打开串口助手(如PuTTY),波特率115200,连接后给树莓派上电。

2. 发现问题:默认账号密码无效

启动日志最后显示登录提示:

text

复制代码
raspberrypi login: pi
Password: 
Login incorrect

原来新版树莓派OS已经移除了默认的pi用户和密码raspberry !需要在第一次启动时自己创建。而我的wpa_supplicant.conf虽然可能被读取了,但因为没有用户,系统根本就没完成首次配置,WiFi连接自然也不会生效。


四、尝试救援模式修改密码

1. 使用init=/bin/sh绕过登录

修改boot分区下的cmdline.txt,在末尾添加init=/bin/sh。重新上电后,串口输出卡在ordered data mode. Quota mode: none.,没有出现#提示符。按回车无反应,可能是终端交互问题。

2. 改用systemd.unit=rescue.target

cmdline.txt中的init=/bin/sh替换为systemd.unit=rescue.target,这次出现了登录提示,但仍然要求输入root密码(默认锁定),无法进入。

3. 直接修改shadow文件(理论上可行)

用DiskGenius读取SD卡的ext4分区,找到/etc/shadow文件,将pi用户的密码字段清空(变成pi::......)。但考虑到操作较复杂,且手头已有串口,决定采用更稳妥的方法------重刷系统并用Imager预配置


五、使用Raspberry Pi Imager预配置,一次成功

1. 重新烧录并预置账号和WiFi

打开Raspberry Pi Imager,选择操作系统(依旧Raspberry Pi OS Lite),点击右下角的齿轮图标进入高级设置:

  • 设置主机名(可选)

  • 启用SSH ,并设置用户名(例如pi)和密码(例如mypassword

  • 配置无线局域网 :输入我的中文SSID、含@的密码,国家选择CN

  • 设置时区等

写入SD卡,插入树莓派,上电。

2. 成功连接WiFi

几分钟后,在路由器后台看到了设备raspberrypi,IP地址为192.168.0.104。串口登录也正常,用刚设置的用户名密码成功进入系统。


六、SSH连接失败:Connection refused

1. 现象

用MobaXterm连接192.168.0.104:22,提示Network error: Connection refused

2. 排查步骤

  • 检查SSH服务 :串口登录后执行sudo systemctl status ssh,显示active (running)

  • 检查防火墙 :执行sudo ufw status,发现ufw: command not found(系统默认未安装)。安装ufw:sudo apt update && sudo apt install ufw -y,然后sudo ufw allow 22/tcp,再sudo ufw enable

  • 确认端口监听sudo ss -tlnp | grep :22,看到0.0.0.0:22在监听。

  • 再次测试:MobaXterm依然连接被拒。

3. 意外发现:IP地址变了

在树莓派上执行ip a,发现IP变成了192.168.0.107!原来路由器的DHCP重新分配了地址。尝试用新IP连接,成功登录!

教训:树莓派的IP地址可能动态变化,需要固定下来。


七、固定IP地址的两种方法

方法一:在树莓派上配置静态IP

根据网络管理器不同有两种方式:

  • NetworkManager(新版默认)

    bash

    复制代码
    nmcli con show               # 查看连接名称
    sudo nmcli con mod "Wired connection 1" ipv4.method manual \
      ipv4.addresses 192.168.0.100/24 \
      ipv4.gateway 192.168.0.1 \
      ipv4.dns "8.8.8.8 114.114.114.114"
    sudo nmcli con down "Wired connection 1" && sudo nmcli con up "Wired connection 1"
  • dhcpcd(传统方法)

    编辑/etc/dhcpcd.conf,添加:

    text

    复制代码
    interface eth0
    static ip_address=192.168.0.100/24
    static routers=192.168.0.1
    static domain_name_servers=8.8.8.8 114.114.114.114

    重启服务或重启树莓派。

方法二:路由器IP-MAC绑定(推荐)

  1. 获取树莓派MAC地址:ip link,找到eth0wlan0link/ether字段,如dc:a6:32:xx:xx:xx

  2. 登录路由器后台(192.168.0.1),找到"DHCP服务器" -> "静态地址分配"或"IP与MAC绑定"。

  3. 添加条目:MAC地址填树莓派的,IP地址填想固定的(如192.168.0.100),保存。

  4. 重启树莓派网络或重启树莓派,之后每次都会获取该固定IP。

我选择了路由器绑定,简单有效,而且所有设备的固定IP统一管理。


八、最终成功

设置好固定IP后,用MobaXterm连接192.168.0.100,瞬间进入树莓派命令行。至此,无头配置圆满完成!


总结与避坑指南

  1. 新版系统无默认用户 :2023年后的Raspberry Pi OS移除了pi用户,必须通过Imager预配置或首次启动时创建。

  2. WiFi配置文件细节

    • 文件名必须正确,注意扩展名隐藏问题。

    • 中文SSID必须使用UTF-8编码保存。

    • 特殊字符密码直接写在引号内,无需转义。

    • country=CN不能少。

  3. 救援模式init=/bin/sh可能因终端交互问题卡住,systemd.unit=rescue.target需要root密码,不如直接重刷或编辑shadow文件。

  4. SSH连接被拒:先检查SSH服务是否运行,再检查防火墙,最后确认IP是否变化。

  5. 固定IP:推荐在路由器上设置IP-MAC绑定,避免树莓派端配置出错。

  6. 串口大法好:当所有方法失效时,USB转TTL串口模块是终极调试利器,能看到启动日志,直接登录系统。

希望这篇文章能帮你少走弯路,顺利玩转树莓派!如果有其他问题,欢迎留言交流。

相关推荐
JZZC21 天前
1.1 基础的SSH配置
计算机网络·ssh
深念Y2 天前
Windows 11 工具链部署与 SSH 踩坑笔记
windows·笔记·ssh
mooooooooooye4 天前
2026 年跨平台 SSH 客户端怎么选?Xterminal、Termius、MobaXterm 谁更合适
服务器·网络·ssh
小王C语言4 天前
Windows 无法使用 ssh 连接虚拟机(ubuntu),网络没问题的情况下
运维·ssh
mooooooooooye5 天前
SSH 工具越用越乱,Xterminal 先清掉这三类失效连接
运维·ssh·github
梓沂6 天前
SSH 公钥认证配置指南:从生成密钥到配置 SFTP 服务器
ssh
lswzw6 天前
我开源了 ssh-mcp:让支持 MCP 的 AI 客户端通过 SSH 查服务器、查数据库、读文件和部署
人工智能·开源·ssh
北冥you鱼6 天前
HTTPS 推送失败?改用 SSH 一键搞定
网络协议·https·ssh
zhendianluli7 天前
VS Code Remote-SSH 连接故障排查手册(精详版)
运维·ssh
Zkaisen7 天前
【Gitee】SSH 公钥、GPG 公钥、私人令牌的区别
运维·gitee·ssh