275 条记录
30 私有链接
30 私有链接
set_static_ip.sh
#!/bin/bash
# Debian 13 一键设置静态 IP + DNS 脚本 (ens33)
# -----------------------------
# 1️⃣ 安装 NetworkManager
# -----------------------------
echo "安装 NetworkManager..."
apt update && apt install -y network-manager
# 启动并设置开机自启
systemctl enable --now NetworkManager
# -----------------------------
# 2️⃣ 注释掉 /etc/network/interfaces 中的 ens33 配置
# -----------------------------
echo "注释掉 /etc/network/interfaces 中 ens33 配置..."
if grep -q "iface ens33" /etc/network/interfaces; then
sed -i '/^allow-hotplug ens33/s/^/#/' /etc/network/interfaces
sed -i '/^iface ens33/s/^/#/' /etc/network/interfaces
fi
# -----------------------------
# 3️⃣ 重启 NetworkManager
# -----------------------------
echo "重启 NetworkManager..."
systemctl restart NetworkManager
# -----------------------------
# 4️⃣ 删除可能存在的旧连接
# -----------------------------
echo "删除旧的 DHCP 或残留连接..."
OLD_CONN=$(nmcli -t -f NAME connection show | grep ens33)
if [ -n "$OLD_CONN" ]; then
nmcli connection delete "$OLD_CONN"
fi
# -----------------------------
# 5️⃣ 添加静态 IP + DNS
# -----------------------------
STATIC_IP="192.168.18.18/24"
GATEWAY="192.168.18.1"
DNS="8.8.8.8 223.5.5.5"
CON_NAME="ens33-static"
echo "添加静态 IP + DNS..."
nmcli connection add \
type ethernet \
ifname ens33 \
con-name $CON_NAME \
ipv4.addresses $STATIC_IP \
ipv4.gateway $GATEWAY \
ipv4.dns "$DNS" \
ipv4.method manual \
autoconnect yes
# -----------------------------
# 6️⃣ 激活连接
# -----------------------------
echo "激活连接..."
nmcli connection up $CON_NAME
# -----------------------------
# 7️⃣ 显示最终状态
# -----------------------------
echo "最终网络状态:"
nmcli device status
ip a show ens33
resolvectl status ens33
echo "静态 IP 设置完成 ✅"
chmod +x set_static_ip.sh
set_static_ip_interactive.sh
#!/bin/bash
# Debian 13 交互式设置 ens33 静态 IP
# -----------------------------
# 1️⃣ 安装 NetworkManager
# -----------------------------
echo "安装 NetworkManager..."
apt update && apt install -y network-manager
systemctl enable --now NetworkManager
# -----------------------------
# 2️⃣ 注释掉 /etc/network/interfaces 中的 ens33 配置
# -----------------------------
if grep -q "iface ens33" /etc/network/interfaces; then
echo "注释掉 /etc/network/interfaces 中 ens33 配置..."
sed -i '/^allow-hotplug ens33/s/^/#/' /etc/network/interfaces
sed -i '/^iface ens33/s/^/#/' /etc/network/interfaces
fi
# -----------------------------
# 3️⃣ 重启 NetworkManager
# -----------------------------
systemctl restart NetworkManager
# -----------------------------
# 4️⃣ 显示当前网络信息
# -----------------------------
CURRENT_IP=$(ip -4 addr show ens33 | grep -oP '(?<=inet\s)\d+(\.\d+){3}')
CURRENT_GATEWAY=$(ip route | grep '^default' | awk '{print $3}')
CURRENT_DNS=$(systemd-resolve --status ens33 | grep 'DNS Servers' | awk -F: '{print $2}' | xargs)
echo ""
echo "当前 ens33 网络信息:"
echo "IP : $CURRENT_IP"
echo "网关 : $CURRENT_GATEWAY"
echo "DNS : ${CURRENT_DNS:-8.8.8.8 223.5.5.5}"
echo ""
# -----------------------------
# 5️⃣ 读取新 IP
# -----------------------------
read -p "请输入新的静态 IP (格式 192.168.18.xxx/24) :" NEW_IP
DNS="8.8.8.8 223.5.5.5"
CON_NAME="ens33-static"
# -----------------------------
# 6️⃣ 删除旧连接
# -----------------------------
OLD_CONN=$(nmcli -t -f NAME connection show | grep ens33)
if [ -n "$OLD_CONN" ]; then
nmcli connection delete "$OLD_CONN"
fi
# -----------------------------
# 7️⃣ 添加新静态 IP + DNS
# -----------------------------
nmcli connection add \
type ethernet \
ifname ens33 \
con-name $CON_NAME \
ipv4.addresses $NEW_IP \
ipv4.gateway $CURRENT_GATEWAY \
ipv4.dns "$DNS" \
ipv4.method manual \
autoconnect yes
# -----------------------------
# 8️⃣ 激活连接
# -----------------------------
nmcli connection up $CON_NAME
# -----------------------------
# 9️⃣ 显示最终状态
# -----------------------------
echo ""
echo "新网络状态:"
nmcli device status
ip a show ens33
resolvectl status ens33
echo "静态 IP 设置完成 ✅"
chmod +x set_static_ip_interactive.sh
set-ip.sh
#!/bin/bash
set -e
DNS_SERVERS="8.8.8.8 223.5.5.5"
echo "==== Debian 静态IP配置工具 ===="
echo
# 安装 NetworkManager
if ! command -v nmcli >/dev/null 2>&1; then
echo "安装 NetworkManager..."
apt update
apt install -y network-manager
fi
systemctl enable --now NetworkManager >/dev/null 2>&1 || true
# 获取默认网卡
IFACE=$(ip route | awk '/default/ {print $5; exit}')
if [ -z "$IFACE" ]; then
echo "未找到默认网卡"
exit 1
fi
echo "检测到网卡: $IFACE"
# 注释 interfaces 配置
if [ -f /etc/network/interfaces ]; then
sed -i "/allow-hotplug $IFACE/s/^/#/" /etc/network/interfaces
sed -i "/iface $IFACE inet/s/^/#/" /etc/network/interfaces
fi
systemctl restart NetworkManager
CURRENT_IP=$(ip -4 addr show "$IFACE" | awk '/inet /{print $2; exit}')
CURRENT_GW=$(ip route | awk '/default/ {print $3; exit}')
echo
echo "当前配置:"
echo "IP : $CURRENT_IP"
echo "网关 : $CURRENT_GW"
echo "DNS : $DNS_SERVERS"
echo
read -p "请输入新的静态IP(直接回车保持当前IP): " NEW_IP
if [ -z "$NEW_IP" ]; then
NEW_IP="$CURRENT_IP"
echo "保持当前IP: $NEW_IP"
fi
CON_NAME="${IFACE}-static"
# 删除旧连接
nmcli -t -f NAME connection show | grep "^${CON_NAME}$" >/dev/null 2>&1 && \
nmcli connection delete "$CON_NAME" >/dev/null
# 创建新连接
nmcli connection add \
type ethernet \
ifname "$IFACE" \
con-name "$CON_NAME" \
ipv4.addresses "$NEW_IP" \
ipv4.gateway "$CURRENT_GW" \
ipv4.dns "$DNS_SERVERS" \
ipv4.method manual \
autoconnect yes >/dev/null
nmcli connection up "$CON_NAME"
echo
echo "==== 配置完成 ===="
echo
ip -4 addr show "$IFACE" | grep inet
echo
ip route | grep default
echo
echo "DNS:"
resolvectl dns "$IFACE" 2>/dev/null || true
echo
echo "完成."
chmod +x set-ip.sh