熱門分類
載入中…
目錄0%

🐧 Linux 網路設定入門到進階:介面命名、IP 設定、Gateway、DNS、主機名的完整操作指南

    🐧 Linux 網路設定入門到進階:介面命名、IP 設定、Gateway、DNS、主機名的完整操作指南

    在 Linux 系統中,網路設定是系統部署、伺服器上線、虛擬化環境架構與雲端服務中不可或缺的基礎。 無論是設定靜態 IP、管理介面名稱(如 ens160eth0)、修改 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 裝置。


    📚 延伸閱讀(依站內 Linux 網路相關內容自動挑選)

    🔗 分享這篇 LINE Facebook X

    沒有留言:

    字級