欢迎光临
我们一直在努力

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

操作步骤:

  • 创建并写入内容:

    bash

    vi /etc/init.d/S99static_ip

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

  • 赋予执行权限:

    bash

    chmod +x /etc/init.d/S99static_ip

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

  • 重启开发板:

    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+)

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

    bash

    sudo nano /etc/netplan/01-netcfg.yaml

  • 在 network 下的 ethernets 部分,为 ens33 添加静态 IP 配置,注意不要影响 ens37(NAT)。示例如下:

    yaml

    network:
    version: 2
    ethernets:
    ens33:
    addresses:
    – 192.168.1.101/24
    # 不要设置网关,以免干扰上网
    nameservers: {} # 如果有需要可添加 DNS,一般不需要
    ens37:
    dhcp4: true # 保持 NAT 网卡自动获取

  • 保存文件,然后应用配置:

    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 是否自动生效。

    赞(0)
    未经允许不得转载:171主机测评 » Ubuntu网络配置
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址