Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> 關於 Linux

Debian 系統網絡配置全指南:靜態 IP、網關、DNS、持久化

編輯:關於 Linux

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

Debian 網絡配置文件示例

傳統 ifupdown 方案(/etc/network/interfaces)

1. 備份原配置

cp /etc/network/interfaces /etc/network/interfaces.bak

2. 編輯配置靜態 IP

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 為動態獲取。

3. 配置 DNS (/etc/resolv.conf)


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。

4. 重啟網絡生效


systemctl restart networking
# 或傳統
/etc/init.d/networking restart
# 或單接口
ifdown eth0 && ifup eth0

5. 驗證


ip addr show eth0
ip route show
ping -c 3 8.8.8.8
ping -c 3 google.com

進階配置模式

多 IP 地址(別名接口)


auto eth0:1
iface eth0:1 inet static
    address 192.168.1.60
    netmask 255.255.255.0
    # 無需 gateway

VLAN 子接口


auto eth0.100
iface eth0.100 inet static
    address 10.100.1.10
    netmask 255.255.255.0
    vlan-raw-device eth0

橋接(KVM/容器宿主機)


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

綁定(Bonding/LACP)


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-networkd (Debian 10+ 推薦)

優點:聲明式、原生 systemd 集成、無額外依賴、支持 .link/.netdev/.network 分離。

1. 啟用 systemd-networkd


systemctl enable --now systemd-networkd
systemctl enable --now systemd-resolved
ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf

2. 配置 .network 文件


# /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

3. 重啟生效


networkctl reload
networkctl reconfigure eth0

NetworkManager 共存策略

  • 桌面環境:預設使用 NetworkManager,/etc/network/interfaces 中接口標記為 unmanaged 或刪除。
  • 服務器:建議純用 systemd-networkd 或 ifupdown,禁用 NetworkManager:systemctl disable --now NetworkManager。
  • 混合:/etc/NetworkManager/NetworkManager.conf 中 [keyfile] unmanaged-devices=interface-name:eth0。

常見問題排查

現象原因解決
重啟後 IP 丟失/變回 DHCPauto 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 未在防火牆/安全組放行預先放行新網段、使用控制台操作

雲服務器特殊說明 (AWS/Azure/阿里云/騰訊云)

  • 內網 IP 由 DHCP 分配,**請勿手動修改** /etc/network/interfaces 中的內網接口配置。
  • 公網 IP/彈性 IP 通過 1:1 NAT 映射,系統內只見內網 IP。
  • 使用雲廠商提供的 cloud-init / metadata service 管理網絡、主機名、SSH 金鑰。
  • 如需多 IP,在控制台分配「輔助私有 IP」,系統內會自動生成對應配置(或需重啟 network)。

Debian 網絡配置遵循「備份→編輯→驗證→持久化」閉環,選擇 ifupdown(傳統穩定)、systemd-networkd(現代標準)或 NetworkManager(桌面/移動)取決於場景,核心是確保配置來源單一、變更可追溯、重啟可復現。

Copyright © Windows教程網 All Rights Reserved