刚重装好的机器
bash
su - root
bash
vim net.sh
#!/bin/bash
# 功能:配置Kali网卡为DHCP模式(自动获取IP)+ 设置国内DNS + 重启生效
# 适用场景:网络配置错乱后快速恢复自动获取IP,避免静态IP冲突
# 执行:chmod +x net.sh && sudo ./net.sh
set -euo pipefail
RED="\033[31m"
GREEN="\033[32m"
YELLOW="\033[33m"
RESET="\033[0m"
# 检查是否为root用户(网络配置需root权限)
if [ "$(id -u)" -ne 0 ]; then
echo -e "${RED}[ERROR] 请使用 sudo 或 root 用户执行脚本!${RESET}"
exit 1
fi
echo -e "${GREEN}[INFO] 开始配置DHCP网络(自动获取IP)...${RESET}"
##############################################################################
# 1. 备份原有网络配置文件(防止配置出错后可恢复)
##############################################################################
BACKUP_FILE="/etc/network/interfaces.backup.$(date +%Y%m%d%H%M%S)"
echo -e "\n${YELLOW}[STEP 1] 备份原有网络配置到:$BACKUP_FILE${RESET}"
cp /etc/network/interfaces $BACKUP_FILE 2>/dev/null || true
##############################################################################
# 2. 写入DHCP模式网络配置
# auto lo:启用回环接口(本地测试必备)
# iface lo inet loopback:回环接口配置为本地环路
# auto eth0:启用eth0网卡(Kali默认有线网卡名称,部分虚拟机可能为ens33/ens160)
# iface eth0 inet dhcp:eth0网卡使用DHCP协议自动获取IP、子网掩码、网关
##############################################################################
echo -e "\n${YELLOW}[STEP 2] 配置网卡为DHCP模式(自动获取IP)${RESET}"
cat > /etc/network/interfaces << EOF
# 回环接口配置(系统基础网络,不可删除)
auto lo
iface lo inet loopback
# 有线网卡配置(eth0为默认名称,若网卡名称不同需修改,可通过 ip addr 查看)
auto eth0
iface eth0 inet dhcp # DHCP模式:自动获取IP、子网掩码、网关
EOF
##############################################################################
# 3. 配置国内DNS服务器(避免DNS解析失败,加速网络访问)
# 202.98.96.68:四川电信DNS
# 61.139.2.69:四川联通DNS
##############################################################################
echo -e "\n${YELLOW}[STEP 3] 配置国内DNS服务器${RESET}"
# 写入DNS配置(/etc/resolv.conf 为系统DNS配置文件)
cat > /etc/resolv.conf << EOF
# 国内DNS服务器(稳定可靠,加速解析)
nameserver 202.98.96.68
nameserver 61.139.2.69
EOF
##############################################################################
# 4. 重启网络服务,应用配置
# /etc/init.d/networking restart:重启网络服务(兼容Kali各版本)
##############################################################################
echo -e "\n${YELLOW}[STEP 4] 重启网络服务,应用配置${RESET}"
/etc/init.d/networking restart
##############################################################################
# 5. 重启系统(确保网络配置完全生效,避免部分配置未加载)
##############################################################################
echo -e "\n${YELLOW}[STEP 5] 即将重启系统,配置将在重启后完全生效...${RESET}"
read -p "是否立即重启?(y/n,默认y):" choice
choice=${choice:-y} # 默认为y
if [ "$choice" = "y" ] || [ "$choice" = "Y" ]; then
sudo reboot
else
echo -e "${GREEN}[INFO] 已取消重启!手动重启命令:sudo reboot${RESET}"
fi
echo -e "\n${GREEN}[SUCCESS] 网络配置已完成!重启后网卡将自动获取IP${RESET}"
echo "后续验证:重启后执行 ip addr 查看eth0网卡IP是否正常获取"
bash
chmod +x net.sh
sudo ./net.sh