Linux修改网卡名为eth0并配置IP地址脚本(CentOS和Ubuntu 通适)

Posted 白-胖-子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux修改网卡名为eth0并配置IP地址脚本(CentOS和Ubuntu 通适)相关的知识,希望对你有一定的参考价值。

#!/bin/bash
#
##$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
## Author: sunmy
## MAil: 8528379[@]sina.com
## Date: 2021-8-8
## FileName:setNew_CU_v2.sh
## URL:  www.sunmy.pro
## Description:Auto optimize script of linux running in production.
## Copyright (C): 2021 All rights reserved
##$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
##修改网卡配置文件
#修改网卡名称配置文件
# sed -ir '/GRUB_CMDLINE_LINUX/s/"$/ net.ifnames=0"/p' /etc/default/grub 
# grub2-mkconfig -o /etc/grub2.cfg	
# echo 设置完成请重新启动系统

IP=`hostname -I | awk '{print $1}'`
linux_version() {
awk -F'"|[.]' '/^VERSION_ID/{print $2}'  /etc/os-release
}
## centOS
set_ethc(){

sed -ri.bak '/^GRUB_CMDLINE_LINUX=/s@"$@ net.ifnames=0 biosdevname=0"@' /etc/default/grub
grub2-mkconfig -o /boot/grub2/grub.cfg >& /dev/null
}

set_ipc(){
ETHNAME=`ip addr | sed -nr '/^2/s#^.* ([a-z]+[0-9]+).*#\\1#p' | head -n1`    
mv /etc/sysconfig/network-scripts/ifcfg-${ETHNAME} /etc/sysconfig/network-scripts/ifcfg-${ETHNAME}.bak &>/dev/null    
cat > /etc/sysconfig/network-scripts/ifcfg-eth0 <<EOF
DEVICE=eth0
NAME=eth0
BOOTPROTO=none
ONBOOT=yes
IPADDR=$IP
PREFIX=24
GATEWAY=10.0.0.2
DNS1=10.0.0.88
#DNS1=223.5.5.5
#DNS2=223.6.6.6
EOF
echo "IP地址已修改成功,请重新启动系统后才能生效!"
}

## ubuntu

set_ethu(){
sed -ri.bak '/GRUB_CMDLINE_LINUX=""/s@"(.*)"@"net.ifnames=0 biosdevname=0"@' /etc/default/grub
grub-mkconfig -o /boot/grub/grub.cfg
}

set_ipu(){
cat > /etc/netplan/01-eht0-netcfg.yaml <<EOF
network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      addresses: [$IP/24] 
      gateway4: 10.0.0.2
      nameservers:
        addresses: [10.0.0.88,223.5.5.5, 223.6.6.6] 
EOF
}

set_eth_ip(){
if [ $(linux_version) -eq 6 ];then
        set_ipc
elif [ $(linux_version) -eq 7|8 ];then
        set_ethc
        set_ipc
elif [ $(linux_version) -eq 18|20 ];then   
        set_ethu
        set_ipu
else
        echo "WTF"             
fi
}

set_eth_ip
  • 更新1:
  • 版本判断这地方有问题,不能直接写或 | ,
elif [ $(linux_version) -eq 7|8 ];then # 不能直接或
        set_ethc
        set_ipc
elif [ $(linux_version) -eq 18|20 ];then # 不能直接或   
        set_ethu
        set_ipu
  • 如果写正则或者通配符之类的,需要使用双中括号
elif [[ $(linux_version) =~ 7|8 ]];then # 不能直接或
        set_ethc
        set_ipc
elif [[ $(linux_version) =~ 18|20 ]];then # 不能直接或   
        set_ethu
        set_ipu

以上是关于Linux修改网卡名为eth0并配置IP地址脚本(CentOS和Ubuntu 通适)的主要内容,如果未能解决你的问题,请参考以下文章

CentOS修改网卡名eth0并交互式修改IP地址脚本

linux永久更改eth0的ip地址

centos 修改网卡名称为eth0

内网无路由跨网络服务——单网卡双IP配置

linux 网卡eth0检测时没有IP地址,怎么回事?

#yyds干货盘点# web安全day36:Linux脚本编写自动修改IP地址