野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5376|回复: 1

[经验\资料] 四种设置静态ip的方法

[复制链接]
发表于 2023-1-30 15:59:11 | 显示全部楼层 |阅读模式
本帖最后由 おおおじ。 于 2023-1-30 17:50 编辑

前言
我们经常使用ssh、nfs等服务或者工具,远程调试或者和开发板通信,希望开发板能够固定ip,方便后续的使用和调试,本文分享4种设置静态ip的方法给大家

开发环境
开发板:野火imx6ull或者stm32mp157
开发板镜像:野火Debian_2022_12_24

一、使用systemd-network设置静态ip
在开发板上执行以下两条命令

sudo mv /etc/network/interfaces /etc/network/interfaces.save
sudo systemctl enable systemd-networkd

第一条指令将之前/etc/network/interfaces文件重命名为interfaces.save
第二条指令使能systemd-networkd服务

在/etc/systemd/network目录下增加需要配置的网卡配置信息文件,文件以.network后缀作为结尾。 如新建一个配置网卡eth1文件 eth1.network,文件内容如下:

[Match]
Name=eth1

[Network]
Address=192.168.103.180/24
Gateway=192.168.103.1
DNS=192.168.103.1


Address是ip,Gateway是网关、DNS是DNS服务器,Address后面的/24是掩码,为255.255.255.0,不能漏了

然后保存重启开发板即可
野火论坛202301301533462326..png

二、使用自启动脚本设置静态ip
创建自启动脚本,在自启动脚本里面添加设置ip命令

参考1. 探索Systemd — [野火]嵌入式Linux镜像构建与部署——基于LubanCat-i.MX6ULL-MP157开发板 文档 (embedfire.com)

在/opt/scripts/boot目录下创建一个eth1ip.sh(名字随意),内容如下
#!/bin/bash
sudo ifconfig eth1 192.168.103.180 up

野火论坛202301301539396952..png

添加执行权限
sudo chmod 0755 /opt/scripts/boot/eth1ip.sh

在/etc/systemd/system/目录下创建一个eth1ip.service配置文件,内容如下

[Unit]

Description = eth1ip daemon

[Service]
ExecStart = /opt/scripts/boot/eth1ip.sh
Restart = always
Type = simple

[Install]
WantedBy = multi-user.target


野火论坛202301301542295186..png

使能eth1ip.service
sudo systemctl enable eth1ip
sudo systemctl start eth1ip

查看eth1ip.service状态
sudo systemctl status eth1ip
野火论坛202301301544424138..png

然后重启开发板即可
野火论坛202301301630179618..png

三、使用nmtui
安装nmtui

sudo apt install network-manager

nmtui配置操作参考下面即可
https://doc.embedfire.com/linux/rk356x/quick_start/zh/latest/quick_start/network/network2.html#nmtui

需要注意的是eth1网卡的mac地址是随机的,eth2网卡的mac地址是固定,eth1通过nmtui设置ip后,需要在/boot/uEnv.txt固定mac地址,不然ip仍然是随机的,eth2则不用

eth1网口仍需操作如下步骤:


野火论坛202301301637584019..png

/boot/uEnv.txt 里面的mac地址使用nmtui里面随机产生的地址,两者地址需一致
野火论坛202301301638312832..png


四、使用interfaces
打开 /etc/network/interfaces,在该文件最后添加网口信息
sudo vi /etc/network/interfaces

添加信息如下
auto eth1
iface eth1 inet static
    address 192.168.103.180
    netmask 255.255.255.0
    gateway 192.168.103.254


address 是ip地址,netmask 是掩码,gateway 是网关
野火论坛202301301742024170..png

然后在/etc/init.d/udhcpd最后一个exit 0 前面添加

/etc/init.d/networking restart

野火论坛202301301743038281..png

然后重启开发板即可




回复

使用道具 举报

发表于 2023-1-31 09:13:38 | 显示全部楼层

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-4-23 19:41 , Processed in 0.067108 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表