找回密码
 立即注册
首页 业界区 业界 树莓派无显示器方案-串口终端与网口直连终端 ...

树莓派无显示器方案-串口终端与网口直连终端

糙昧邵 2025-6-3 10:51:32
1. 概览

1.webp

本文满足以下树莓派使用场景:

  • 无显示器,无键盘鼠标,无小型路由器。
  • 有Wi-Fi网络,但无Wi-Fi网络管理员权限(校园网/企业网),树莓派需要连接到互联网。
  • 有USB转TTL串口模块。电脑通过串口登陆树莓派终端。
  • 有一根网线。电脑可以通过网口直连树莓派。
  • 整套设备携带到没有网络的地方也可用。
  • 不影响笔记本网口正常功能。
2. 配置串口终端


  • 硬件:树莓派5
  • 系统:Raspbian或Ubuntu Server 24.04
使用树莓派的Imager软件烧录完SD卡后,打开SD卡,boot盘,找到config.txt文件,在尾部添加:
  1. enable_uart=1
  2. dtoverlay=uart0
  3. dtparam=uart0_console
复制代码
前两行开启串口Shell终端,可以登录控制台。第三行开启串口内核日志。
2.webp

引脚为上图中的 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配置网口。
首先查看网口名称:
  1. ip a
复制代码
以太网口名通常为eth0
检查现有的Netplan配置
  1. sudo cat /etc/netplan/*.yaml
复制代码
我这里的文件名是50-cloud-init.yaml
给网口配置静态ip:
  1. sudo nano /etc/netplan/50-cloud-init.yaml
复制代码
  1. network:
  2.   version: 2
  3.   wifis:
  4.     wlan0:
  5.       optional: true
  6.       dhcp4: true
  7.       access-points:
  8.         "Wi-Fi SSID":
  9.           auth:
  10.             key-management: "psk"
  11.             password: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
  12.   
  13.   ethernets:
  14.     eth0:
  15.       addresses: [192.168.10.1/24]
  16.       routes:
  17.        - to: 192.168.10.0/24
  18.          via: 192.168.10.1
复制代码
其中wifis的部分可能在SD卡烧录完毕,配置镜像的时候就已经输入好密码了,这部分不用动。
增加一个和wifis同级别的ethernets部分。配置静态IP地址为192.168.10.1/24,注意不要和你的校园网/企业网的网段冲突。如果冲突可以换成其他网段。
应用配置
  1. sudo netplan apply
复制代码
(2) 在树莓派网口启动DHCP服务器

安装dnsmasq
  1. sudo apt update
  2. sudo apt install dnsmasq
复制代码
配置dnsmasq
  1. sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.bak
  2. sudo nano /etc/dnsmasq.conf
复制代码
  1. port=0                  # 禁用 DNS 服务
  2. interface=eth0          # 仅监听 eth0
  3. dhcp-range=192.168.10.100,192.168.10.200,255.255.255.0,24h
  4. dhcp-option=option:router,192.168.10.1
  5. dhcp-option=option:dns-server,114.114.114.114  # 指定外部 DNS
复制代码
这里我们只希望dnsmasq启动DHCP server,而不需要它帮我们代理DNS。因此这里需要port=0。
重启dnsmasq
  1. sudo systemctl restart dnsmasq
复制代码
(3) 通过网口ssh直连

重启树莓派
  1. sudo reboot
复制代码
重启后,用电脑的网口应该就可以访问树莓派了:
  1. # 优先通过密码来登录
  2. ssh -o PreferredAuthentications=password pi@192.168.10.1
复制代码
4. 笔记本电脑网络接口优先级

以上配置完成后,可能有些笔记本连上网口后会无法连接互联网。这是因为以太网口的默认路由优先级比Wi-Fi网卡高,访问互联网的请求都走到树莓派去了。
我们可以修改笔记本的路由表,使得流量优先路由到Wi-Fi网卡。最终效果:

  • 网线 → 树莓派(eth0,IP: 192.168.10.1),用于 SSH。
  • Wi-Fi → 路由器(互联网),用于上网。
  • 不连接树莓派时,网口仍然保持正常的功能。
这里只展示Ubuntu笔记本电脑的配置方式:
(1) 查看当前路由

以下内容在Ubuntu笔记本电脑,本地执行:
  1. ip route
复制代码
可能会看到以下内容:
  1. default via 192.168.10.1 dev enp0s31f6 proto dhcp metric 20500
  2. default via 192.168.2.1 dev wlp0s20f3 proto dhcp metric 20600
  3. 169.254.0.0/16 dev enp0s31f6 scope link metric 1000
  4. 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,可以比较方便修改优先级。
  1. ip a               # 确认接口名称(如 wlan0、eth0)
  2. ip route           # 查看当前路由表(注意默认路由的 metric)
复制代码
检查Network Manager连接名称:
  1. nmcli connection show
复制代码
降低 Wi-Fi 的 metric(数值越小优先级越高)
  1. sudo nmcli connection modify "MyWiFi" ipv4.route-metric 100   # Wi-Fi 优先级更高
复制代码
提高有线连接的 metric(数值越大优先级越低)
  1. sudo nmcli connection modify "有线连接名称" ipv4.route-metric 200
复制代码
重新激活连接:
  1. sudo nmcli connection up "MyWiFi"
  2. sudo nmcli connection up "有线连接名称"
复制代码
验证优先级
  1. $ ip route
  2. default via 192.168.2.1 dev wlp0s20f3 proto dhcp metric 20100
  3. default via 192.168.10.1 dev enp0s31f6 proto dhcp metric 20200
  4. 169.254.0.0/16 dev enp0s31f6 scope link metric 1000
  5. 172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown
  6. ...
复制代码

  • 关键点:Wi-Fi 的 metric(20100)比有线(20200)更小,因此优先级更高。
如此便可实现网线ssh直连树莓派,同时笔记本通过Wi-Fi访问互联网不受影响。

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册