listnic=`ifconfig|grep -E "flags"|awk -F ":" '{i++}{print i":"$1}'`
while true;do
clear
echo "请选择要配置的网卡"
for item in $listnic; do
echo $item
done
read -p "输入序号即可:" n
#echo $n
unset i
for item in $listnic; do
let i++
unset nic
if [[ $i -eq $n ]]; then
nic=${item#*:}
break
fi
done
if [[ -z $nic ]]; then
read -p "请输入正确序号!"
else
break
fi
done
#ethtool -i $nic
#网卡流量 ip -s -s link ls $nic
niconfig=`find /etc/sysconfig/network-scripts -name "*${nic}*"|grep -v "bak"`
cp $niconfig "${niconfig}[$(date +%F)]".bak #备份
echo 网卡${nic}原IP配置
items=("BOOTPROTO" "ONBOOT" "IPADDR" "NETMASK" "GATEWAY")
for (( i = 0; i < ${#items[@]}; i++ )); do
sed -n "/^${items[$i]}=.*/p" ${niconfig}
done
read -p "输入IP地址:" IPADDR
read -p "输入掩码:" NETMASK
read -p "输入网关:" GATEWAY
for (( i = 0; i < ${#items[@]}; i++ )); do
case ${items[$i]} in
"BOOTPROTO")
sed -i "s/^BOOTPROTO=.*/BOOTPROTO=static/" ${niconfig}
;;
"ONBOOT")
sed -i "s/^ONBOOT=.*/ONBOOT=yes/" ${niconfig}
;;
*)
sed -i "/^${items[$i]}=.*/d" ${niconfig}
cmd="echo ${items[$i]}=\$${items[$i]}>>${niconfig}"
eval $cmd
;;
esac
done
echo 当前DNS设置
cat /etc/resolv.conf
read -p "是否继续配置dns,y或n" xz
case $xz in
y)
read -p "输入dns地址每个用,隔开:" DNS
sed -i "/^nameserver/d" /etc/resolv.conf
echo $DNS | awk '{split($0,a,",");for(i in a) system("echo nameserver "a[i]"|tee -a /etc/resolv.conf")}'
;;
n)
echo no
;;
*)
echo 都提示你输入y或n了;;
esac
systemctl restart network
ifconfig $nic down
ifconfig $nic up
ifconfig $nic
#systemctl stop firewalld.service
#systemctl disable firewalld.service
方便,快捷,有需要的朋友可以试试哦!