板端修改静态IP

开发板设置静态 IP 并通过 SSH 连接

下面以电脑和开发板通过网线直连为例:

  • 开发板:192.168.123.100/24
  • 电脑:192.168.123.101/24
  • 直连时网关和 DNS 留空

一、在开发板本地确认有线网口

bash 复制代码
ip -br link

作用:列出板端网口。带 LOWER_UP 的接口表示物理链路已建立。

bash 复制代码
cat /sys/class/net/eth0/carrier
cat /sys/class/net/eth1/carrier

作用:确认物理网口状态。输出 1 表示网线已连接,输出 0 表示无物理链路。

bash 复制代码
nmcli device status
nmcli connection show

作用:查看 NetworkManager 管理的设备、已有连接名和当前连接状态。

后续示例假设实际接通的网口是 eth1。如果检测到的是 eth0,将命令中的 eth1 改为 eth0。

二、永久设置开发板静态 IP

方法 A:新建专用连接

bash 复制代码
sudo nmcli connection add type ethernet ifname eth1 con-name static-board ipv4.method manual ipv4.addresses "192.168.123.100/24" ipv6.method disabled

作用:为 eth1 创建名为 static-board 的永久静态 IPv4 配置。

bash 复制代码
sudo nmcli connection modify static-board ipv4.gateway ""
sudo nmcli connection modify static-board ipv4.dns ""
sudo nmcli connection modify static-board connection.autoconnect yes

作用:直连电脑时清空网关和 DNS,并设置开机自动连接。

bash 复制代码
sudo nmcli connection up static-board

作用:立即启用静态 IP 配置。

方法 B:修改已有连接

先用以下命令找到实际连接名:

bash 复制代码
nmcli connection show

假设连接名为 Wired connection 1:

bash 复制代码
sudo nmcli connection modify "Wired connection 1" connection.interface-name eth1
sudo nmcli connection modify "Wired connection 1" ipv4.method manual
sudo nmcli connection modify "Wired connection 1" ipv4.addresses "192.168.123.100/24"
sudo nmcli connection modify "Wired connection 1" ipv4.gateway ""
sudo nmcli connection modify "Wired connection 1" ipv4.dns ""
sudo nmcli connection modify "Wired connection 1" connection.autoconnect yes
sudo nmcli connection up "Wired connection 1" ifname eth1

作用:把已有连接永久绑定到 eth1,设置静态 IP,并立即启用。

方法 A 和方法 B 选择一种即可,不要同时创建多个自动连接配置。

三、关闭不用的连接配置

bash 复制代码
nmcli -f NAME,AUTOCONNECT,DEVICE connection show

作用:查看哪些连接会自动启动,以及它们绑定的网口。

bash 复制代码
sudo nmcli connection modify "Wired connection 2" connection.autoconnect no
sudo nmcli connection modify "Wired connection 3" connection.autoconnect no

作用:关闭不用的旧配置自动连接,防止抢占网口或反复提示 Connect failed。连接名应按实际输出修改。

bash 复制代码
sudo ip addr flush dev eth0
sudo ip link set eth0 down

作用:当 eth1 是工作网口时,清除另一个网口的临时地址并关闭它。不要在工作网口上执行。

四、验证板端配置

bash 复制代码
ip -4 addr show eth1
ip route get 192.168.123.101
nmcli device status

作用:确认 eth1 拥有 192.168.123.100/24,并确认访问电脑时使用正确网口。

bash 复制代码
sudo reboot

作用:重启开发板,验证静态地址和自动连接配置是否能够永久生效。

重启后再次检查:

bash 复制代码
ip -4 addr show eth1

五、永久设置 Ubuntu 电脑端有线 IP

在电脑端执行:

bash 复制代码
ip -br link
nmcli device status

作用:查找电脑的有线网卡名称。下面假设电脑有线网卡名为 enp8s0。

bash 复制代码
sudo nmcli connection add type ethernet ifname enp8s0 con-name board-direct ipv4.method manual ipv4.addresses "192.168.123.101/24" ipv6.method disabled
sudo nmcli connection modify board-direct ipv4.gateway ""
sudo nmcli connection modify board-direct ipv4.dns ""
sudo nmcli connection modify board-direct connection.autoconnect yes
sudo nmcli connection up board-direct

