1. 概览

本文满足以下树莓派使用场景:
- 无显示器,无键盘鼠标,无小型路由器。
- 有Wi-Fi网络,但无Wi-Fi网络管理员权限(校园网/企业网),树莓派需要连接到互联网。
- 有USB转TTL串口模块。电脑通过串口登陆树莓派终端。
- 有一根网线。电脑可以通过网口直连树莓派。
- 整套设备携带到没有网络的地方也可用。
- 不影响笔记本网口正常功能。
2. 配置串口终端
- 硬件:树莓派5
- 系统:Raspbian或Ubuntu Server 24.04
使用树莓派的Imager软件烧录完SD卡后,打开SD卡,boot盘,找到config.txt
文件,在尾部添加:
enable_uart=1
dtoverlay=uart0
dtparam=uart0_console
前两行开启串口Shell终端,可以登录控制台。第三行开启串口内核日志。

引脚为上图中的 GPIO14, GPIO15,电平为3.3V。接好USB转串口(TXD接RXD,RXD接TXD,GND接GND),插入SD卡。上电,等待一段时间就可以从串口看到内核启动日志。并且可以输入用户名、密码登录终端。
3. 配置网线直连终端
网上有很多教程是在电脑上把Wi-Fi网络共享给网口,这样电脑就变成一个路由器,树莓派网口接到电脑上就可以访问互联网。
但是本文将采用相反的方案。不修改电脑的网口配置,而是在树莓派的网口启动一个DHCP server,把树莓派变成路由器。
(1) 给树莓派网口配置静态IP
不同操作系统的配置不同。例如Ubuntu桌面版有Network Manager,而Server版没有。这里只展示Ubuntu Server版的配置。Ubuntu Server 24.04通过netplan
配置网口。
首先查看网口名称:
bash
ip a
以太网口名通常为eth0
检查现有的Netplan配置
sudo cat /etc/netplan/*.yaml
我这里的文件名是50-cloud-init.yaml
给网口配置静态ip:
bash
sudo nano /etc/netplan/50-cloud-init.yaml
network:
version: 2
wifis:
wlan0:
optional: true
dhcp4: true
access-points:
"Wi-Fi SSID":
auth:
key-management: "psk"
password: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
ethernets:
eth0:
addresses: [192.168.10.1/24]
routes:
- to: 192.168.10.0/24
via: 192.168.10.1
其中wifis
的部分可能在SD卡烧录完毕,配置镜像的时候就已经输入好密码了,这部分不用动。
增加一个和wifis
同级别的ethernets
部分。配置静态IP地址为192.168.10.1/24
,注意不要和你的校园网/企业网的网段冲突。如果冲突可以换成其他网段。
应用配置
bash
sudo netplan apply
(2) 在树莓派网口启动DHCP服务器
安装dnsmasq
bash
sudo apt update
sudo apt install dnsmasq
配置dnsmasq
bash
sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.bak
sudo nano /etc/dnsmasq.conf
port=0 # 禁用 DNS 服务
interface=eth0 # 仅监听 eth0
dhcp-range=192.168.10.100,192.168.10.200,255.255.255.0,24h
dhcp-option=option:router,192.168.10.1
dhcp-option=option:dns-server,114.114.114.114 # 指定外部 DNS
这里我们只希望dnsmasq启动DHCP server,而不需要它帮我们代理DNS。因此这里需要port=0
。
重启dnsmasq
bash
sudo systemctl restart dnsmasq
(3) 通过网口ssh直连
重启树莓派
bash
sudo reboot
重启后,用电脑的网口应该就可以访问树莓派了:
bash
# 优先通过密码来登录
ssh -o PreferredAuthentications=password [email protected]
4. 笔记本电脑网络接口优先级
以上配置完成后,可能有些笔记本连上网口后会无法连接互联网。这是因为以太网口的默认路由优先级比Wi-Fi网卡高,访问互联网的请求都走到树莓派去了。
我们可以修改笔记本的路由表,使得流量优先路由到Wi-Fi网卡。最终效果:
- 网线 → 树莓派(
eth0
,IP:192.168.10.1
),用于 SSH。 - Wi-Fi → 路由器(互联网),用于上网。
- 不连接树莓派时,网口仍然保持正常的功能。
这里只展示Ubuntu笔记本电脑的配置方式:
(1) 查看当前路由
以下内容在Ubuntu笔记本电脑,本地执行:
bash
ip route
可能会看到以下内容:
default via 192.168.10.1 dev enp0s31f6 proto dhcp metric 20500
default via 192.168.2.1 dev wlp0s20f3 proto dhcp metric 20600
169.254.0.0/16 dev enp0s31f6 scope link metric 1000
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown
其中Wi-Fi网卡是wlp0s20f3
,以太网口是enp0s31f6
。Wi-Fi网口优先级比以太网口低。
(2) 修改默认路由
Ubuntu桌面版有Network Manager,可以比较方便修改优先级。
bash
ip a # 确认接口名称(如 wlan0、eth0)
ip route # 查看当前路由表(注意默认路由的 metric)
检查Network Manager连接名称:
bash
nmcli connection show
降低 Wi-Fi 的 metric(数值越小优先级越高)
bash
sudo nmcli connection modify "MyWiFi" ipv4.route-metric 100 # Wi-Fi 优先级更高
提高有线连接的 metric(数值越大优先级越低):
bash
sudo nmcli connection modify "有线连接名称" ipv4.route-metric 200
重新激活连接:
bash
sudo nmcli connection up "MyWiFi"
sudo nmcli connection up "有线连接名称"
验证优先级
$ ip route
default via 192.168.2.1 dev wlp0s20f3 proto dhcp metric 20100
default via 192.168.10.1 dev enp0s31f6 proto dhcp metric 20200
169.254.0.0/16 dev enp0s31f6 scope link metric 1000
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown
...
- 关键点 :Wi-Fi 的
metric
(20100)比有线(20200)更小,因此优先级更高。
如此便可实现网线ssh直连树莓派,同时笔记本通过Wi-Fi访问互联网不受影响。