#!/bin/bash
#腳本作者和日期
#author: PEI
#date: 20250319
#檢查root權限
if
[ "$USER" != "root" ]; then
echo "錯誤:非root用戶,權限不足!"
exit 0
fi
#防火墻與高級權限 systemctl stop firewalld && systemctl disable firewalld && echo "防火墻已經關閉" sed -i 's/SELINUX=*/SELINUX=disabled/g' /etc/selinux/config && setenforce 0 && echo "關閉selinux"
#服務配置
read -ep "請輸入定義的網段: " ZHAOXIAO
read -ep "請輸入網段的掩碼: " BUSHI
read -ep "請輸入IP地址池起始地址: " XIAO
read -ep "請輸入IP地址池結束地址: " MAO
read -ep "請輸入首選DNS地址: " ONE
read -ep "請輸入備選DNS地址: " TWO
read -ep "請輸入網關IP地址:" THREE
read -ep "請輸入廣播地址: " FOUR
IP=$(hostname -I | awk '{print $1}')
echo "
subnet $ZHAOXIAO netmask $BUSHI { #定義IP和掩碼
range $XIAO $MAO; #指定IP地址的范圍
option domain-name-servers $ONE,$TWO; #DNS服務器 (自己的DHCP的網關,或是地區的DNS服務器)
option routers $THREE; #網關IP
option broadcast-address $FOUR; #廣播地址
default-lease-time 600;
max-lease-time 7200;
} " >/etc/dhcp/dhcpd.conf
#s
表示替換操作,-i在原文本上修改。^BOOTPROTO=.*$
是一個正則表達式,用于匹配以 BOOTPROTO=
開頭,后面跟著任意字符,直到行尾的字符串。然后將匹配到的內容替換為 BOOTPROTO=static
,也就是將網絡接口的引導協議設置為靜態
sed -i 's/^BOOTPROTO=.*$/BOOTPROTO=static/' /etc/sysconfig/network-scripts/ifcfg-ens33 echo -e "IPADDR=$IP\nNETMASK=$BUSHI\nGATEWAY=$THREE\nDNS1=$ONE\nDNS2=$TWO " >> /etc/sysconfig/network-scripts/ifcfg-ens33
#ens33為需要配置的Linux服務端主機,以實際為準,centos7默認的網卡為ens33,
#用于輸出文本,-e
選項表示啟用對反斜杠轉義字符的解釋,例如 \n
會被解釋為換行符
#檢查網絡連接
ping -c 3 www.baidu.com > /dev/null 2>&1
if
[ $? -eq 0 ];
then
echo "外網通訊良好!"
else
echo "網絡都沒有,裝集貿呢。"
exit 1 fi
#切換yum源為阿里云源
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo yum clean all yum makecache
#安裝DHCP及其依賴
yum install -y dhcp
if
[ $?=0 ]
then
echo "DHCP服務安裝成功!" ? else ?
echo "DHCP服務安裝失敗,5秒后退出 "
sleep 5
exit 1 fi
#啟動DHCP服務并設置開機自啟
#啟動服務 systemctl start dhcpd && systemctl enable dhcpd 2>/root/dhcp_err.log
if [ $? -eq 0 ];
then echo
"服務啟動成功" else
echo "破防了下播下播,5秒后退出"
sleep 5
exit 1?
建議以root創建文件,編輯,運行? ? ? ? ? ?可以去找我之前的博客命令文章惠臨一下
創建一個新的文件 命令:touch? 文件名? ?
編輯文件 命令:vi? ?文件名? ? 使用CV大神秘訣,復制粘貼,Linux右鍵選擇粘貼
運行文件 命令:sh? 文件名? ? ?
上圖是定義DHCP的示例,實際網絡配置以自己為準,提醒只有正確輸入之前的主機分配的IP網段才能正常運行DHCP服務,服務端在地址池中獲取的IP地址還是以前的。