在 Linux 系統中,網路參數的調整是系統管理的基礎操作之一。無論是伺服器部署、虛擬機器配置,還是日常故障排除,掌握 IP 位址、閘道、DNS 及主機名稱的修改方法都至關重要。本文將系統性地介紹透過命令列與配置檔案兩種方式進行網路設定,並說明即時生效與永久生效的差異。
使用 ifconfig 指令可立即變更網卡 IP,但重啟網路服務或系統後會失效:
# ifconfig eth0 192.168.0.20 netmask 255.255.255.0
此處 eth0 為網卡介面名稱,依實際情況調整(如 ens33、enp0s3 等)。
編輯網卡對應的配置檔,通常位於 /etc/sysconfig/network-scripts/ifcfg-eth0(RedHat/CentOS 系列)或 /etc/network/interfaces(Debian/Ubuntu 系列)。以 RedHat 系列為例:
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
關鍵參數說明:
DEVICE=eth0:裝置名稱ONBOOT=yes:開機自動啟用BOOTPROTO=static:靜態 IP 模式(dhcp 為動態獲取)IPADDR=219.136.241.211:目標 IP 位址NETMASK=255.255.255.128:子網遮罩GATEWAY=219.136.241.254:預設閘道(也可在 /etc/sysconfig/network 統一設定)儲存後執行 systemctl restart network 或 /etc/init.d/network restart 使設定生效。
# route add default gw 192.168.0.254
或使用 ip route(現代系統建議):
# ip route add default via 192.168.0.254 dev eth0
在 /etc/sysconfig/network-scripts/ifcfg-eth0 中加入 GATEWAY=192.168.0.254,或編輯 /etc/sysconfig/network:
NETWORKING=yes
HOSTNAME=your-hostname
GATEWAY=192.168.1.1
DNS 設定檔為 /etc/resolv.conf,修改後即時生效,無需重啟服務:
# vi /etc/resolv.conf
nameserver 202.96.128.68
nameserver 219.136.241.206
注意:若使用 NetworkManager 管理網路,resolv.conf 可能會被自動覆寫,建議透過 nmcli 或圖形介面設定 DNS。
# hostname fc2
編輯 /etc/sysconfig/network(RedHat 系列)或 /etc/hostname(Debian/Ubuntu 系列),並同步更新 /etc/hosts:
127.0.0.1 fc2 localhost.localdomain localhost
::1 fc2 localhost.localdomain localhost
# systemctl restart network # CentOS 7/RHEL 7 以上
# /etc/init.d/network restart # CentOS 6/RHEL 6 或舊版本
| 設定項目 | 即時生效指令 | 永久生效配置檔 |
|---|---|---|
| IP 位址 | ifconfig eth0 IP netmask MASK | /etc/sysconfig/network-scripts/ifcfg-eth0 |
| 預設閘道 | route add default gw IP / ip route add default via IP | /etc/sysconfig/network 或 ifcfg-eth0 |
| DNS 伺服器 | 直接編輯 /etc/resolv.conf | 同左(即時即永久),或用 nmcli |
| 主機名稱 | hostname newname | /etc/sysconfig/network + /etc/hosts |
掌握上述方法,即可靈活應對 Linux 系統的各類網路配置需求。建議在修改生產環境前先行備份原配置檔,並透過 ip addr show、cat /etc/resolv.conf、route -n 等指令驗證設定結果。