Debian 系統網絡配置核心文件為 /etc/network/interfaces(接口配置)與 /etc/resolv.conf(DNS 解析)。本文詳細演示靜態 IP 設置、多網卡綁定、VLAN、橋接、NetworkManager 共存、systemd-networkd 現代化方案,並解決配置不生效、重啟丟失等常見問題。

cp /etc/network/interfaces /etc/network/interfaces.bak
vim /etc/network/interfaces
# 回環接口 (必須保留)
auto lo
iface lo inet loopback
# 主網卡 eth0 (靜態 IP)
auto eth0
allow-hotplug eth0
iface eth0 inet static
address 192.168.21.166
netmask 255.255.255.0
gateway 192.168.21.1
# dns-nameservers 8.8.8.8 8.8.4.4 # 可選:直接在 interfaces 指定 DNS (需 resolvconf 包)
# post-up /root/scripts/firewall.sh # 可選:接口啟動後執行腳本
關鍵字段:
auto eth0:開機自動啟動該接口。allow-hotplug eth0:檢測到熱插拔(如 USB 網卡、虛擬機添加網卡)時自動啟動。iface eth0 inet static:IPv4 靜態配置;dhcp 為動態獲取。
cp /etc/resolv.conf /etc/resolv.conf.bak
vim /etc/resolv.conf
nameserver 8.8.8.8
nameserver 8.8.4.4
nameserver 1.1.1.1
# search example.com # 可選:搜索域後綴
注意:若安裝了 resolvconf 包,/etc/resolv.conf 會被動態管理,請在 interfaces 中用 dns-nameservers 指定,或編輯 /etc/resolvconf/resolv.conf.d/base。
systemctl restart networking
# 或傳統
/etc/init.d/networking restart
# 或單接口
ifdown eth0 && ifup eth0
ip addr show eth0
ip route show
ping -c 3 8.8.8.8
ping -c 3 google.com
auto eth0:1
iface eth0:1 inet static
address 192.168.1.60
netmask 255.255.255.0
# 無需 gateway
auto eth0.100
iface eth0.100 inet static
address 10.100.1.10
netmask 255.255.255.0
vlan-raw-device eth0
auto br0
iface br0 inet static
address 192.168.10.10
netmask 255.255.255.0
gateway 192.168.10.1
bridge_ports eth0
bridge_stp off
bridge_fd 0
bridge_maxwait 0
auto bond0
iface bond0 inet static
address 192.168.20.10
netmask 255.255.255.0
gateway 192.168.20.1
bond-mode 4 # 802.3ad LACP
bond-miimon 100
bond-slaves eth1 eth2
bond-lacp-rate fast
優點:聲明式、原生 systemd 集成、無額外依賴、支持 .link/.netdev/.network 分離。
systemctl enable --now systemd-networkd
systemctl enable --now systemd-resolved
ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf
# /etc/systemd/network/10-eth0.network
[Match]
Name=eth0
[Network]
Address=192.168.21.166/24
Gateway=192.168.21.1
DNS=8.8.8.8
DNS=8.8.4.4
DHCP=no
# 多 IP
[Address]
Address=192.168.1.60/24
networkctl reload
networkctl reconfigure eth0
/etc/network/interfaces 中接口標記為 unmanaged 或刪除。systemd-networkd 或 ifupdown,禁用 NetworkManager:systemctl disable --now NetworkManager。/etc/NetworkManager/NetworkManager.conf 中 [keyfile] unmanaged-devices=interface-name:eth0。| 現象 | 原因 | 解決 |
|---|---|---|
| 重啟後 IP 丟失/變回 DHCP | auto eth0 缺失、NetworkManager 接管、雲初始化覆蓋 | 檢查 auto、禁用 NM、cloud-init 配置 network: {config: disabled} |
| DNS 不生效 | resolvconf 覆蓋、systemd-resolved 衝突 | 統一用 systemd-resolved 或 resolvconf,配置對應源文件 |
RTNETLINK answers: File exists | 路由重複、殘留接口 | ip route flush table main、重啟網絡服務 |
| SSH 斷開後無法重連 | 新 IP 未在防火牆/安全組放行 | 預先放行新網段、使用控制台操作 |
/etc/network/interfaces 中的內網接口配置。cloud-init / metadata service 管理網絡、主機名、SSH 金鑰。Debian 網絡配置遵循「備份→編輯→驗證→持久化」閉環,選擇 ifupdown(傳統穩定)、systemd-networkd(現代標準)或 NetworkManager(桌面/移動)取決於場景,核心是確保配置來源單一、變更可追溯、重啟可復現。
Linux 掛載 NTFS 格式 USB 隨身碟提示 unknown filesystem 解決方案
Linux 檔案系統故障排查與修復:OSD 部署失敗、I/O 錯誤、命令無回應、資料搶救完整流程
解決 Linux vsftpd 530 Login Incorrect 錯誤的三大方案
Linux 系統監控:查找佔用記憶體的進程與執行緒完整指令集
Linux rz/sz 文件傳輸實戰:SecureCRT/Xshell 配置與最佳實踐
Linux 磁盤清理實戰:find 定位大文件、日誌截斷與安全刪除策略
Git 在 Windows 上報錯「exit code 128/1」:TortoiseGit SSH Client 設定修正指南