Bootstrap

Linux 一步部署DHCP服务

#!/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地址还是以前的。

;