将最小安装 Debian 的所有物理网卡切换到 systemd-networkd 管理的脚本,并支持 DHCP 或静态 IP 配置。

#!/bin/bash

自动配置所有物理网卡由 systemd-networkd 管理

支持 DHCP 或静态 IP

set -e

echo "=== systemd-networkd 网卡配置脚本 ==="

确保目录存在

sudo mkdir -p /etc/systemd/network

获取所有物理网卡(排除 lo, docker, veth, br-)

interfaces=$(ip -o link show | awk -F': ' '{print $2}' | grep -Ev '^(lo|docker|veth|br-)')

if [ -z "$interfaces" ]; then
echo "没有检测到物理网卡"
exit 1
fi

echo "检测到网卡: $interfaces"

for iface in $interfaces; do
echo
echo "配置网卡: $iface"

# 提示用户选择 DHCP 或静态
read -p "是否使用 DHCP 自动获取 IP?(y/n) " use_dhcp

if [[ "$use_dhcp" =~ ^[Yy]$ ]]; then
    cat <<EOF | sudo tee /etc/systemd/network/10-$iface.network

[Match]
Name=$iface

[Network]
DHCP=yes
EOF
echo "已配置 $iface 为 DHCP"
else
read -p "请输入静态 IP 地址(例如 192.168.1.100/24): " ip_addr
read -p "请输入网关(例如 192.168.1.1): " gw
read -p "请输入 DNS 服务器(例如 8.8.8.8): " dns
cat <<EOF | sudo tee /etc/systemd/network/10-$iface.network
[Match]
Name=$iface

[Network]
Address=$ip_addr
Gateway=$gw
DNS=$dns
EOF
echo "已配置 $iface 为静态 IP"
fi
done

停用 dhclient

echo
echo "停止并禁用 dhclient"
sudo systemctl stop dhclient@.service 2>/dev/null || true
sudo systemctl disable dhclient@
.service 2>/dev/null || true

启用并重启 systemd-networkd

echo "启用并启动 systemd-networkd"
sudo systemctl enable systemd-networkd
sudo systemctl restart systemd-networkd

echo
echo "=== 配置完成 ==="
echo "使用 'networkctl' 或 'ip addr' 查看网卡状态"

No Comments

Send Comment Edit Comment


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
Previous
Next