编写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}
确保网卡能够真正进入到正常连接并应用新配置的状态,解决可能存在的设备处于未连接状态等问题