DHCP服务器脚本

目录

一、初始化配置

(一)编写脚本

(二)执行脚本

二、DHCP服务器

编写脚本

三、路由配置

编写脚本

四、中继转发


一、初始化配置

(一)编写脚本

复制代码
\[root@localhost \~\]# vim csh.sh
#!/bin/bash
##关闭防火墙
if systemctl status firewalld
then
systemctl disabled --now firewalld
else
echo "防火墙已经关闭"
fi
iptables -F
##关闭SELinux
if \[ \`getenforce\` == 'Disabled' \]
then
echo "SELinux已经关闭"
else
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
fi
##配置IP地址
nics=\`ip a \| awk -F: '/ens/{print $2}' \| grep -v "\^$" \| tr -d ' '\`
echo -e "当前系统中可供配置的网卡有:\\n$nics"
while true
do
​
read -p "请输入要配置的网卡名称:" nic
if ! \[\[ $nics =\~ $nic \]\]
then
continue
fi
read -p "请输入配置网络参数的方式(dhcp\|static):" tp
if \[ $tp == 'dhcp' \]
then
echo "TYPE=Ethernet
BOOTPROTO=$tp
NAME=$nic
DEVICE=$nic
ONBOOT=yes"\> /etc/sysconfig/network-scripts/ifcfg-$nic
ifdown $nic ; ifup $nic
elif \[ $tp == 'static' \]
then
read -p "输入IP地址:" ip
read -p "输入子网掩码:" mask
read -p "输入网关:" gw
read -p "输入dns:" dns
echo "TYPE=Ethernet
BOOTPROTO=static
NAME=$nic
DEVICE=$nic
ONBOOT=yes
IPADDR=$ip
PREFIX=$mask
GATEWAY=$gw
DNS1=$dns" \> /etc/sysconfig/network-scripts/ifcfg-$nic
ifdown $nic ; ifup $nic
else
echo "输入错误"
exit
fi
done
​

(二)执行脚本

二、DHCP服务器

编写脚本

复制代码
#!/bin/bash
config_dhcp(){
echo "subnet 192.168.100.0 netmask 255.255.255.0 {
  range 192.168.100.2 192.168.100.253;
  option domain-name-servers 192.168.100.1;
  option domain-name "internal.example.org";
  option routers 192.168.100.254;
  option broadcast-address 192.168.100.255;
  default-lease-time 600;
  max-lease-time 7200;
}       
subnet 192.168.200.0 netmask 255.255.255.0 { 
 range 192.168.200.2 192.168.100.253;
 option domain-name-servers 192.168.100.1;
 option domain-name "internal.example.org";
 option routers 192.168.200.254; 
option broadcast-address 192.168.200.255; 
default-lease-time 600; max-lease-time 7200; }       
host fantasia {
  hardware ethernet 08:00:07:26:c0:a5;
  fixed-address 192.168.100.100;
}" > /etc/dhcp/dhcpd.conf
systemctl enable --now dhcpd
}
if  ! rpm -q dhcp
then
    config_dhcp
else
    yum install -y dhcp
    config_dhcp
fi

三、路由配置

编写脚本

复制代码
\[root@localhost \~\]# vim csh.sh
#!/bin/bash
##关闭防火墙
if systemctl status firewalld
then
systemctl disabled --now firewalld
else
echo "防火墙已经关闭"
fi
iptables -F
##关闭SELinux
if \[ \`getenforce\` == 'Disabled' \]
then
echo "SELinux已经关闭"
else
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
fi
##配置IP地址
nics=\`ip a \| awk -F: '/ens/{print $2}' \| grep -v "\^$" \| tr -d ' '\`
echo -e "当前系统中可供配置的网卡有:\\n$nics"
while true
do
​
read -p "请输入要配置的网卡名称:" nic
if ! \[\[ $nics =\~ $nic \]\]
then
continue
fi
read -p "请输入配置网络参数的方式(dhcp\|static):" tp
if \[ $tp == 'dhcp' \]
then
echo "TYPE=Ethernet
BOOTPROTO=$tp
NAME=$nic
DEVICE=$nic
ONBOOT=yes"\> /etc/sysconfig/network-scripts/ifcfg-$nic
ifdown $nic ; ifup $nic
elif \[ $tp == 'static' \]
then
read -p "输入IP地址:" ip
read -p "输入子网掩码:" mask
read -p "输入网关:" gw
read -p "输入dns:" dns
echo "TYPE=Ethernet
BOOTPROTO=static
NAME=$nic
DEVICE=$nic
ONBOOT=yes
IPADDR=$ip
PREFIX=$mask \> /etc/sysconfig/network-scripts/ifcfg-$nic
ifdown $nic ; ifup $nic
else
echo "输入错误"
exit
fi
done

路由网卡配置:

ens33:

IPADDR=192.168.100.254

PREFIX=24

ens34:

IPADDR=192.168.200.254

PREFIX=24

四、中继转发

echo "net.ipv4.ip_forword = 1" > /etc/sysctl.conf

sysctl-p

dhcrelay 192.168.100.1

相关推荐
readhere8 小时前
从ZYNQ7000开发板,学会启动嵌入式Linux系统——入门学习:EBAZ4205篇目录
linux·启动·嵌入式linux·zynq7000·ebaz4205
打工仔折腾 AI10 小时前
在 Ubuntu ARM64 部署 Q1 V3.0 MuJoCo 模型:加载、单步推理与执行器响应解析
linux·运维·人工智能·python·深度学习·ubuntu·性能优化
yyuuuzz10 小时前
跨境站点日志时区混乱的排查记录
运维·服务器·网络·云计算·aws·1024程序员节
‎ദ്ദിᵔ.˛.ᵔ₎10 小时前
关于Linux 线程局部存储的认识
linux·运维
GlobalInfo10 小时前
全球及中国风电叶片检测机器人行业研究报告(2026版):市场现状、行业前景与占有率分析
运维·网络·人工智能·机器人
隔窗听雨眠12 小时前
KingbaseES平替全链路实践:从迁移评估到可持续运维
运维
skywalk816312 小时前
登到192.168.1.5那台机器,看看今天白天,大约从早晨到晚上,都卡住了。看看因为什么卡住,为什么卡住而没有杀死那个导致卡死的进程,为什么
运维·系统·freebsd
运维行者_12 小时前
网络监控工具怎么选?从设备监控到智能运维的能力清单
运维·服务器·开发语言·网络·人工智能·支持向量机·php
小小de风呀12 小时前
de风——【从零开始学习Linux】(九):进程基础 —— 从冯诺依曼体系到 fork 创建进程
linux·学习
2401_8685347812 小时前
陈冲2026年上海纽约大学全英文毕业演讲
服务器·网络