iT邦幫忙

2023 iThome 鐵人賽

DAY 25
0

設定網路組態

傳統上在 Enterprise Linux 設定網路時需要編輯不少檔案,由於編輯檔案會有設定錯誤、參數錯誤等一些人為問題,對於進階設定如網路介面綁定、LACP 等需求也較編輯,因此在 Enterprise Linux 第 7 版開始導入了 NetworkManager 這個服務,用來取代傳統 network 服務。

NetworkManager 是一個用於 Linux 發行版的網路連接管理工具,提供了一個集中式的方式來設定和管理網路組態。它主要是為了簡化多種網路組態設定和自動化連接行為而設計的。NetworkManager 支持各種常用連接類型,包括有線、無線,甚至是 VPN 和其他路由協議。

NetworkManager 提供了 2 大管理工具讓管理者進行設定: nmtuinmcli

主要特點如下:

  • 操作方便:透過圖形化界面 (nmtui) 和命令行 (nmcli) 工具提供多種設定選項。
  • 支援多種協定:支持包括 Wi-Fi、Ethernet、VPN 等多種協定。
  • 自動連接管理:根據環境和優先級自動選擇最佳的網路連接。
  • 彈性設定:支持進階的組態設定,如 IP 分配、DNS、路由等。

不論是 nmtui 或是 nmcli 工具,其設定完成後主要設定檔會放在 /etc/sysconfig/network-scripts/ 目錄中,筆者不建議大家直接修改裡面的檔案,而比較推薦大家使用工具來產生,這樣可以產生一致性的設定檔與統一管理,也可以減少人為編輯錯誤的機率。

關於 DNS 的設定上,傳統需要手動修改 /etc/resolv.conf 檔案,在 NetworkManager 的統一管理之下我們也只要使用管理工具設定就可以了。

NetworkManager Text User Interface

nmtui 全稱為 NetworkManager Text User Interface,使用這個工具可以使用 Text UI 模式進行網路設定,較為友善與方便。

我們假設要為主機上的網路連接埠設定 IP 如下:

  • 網路介面: 第 1 個網路埠 (由 ip link show 確認)
  • IP: 192.168.1.30
  • 遮罩: 255.255.255.0 (CIDR: 24)
  • 閘道: 192.168.1.1
  • DNS: 8.8.8.8

有了上面的資訊後,我們先檢查系統上的網路連接埠資訊。

透過 ip 工具確認網路埠介面:

student$ sudo ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp5s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc mq state UP mode DEFAULT group default qlen 1000
    link/ether 56:6f:8c:e7:00:67 brd ff:ff:ff:ff:ff:ff

由以上輸出得知要設定網路介面為 enp5s0,將之記錄下來。

有了硬體資訊後就可以設定 IP 資訊。使用 root 身份執行 nmtui 進行操作:

student$ sudo nmtui

輸入了指令後,會在螢幕顯示操作指引,使用鍵盤上的 [上]、[下]、[左]、[右]、[TAB]、[空白鍵] 與 [Enter] 進行選擇與確認。

以下為設定網路組態的具體流程參考:

  1. 選擇 [Edit a connection]。

  2. 找到網路 Port 代號,選擇 [Edit...]。

  3. 在 IPv4 CONFIGURATION 中選擇 Manual,填入上述指定的值,並且留意 Automatically connect 有勾選起來,最後按 [OK]。

  4. 選擇 [Back] 回到上一層。

  5. 選擇 [Activate a connection] 重新啟用組態檔。

  6. 選擇剛剛設定好的組態檔,執行 [Deactivate]。

    這一步需要在實體機上執行或是 VM 控制台上執行,若是遠端做的話就會斷線導致無法再連,因此要特別留意。

  7. 將停用的組態再次啟用,使其生效,點選 [Activate]。

    完成後可以看到組態再次生效 (名稱前面有 * 號)

  8. 完成後選擇 [Quit] 離開程式,完成設定。

完成設定後,可以使用 ip 指令驗證是否有生效:

student$ ip addr

若在 inet 上看到 IP 的話,代表設定成功且已成效。

NetworkManager Command Line Interface

nmcli (NetworkManager Command Line Interface) 是一個指令型的設定工具,相對於 UI 的操作來說就沒有這麼多的操作流程,但要使用指令的話就要先膫解設定參數,一旦熟悉後就可以很快的完成設定。

以下針對 nmtui 組態會用到的相關參數:

  • ipv4.addresses: 設定 IPv4 地址和子網遮罩(以 CIDR 格式)。
  • ipv4.gateway: 設定 IPv4 預設閘道。
  • ipv4.dns: 設定 IPv4 DNS 伺服器。
  • ipv4.method: 設定 IPv4 配置方法為手動(manual)。
  • connection.autoconnect: 設定該連接為開機時自動啟動。

瞭解以上的參數後,我們先查出系統上有哪些網路組態。

使用 connection show 可以顯示被 NetworkManager 納管的組態檔:

student$ sudo nmcli connection show
NAME         UUID                                  TYPE      DEVICE 
enp5s0       d2d68553-f97e-7549-7a26-b34a26f29318  ethernet  enp5s0

取得組態名稱 (NAME) 後就可以使用 connection modify 指進行修改:

student$ sudo nmcli connection modify enp5s0 \
> ipv4.addresses 192.168.1.30/24 \
> ipv4.gateway 192.168.1.1 \
> ipv4.dns 8.8.8.8 \
> ipv4.method manual \
> connection.autoconnect yes

完成後,使用 connection up 直接生效:

student$ sudo nmcli connection up enp5s0

這樣,就可以讓新的組態生效,若是使用遠端方式設定的話,也請使用這個方式,才不會在停用後無法連接。

進階說明

有關 nmclinmtui 的進階用法,可以參考 Red Hat 官方文件: https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/configuring_and_managing_networking/configuring-an-ethernet-connection_configuring-and-managing-networking#configuring-an-ethernet-connection-by-using-nmcli_configuring-an-ethernet-connection


上一篇
Day 24: 使用網路工具
下一篇
Day 26: 套件管理需求
系列文
Linux 升華:初學者的探索到專家的洞察30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言