Ubuntu网络配置
2026/6/19 17:07:49 网站建设 项目流程

ubuntu网络配置比较复杂,经过多次试错及验证,将目前正确的网络配置记录下来。

物理连接:

笔记本通过网线直连开发板,笔记本通过扩展坞增加了一个网口,网线插扩展坞上与开发板连接。

以太网2 就是扩展坞的网线。

虚拟机中需要配置两个网络适配器,如下:

windows的IP是192.168.1.200,ubuntu的IP是192.168.1.101,开发板的IP是192.168.1.100。

注意电脑的IP设置,默认网关留空,不写。

上面配置完后,再按照下面配置ubuntu和开发板的IP,就能ping通了。

ping通后,想上电后能自动生效,开发板进行如下设置

第一步:立即恢复网络(临时生效)

通过adb shell登录开发板,执行以下命令(确保网线插在eth1上):

bash

ip addr flush dev eth1 ip addr add 192.168.1.100/24 dev eth1 ip link set eth1 up

然后测试:

bash

ping 192.168.1.200 # Windows ping 192.168.1.101 # Ubuntu

如果通,说明网卡正常,我们继续固化。


📌 第二步:处理旧的rc.local

既然方案一(加延时)不可行,建议你/etc/rc.local恢复为默认,避免干扰新方案。你可以这样操作:

bash

vi /etc/rc.local

将内容改为:

text

#!/bin/sh -e exit 0

保存退出。


第三步:实施方案三(自定义 init 脚本)

创建/etc/init.d/S99static_ip,内容如下(注意大小写和路径):

bash

#!/bin/sh case "$1" in start) sleep 5 ip addr flush dev eth1 2>/dev/null ip addr add 192.168.1.100/24 dev eth1 ip link set eth1 up ;; stop) ;; *) echo "Usage: $0 {start|stop}" exit 1 ;; esac exit 0

操作步骤

  1. 创建并写入内容:

    bash

    vi /etc/init.d/S99static_ip

    粘贴上述内容(按i进入插入模式,粘贴后按ESC,输入:wq保存)。

  2. 赋予执行权限:

    bash

    chmod +x /etc/init.d/S99static_ip
  3. 验证脚本是否会被执行(重启后)。为了确认,可以添加日志记录,在start部分增加echo "S99static_ip executed" > /tmp/static_ip.log。但这不是必须的。

  4. 重启开发板:

    reboot 可以ping通。

ubuntu的操作:

Ubuntu(虚拟机)固化 ens33 的 IP

Ubuntu 目前主流使用Netplan(新版本)或/etc/network/interfaces(旧版本)。请先确认你用的是哪种:

bash

ls /etc/netplan/
  • 如果该目录下有.yaml文件(如01-netcfg.yaml),则使用Netplan方法。

  • 如果该目录为空或不存在,则使用/etc/network/interfaces方法。

方法 A:使用 Netplan(推荐,适用于 Ubuntu 18.04+)

  1. 编辑配置文件(通常为/etc/netplan/01-netcfg.yaml):

    bash

    sudo nano /etc/netplan/01-netcfg.yaml
  2. network下的ethernets部分,为ens33添加静态 IP 配置,注意不要影响 ens37(NAT)。示例如下:

    yaml

    network: version: 2 ethernets: ens33: addresses: - 192.168.1.101/24 # 不要设置网关,以免干扰上网 nameservers: {} # 如果有需要可添加 DNS,一般不需要 ens37: dhcp4: true # 保持 NAT 网卡自动获取
  3. 保存文件,然后应用配置:

    bash

    sudo netplan apply

方法 B:使用启动脚本(如果 interfaces 方法不支持)

如果你的开发板没有/etc/network/interfaces,可以将配置命令加入启动脚本,例如在/etc/rc.localexit 0之前添加:

bash

ifconfig eth1 192.168.1.100 netmask 255.255.255.0 up

并确保/etc/rc.local可执行。

重启 Ubuntu 或开发板后,再次执行ifconfig检查 IP 是否自动生效。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询