Ubuntu网络配置

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.local 中 exit 0 之前添加:

bash

ifconfig eth1 192.168.1.100 netmask 255.255.255.0 up

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值