在 Ubuntu 上使用命令行 (CLI) 实现网络共享的标准作业程序 (SOP)。
连接方式:
树莓派 <---> Hub(USB转网口) <---> 网线 <---> Ubuntu 电脑网口 (enp45s0)
目标:Ubuntu 电脑通过 Wi-Fi 上网,并将网络共享给网口,让树莓派获得 IP (10.42.0.x) 并能上网。
首先查看网卡名称和对应的连接名字(NAME)。
nmcli device目标:找到 TYPE 为 ethernet 的那一行。
假设结果:DEVICE 是 enp45s0,CONNECTION 是 Wired connection 1。
将该有线连接的 IPv4 模式修改为 shared(相当于 Windows 的"允许其他用户通过此计算机连接")。
nmcli connection modify "Wired connection 1" ipv4.method shared配置修改后必须重启接口才能启动 DHCP 服务。
nmcli connection down "Wired connection 1"
nmcli connection up "Wired connection 1"确认 Ubuntu 网口是否变成了网关 IP(通常是 10.42.0.1)。
ifconfig enp45s0
# 或者
ip addr show enp45s0扫描 10.42.0.x 网段,寻找除了 .1 以外的设备。
sudo nmap -sn 10.42.0.0/24如果没有安装 nmap,可以使用以下替代方法:
# 方法 1: 使用 arp
arp -n
# 方法 2: 查看 DHCP 租约
cat /var/lib/misc/dnsmasq.leases拿到 IP(比如 10.42.0.75)后,直接登录。
ssh pollen@10.42.0.75这个配置是永久的。下次你把树莓派拔了,过几天再插上,只要还是插在这个网口,Ubuntu 会自动识别并再次启动共享模式,不需要重新敲命令。
如果你以后要把这个网口插到墙上的路由器上网,记得把模式改回"自动":
nmcli connection modify "Wired connection 1" ipv4.method auto
nmcli connection up "Wired connection 1"树莓派端网络状态示例:
eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.42.0.75 netmask 255.255.255.0 broadcast 10.42.0.255
ether 6c:1f:f7:24:1f:fd txqueuelen 1000 (Ethernet)
WiFi 连接状态:
wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.57.101.85 netmask 255.255.255.0 broadcast 10.57.101.255
ether 2c:cf:67:f8:b7:44 txqueuelen 1000 (Ethernet)
确保 WiFi 配置为自动连接:
# 查看自动连接设置
nmcli connection show "YOUR_WIFI_SSID" | grep autoconnect
# 输出应为:
# connection.autoconnect: yes# 连接到 WiFi
sudo nmcli device wifi connect "SSID_NAME" password "PASSWORD"
# 查看所有连接
nmcli connection showA: 确认以下几点:
- 网线是否插紧
- Ubuntu 共享模式是否已开启
- 树莓派是否已开机
- 使用
arp -n或查看 DHCP 租约
A: 检查:
- IP 地址是否正确
- 树莓派 SSH 服务是否运行
- 防火墙是否阻止连接
A: 检查:
- Ubuntu 电脑是否已连接互联网
- Ubuntu 防火墙/NAT 设置
- DNS 解析是否正常
####### #######
第一步:找到有线连接的名字 在终端输入:
Bash
nmcli connection show 你会看到类似这样的列表:
Plaintext
NAME UUID TYPE DEVICE
Wired connection 1 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx ethernet eth1
HotspotName xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx wifi wlan0
请记下 DEVICE 列为 eth1 的那一行的 NAME(通常叫 Wired connection 1 或者 ethernet-eth1)。
第二步:修改配置 (关键) 假设你的有线连接名字叫 "Wired connection 1" (请替换成你实际的名字),执行这条命令:
Bash
sudo nmcli connection modify "Wired connection 1" ipv4.never-default yes
sudo nmcli connection modify "Wired connection 1" ipv6.never-default yes 第三步:重启连接生效 Bash
sudo nmcli connection up "Wired connection 1"