ifconfig (interface configure) 是 Linux 系統管理員配置、檢視、除錯網路介面的核心指令。雖然現代發行版推薦使用 ip 指令 (iproute2 套件),但 ifconfig 仍廣泛存在於各類腳本、教學、嵌入式系統中。本文詳細解析 ifconfig 輸出欄位含義、常用參數、實戰設定範例與進階技巧。
ifconfig [介面名稱]
ifconfig 介面名稱 [地址族] 選項 | 位址 ...
ifconfig -a:顯示所有介面(含未啟用)。ifconfig eth0:顯示指定介面詳細資訊。eth0 Link encap:Ethernet HWaddr 52:54:AB:DD:6F:61
inet addr:210.34.6.89 Bcast:210.34.6.127 Mask:255.255.255.128
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:46299 errors:0 dropped:0 overruns:0 frame:189
TX packets:3057 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
Interrupt:5 Base address:0xece0
| 欄位 | 含義 |
|---|---|
Link encap:Ethernet | 封裝協定:乙太網路 |
HWaddr | MAC 位址 (硬體位址),廠商燒錄,全球唯一 |
inet addr | IPv4 位址 |
Bcast | 廣播位址 |
Mask | 子網路遮罩 |
UP | 介面已啟用 |
BROADCAST | 支援廣播 |
RUNNING | 介面正在運作 (有纜線連接/載波偵測) |
MULTICAST | 支援多播 |
MTU:1500 | 最大傳輸單元 (Bytes) |
Metric:1 | 路由度量值 |
RX packets | 接收封包數 |
errors/dropped/overruns/frame | 接收錯誤/丟棄/溢位/幀錯誤計數 |
TX packets | 傳送封包數 |
carrier | 載波錯誤 (媒介故障指標) |
collisions | 碰撞次數 (半雙工環境) |
txqueuelen | 傳送佇列長度 |
Interrupt/Base address | 硬體中斷號/IO 埠位址 |
lo (Loopback) 介面 同理,inet addr:127.0.0.1、Mask:255.0.0.0、LOOPBACK RUNNING。
# 設定 IP/子網路遮罩
ifconfig eth0 192.168.1.100 netmask 255.255.255.0
# 同時設定廣播位址
ifconfig eth0 192.168.1.100 netmask 255.255.255.0 broadcast 192.168.1.255
# 啟用/停用介面
ifconfig eth0 up
ifconfig eth0 down
# 臨時修改 (重開機/網卡重置失效)
ifconfig eth0 down
ifconfig eth0 hw ether 00:11:22:33:44:55
ifconfig eth0 up
# 永久修改:編輯 /etc/sysconfig/network-scripts/ifcfg-eth0 (RHEL/CentOS)
# 新增/修改:HWADDR=00:11:22:33:44:55
# 或在 /etc/rc.d/rc.local 新增上述 ifconfig 指令
# 檢視所有介面
ifconfig -a
# 為 eth0 新增虛擬介面 eth0:0 (同一張實體網卡綁定多 IP)
ifconfig eth0:0 192.168.1.200 netmask 255.255.255.0
ifconfig eth0:1 10.0.0.5 netmask 255.0.0.0
# 移除虛擬介面
ifconfig eth0:0 down
ifconfig eth0 promisc # 啟用
ifconfig eth0 -promisc # 停用
ifconfig eth0 mtu 9000
| 發行版系列 | 設定檔路徑 | 關鍵參數 |
|---|---|---|
| RHEL / CentOS / Fedora | /etc/sysconfig/network-scripts/ifcfg-eth0 | BOOTPROTO=static, IPADDR, NETMASK, GATEWAY, ONBOOT=yes |
| Debian / Ubuntu (傳統) | /etc/network/interfaces | auto eth0, iface eth0 inet static, address, netmask, gateway |
| Debian / Ubuntu (新版 netplan) | /etc/netplan/*.yaml | network: {version: 2, ethernets: {eth0: {addresses: [...]}}} |
| openSUSE | /etc/sysconfig/network/ifcfg-eth0 | 類似 RHEL |
現代系統建議使用 ip 指令 (iproute2) 取代 ifconfig (net-tools):
| 功能 | ifconfig (舊) | ip (新) |
|---|---|---|
| 顯示介面 | ifconfig -a | ip link show / ip addr show |
| 設定 IP | ifconfig eth0 1.2.3.4/24 | ip addr add 1.2.3.4/24 dev eth0 |
| 啟用介面 | ifconfig eth0 up | ip link set eth0 up |
| 路由表 | route -n / netstat -rn | ip route show |
| 鄰居表 (ARP) | arp -n | ip neigh show |