作用:为电脑创建永久的开发板直连配置,并立即启用。

bash 复制代码
ip -4 addr show enp8s0
ip route get 192.168.123.100

作用:确认电脑地址为 192.168.123.101/24,访问板端时使用有线网卡。

六、板端启用 SSH

在开发板本地执行:

bash 复制代码
sudo passwd cat

作用:给板端用户 cat 设置 SSH 登录密码。输入密码时终端不会显示字符。

bash 复制代码
sudo apt install -y openssh-server
sudo systemctl enable --now ssh
sudo systemctl status ssh --no-pager

作用:安装 SSH 服务、设置开机自动启动并检查运行状态。

如果板端启用了 UFW:

bash 复制代码
sudo ufw allow OpenSSH

作用:允许 SSH 连接通过防火墙。

七、电脑端测试并登录

bash 复制代码
ping -c 4 192.168.123.100

作用:测试电脑与开发板之间的 IP 连通性。

bash 复制代码
ssh cat@192.168.123.100

作用:通过 SSH 登录开发板。

八、同一 IP 更换开发板后的 SSH 指纹处理

先在开发板本地查看当前主机指纹:

bash 复制代码
sudo ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub

作用:显示当前开发板的 ED25519 主机指纹,供电脑端核对。

确认指纹属于当前开发板后,在电脑端执行:

bash 复制代码
ssh-keygen -f ~/.ssh/known_hosts -R "192.168.123.100"
ssh cat@192.168.123.100

作用:删除该 IP 对应的旧 SSH 主机密钥,然后重新记录当前开发板的密钥。

九、临时恢复连接

当 NetworkManager 配置暂时有问题时,可在开发板本地执行:

bash 复制代码
sudo ip addr flush dev eth1
sudo ip addr add 192.168.123.100/24 dev eth1
sudo ip link set eth1 up

作用:立即给 eth1 配置临时地址以恢复连接;重启后失效。

注意事项

  • carrier=0 或 NO-CARRIER 表示物理链路没有建立,修改 IP 不能解决网线或网口问题。
  • 同一个静态 IP 只能配置在一个实际工作的网口上。
  • 确保地址写成 192.168.123.100,不要误写成 192.16.123.100。
  • 直连电脑时不填写网关;连接路由器时,网关应填写路由器地址,并确保静态 IP 未被其他设备占用。
  • 172.17.0.1 通常是 Docker 内部网络地址,不能作为电脑连接板端的地址。
相关推荐
|_⊙2 小时前
网络层协议 IP
服务器·网络·tcp/ip
无言听风雨丶2 小时前
Kubernetes Service Mesh 与 mTLS 实战:从网络可达走向零信任服务通信
网络·kubernetes·service_mesh
叼烟扛炮3 小时前
Linux 学习笔记(六十):单线程的逆袭——epoll 高并发服务器实战
linux·服务器·网络·笔记·学习·算法
沫璃染墨4 小时前
从零入门计算机网络系列(十五):TCP可靠传输机制详解——从序号与确认应答到乱序处理
服务器·网络·c++·tcp/ip·tcp
xiaoye-duck5 小时前
《C++ 项目:手写大模型接入 SDK》本地 Ollama 部署与适配
开发语言·网络·c++·语言模型
流浪0016 小时前
计算机网络篇20:网络层——IP 协议的定位与 IPv4 报头字段,从 20 字节首部到 TTL 防环
tcp/ip·计算机网络·ttl·网络层协议·ip报头
zhengfei6116 小时前
CVE-2026-98432:Linux 内核 TCP 释放后重用漏洞,CVSS 9.8 但补丁覆盖极不均衡
linux·运维·tcp/ip
叼烟扛炮7 小时前
Linux 学习笔记(六十一):网络编程毕业设计——Reactor 反应堆模式
linux·网络·笔记·学习·课程设计
2401_868534787 小时前
【网络安全
网络·python
xyzzklk7 小时前
变相解决华为Mate 8锁屏后无法建立入站网络连接
linux·运维·服务器·网络·华为·go·安卓