当前位置: 首页 > article >正文

编写Linux系统rhel9的网络配置脚本

要求:

名称:vmset.sh

操作:vmset.sh 后加网卡名,ip 即可配置好网卡的IP

操作:

在/bin路径下编写脚本vmset.sh,可以直接执行,不用加其他路径

vim /bin/vmset.sh
#!/bin/bash

interface_name=$1
ip_address=$2

cat > /etc/NetworkManager/system-connections/${interface_name}.nmconnection <<EOF
[connection]
id=${interface_name}
type=ethernet
interface-name=${interface_name}

[ipv4]
address1=${ip_address}/24, 172.25.254.2
method=manual
dns=114.114.114.114

EOF

chmod 600 /etc/NetworkManager/system-connections/${interface_name}.nmconnection

nmcli connection reload

nmcli connection modify ${interface_name} ipv4.method manual ipv4.addresses ${ip_address}/24 ipv4.gateway 172.25.254.2 ipv4.dns 114.114.114.114

nmcli connection up ${interface_name}

nmcli device connect ${interface_name}

脚本开头参数获取

使用$1,$2将两个参数值传递给interface_name 和ip_address 

生成配置文件

cat > /etc/NetworkManager/system-connections/${interface_name}.nmconnection <<EOF
[connection]
id=${interface_name}
type=ethernet
interface-name=${interface_name}

[ipv4]
address1=${ip_address}/24, 172.25.254.2
method=manual
dns=114.114.114.114

EOF

使用 cat 命令结合输入重定向和<<EOF 和 EOF 之间的内容,生成一个 NetworkManager 管理网络连接的配置文件

配置文件的路径为 /etc/NetworkManager/system-connections/${interface_name}.nmconnection,文件名根据传入的网卡名称来命名(通过 ${interface_name} 变量替换),方便针对不同网卡进行单独配置管理。

[connection] 部分:

id=${interface_name}:设置连接的标识(id)为传入的网卡名称,便于识别和管理该网络连接。

type=ethernet:指明这是一个以太网类型的网络连接。

interface-name=${interface_name}:明确对应的网络接口名称

[ipv4] 部分:

address1=${ip_address}/24, 172.25.254.2:设置 IPv4 地址相关信息,设置 IP 地址以及子网掩码长度为 24 位,172.25.254.2 设定为网关地址。

method=manual:指定 IP 地址的配置方法为手动。

dns=114.114.114.114:设置 DNS 服务器地址为 114.114.114.114,用于域名解析服务。

设置配置文件权限

chmod 600 /etc/NetworkManager/system-connections/${interface_name}.nmconnection

文件所有者具有读写权限(读权限为 4 ,写权限为 2 ,相加得 6 ),而所属组和其他用户都没有任何权限

重新加载网络配置连接

nmcli connection reload

修改指定网卡连接的 IPv4 配置参数

nmcli connection modify ${interface_name} ipv4.method manual ipv4.addresses ${ip_address}/24 ipv4.gateway 172.25.254.2 ipv4.dns 114.114.114.114

再次使用 nmcli connection modify ,明确告诉 NetworkManager 修改指定网卡,连接对应的 IPv4 配置参数,确保配置准确、及时生效,覆盖可能存在的冲突配置,强制让网卡按照脚本期望的静态 IP、网关和 DNS 等设置进行配置。

激活指定网卡连接

nmcli connection up ${interface_name}

连接指定的网络设备

nmcli device connect ${interface_name}

确保网卡能够真正进入到正常连接并应用新配置的状态,解决可能存在的设备处于未连接状态等问题


http://www.kler.cn/a/447751.html

相关文章:

  • mapStateToProps
  • 0基础学前端-----CSS DAY9
  • 使用CNN模型训练图片识别(键盘,椅子,眼镜,水杯,鼠标)
  • 基于java web在线商城购物系统源码+论文
  • Apache Solr RCE(CVE-2017-12629)--vulhub
  • 二叉搜索树Ⅲ【东北大学oj数据结构8-3】C++
  • PYTHON 自动化办公:更改图片尺寸大小
  • Spring之我见 - 从IOC谈到AOP实现原理
  • YOLO模型分布式训练:步骤与操作方式
  • 【面经】python后端开发工程师
  • CFD POST导出动画
  • Open3D 进阶(26)Hierarchical Clustering算法实现点云分割
  • 【C语言1】C语言常见概念(总结复习篇)——库函数、ASCII码、转义字符
  • 入门靶机:DC-1的渗透测试
  • OpenAI直播发布第11天:ChatGPT桌面客户端升级,就这?
  • 一些经济政治学类书籍推荐 --- 以及与之相关我的经历和理解
  • 前端生成docx文档、excel表格、图片、pdf文件
  • docker 软连接修改存储位置
  • MySQL列类型
  • 知网研学 | 知网文献(CAJ+PDF)批量下载
  • 前端实现图片压缩
  • C++进阶-1-单继承、多继承、虚继承
  • SpringBoot配置Swagger和MybatisPlus
  • memcached 与 redis 的区别?
  • 集成方案 | Docusign + 金蝶云,实现合同签署流程自动化!
  • Ubuntu22.04配置3D gaussian splatting