动机/背景¶
本文的泛用性并不大,因而需要道明写作动机,以供后来人参考。
遇到的问题在尝试只能使用网线连接树莓派 4B时,即不使用ssh等远程连接手段时,在windows 11 的power shell中arp -a
未显示树莓派的ip4
地址,但是ping raspberrypi.local
能够发现树莓派返回的ipv6地址。
树莓派使用的是Network-Manager网络服务。
问题描述¶
在此对问题进行详细描述。
1 2 3 4 5 6 7 8 9 10 11 12 |
|
windows
上查看链接树莓派的相应链接:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
核心原因¶
- 没有 DHCP 服务器 给树莓派分配 IP。
- 运行 dhclient 发出了 DHCP Discover,但另一端(Windows)并没有回应 DHCP Offer。
- Windows 默认不会给以太网直连设备分配 IP(除非开了网络共享或者手动设定)。
修改方法¶
树莓派使用的是Network-Manager网络服务,把 eth0
设置为静态 IPv4。
确认当前连接名与设备状态¶
在 Pi 上运行:
1 2 |
|
DEVICE
列中对应 eth0
的连接名(例如常见 Wired connection 1
),后面命令里把 <CON_NAME>
替换为它;或直接用 ifname eth0
新建连接。 用 nmcli 把 eth0 设为静态 IP¶
Chat老师推荐地址是 192.168.1.2/24
,网关 192.168.1.1
,DNS 用 192.168.1.1
(或 8.8.8.8
):
- 第一种:修改已有连接:
1 2 3 4 5 6 7 8 9
# 替换 <CON_NAME> 为实际连接名,比如 "Wired connection 1" sudo nmcli connection modify "<CON_NAME>" \ ipv4.addresses 192.168.1.2/24 \ ipv4.gateway 192.168.1.1 \ ipv4.dns "192.168.1.1 8.8.8.8" \ ipv4.method manual # 使修改生效 sudo nmcli connection up "<CON_NAME>" ifname eth0
- 第二种:直接新建一个只针对 eth0 的静态连接:
1 2
sudo nmcli connection add type ethernet ifname eth0 con-name static-eth0 \ ipv4.addresses 192.168.1.2/24 ipv4.gateway 192.168.1.1 ipv4.dns "8.8.8.8" ipv4.method manual sudo nmcli connection up static-eth0
之后就可以192.168.1.2
找到树莓派 4B。