🐧 Linux 網路設定入門到進階:介面命名、IP 設定、Gateway、DNS、主機名的完整操作指南
在 Linux 系統中,網路設定是系統部署、伺服器上線、虛擬化環境架構與雲端服務中不可或缺的基礎。
無論是設定靜態 IP、管理介面名稱(如 ens160、eth0)、修改 DNS、設定 Gateway,或是調整主機名,
這些都是 Linux 新手與資深工程師每天會接觸的核心技能。
本篇文章以百科級方式,帶你從「最基礎的概念」一路到「實務設定方式」, 完整解析 Linux 網路設定的所有必備知識,並提供指令示例、設定檔範例、測試方法與常見錯誤排查。
📌 1. Linux 網路介面命名(Predictable Interface Names)
從 CentOS 7、RHEL 7、Ubuntu 16.04 開始,Linux 改採「可預期介面命名」,例如:
ens160– PCI-E slot 為基準的命名enp0s3– 匯流排位置命名eth0– 舊式命名(已逐步淘汰)
🔍 查詢所有介面
ip link
🔍 查詢介面詳細資訊
ip addr show ens160
若你使用虛擬化平台(Proxmox、vSphere、KVM),介面名稱通常依硬體順序而定。
📌 2. 設定靜態 IP:三種方式比較(ifcfg / nmcli / systemd-networkd)
Linux 主要有三大網路設定方式,各發行版支援情況如下:
| 設定方式 | 適用系統 | 難易度 | 特色 |
|---|---|---|---|
| ifcfg(傳統) | RHEL / CentOS / Rocky Linux | 中等 | 使用網路設定檔,企業環境常見 |
| nmcli / nmtui | 所有 NetworkManager 系統 | 最簡單 | 現代化、穩定、支援 GUI / CLI |
| systemd-networkd | Ubuntu Server / Debian / 容器 | 中等 | 高效率、適合雲端與 container |
🟦 2-1. 使用 nmcli 設定靜態 IP(最推薦方式)
nmcli con mod ens160 ipv4.addresses 192.168.1.20/24
nmcli con mod ens160 ipv4.gateway 192.168.1.1
nmcli con mod ens160 ipv4.dns "8.8.8.8 1.1.1.1"
nmcli con mod ens160 ipv4.method manual
nmcli con down ens160; nmcli con up ens160
---
🟦 2-2. 使用 ifcfg 設定靜態 IP(RHEL / CentOS 系列)
設定檔位置:
/etc/sysconfig/network-scripts/ifcfg-ens160
設定內容:
BOOTPROTO=none
DEVICE=ens160
IPADDR=192.168.1.20
PREFIX=24
GATEWAY=192.168.1.1
DNS1=8.8.8.8
DNS2=1.1.1.1
ONBOOT=yes
重新啟動網路:
systemctl restart NetworkManager
---
🟦 2-3. 使用 systemd-networkd 設定靜態 IP(Ubuntu Server 等)
設定檔:
/etc/systemd/network/10-ens160.network
內容:
[Match]
Name=ens160
[Network]
Address=192.168.1.20/24
Gateway=192.168.1.1
DNS=8.8.8.8 1.1.1.1
啟用:
systemctl enable systemd-networkd --now
systemctl restart systemd-networkd
📌 3. 查看與測試網路狀態(必備指令)
🔍 查看目前 IP
ip addr
🔍 測試是否連到 Gateway
ping 192.168.1.1
🔍 查看路由表
ip route
🔍 測試 DNS
dig google.com
nslookup google.com
🔍 顯示連線狀態(netstat 替代)
ss -tulnp
📌 4. DNS(Resolver)設定方式
在支援 NetworkManager 的系統中,DNS 通常由 nmcli 或 DHCP 直接管理。
🟪 方式一:使用 nmcli 設定
nmcli con mod ens160 ipv4.dns "8.8.8.8 1.1.1.1"
nmcli con up ens160
🟪 方式二:編輯 resolv.conf(不推薦)
在 systemd-resolved 或 NetworkManager 管理下,手動修改 /etc/resolv.conf 會被覆蓋。
如果必要,可使用:
chattr +i /etc/resolv.conf
(⚠️ 僅限特殊用途)
📌 5. 設定預設路由(Gateway)
🔧 使用 nmcli
nmcli con mod ens160 ipv4.gateway 192.168.1.1
🔧 使用 ip route(臨時設定)
ip route add default via 192.168.1.1
🔧 檢查路由表
ip route show
📌 6. 主機名(Hostname)設定
🔧 查看主機名
hostnamectl
🔧 修改主機名
hostnamectl set-hostname web01.example.local
重啟 shell 即可生效。
📌 7. 常見問題與排查技巧(Troubleshooting)
❗ 沒有 IP?
nmcli device status
❗ DNS 無法解析?
dig @8.8.8.8 google.com
❗ 無法上網但可 ping Gateway?
- 上游 Gateway 未啟用 NAT
- 防火牆阻擋
- 沒有正確 DNS 設定
❗ 介面名稱改變(ens160 → enp0s3)?
通常是硬體順序變動(虛擬化平台更常見)。可透過:
ls -l /sys/class/net/
找出關聯的 PCI 裝置。
沒有留言: