在 RHEL8 設定靜態 IP 地址的不同方法

2019-09-25 22:28:00

在 Linux 伺服器上工作時,在網絡卡/乙太網卡上分配靜態 IP 地址是每個 Linux 工程師的常見任務之一。如果一個人在 Linux 伺服器上正確設定了靜態地址,那麼他/她就可以通過網路遠端存取它。在本文中,我們將演示在 RHEL 8 伺服器網絡卡上設定靜態 IP 地址的不同方法。

以下是在網絡卡上設定靜態IP的方法:

  • nmcli(命令列工具)
  • 網路指令碼檔案(ifcfg-*
  • nmtui(基於文字的使用者介面)

使用 nmcli 命令列工具設定靜態 IP 地址

每當我們安裝 RHEL 8 伺服器時,就會自動安裝命令列工具 nmcli,它是由網路管理器使用的,可以讓我們在乙太網卡上設定靜態 IP 地址。

執行下面的 ip addr 命令,列出 RHEL 8 伺服器上的乙太網卡

[root@linuxtechi ~]# ip addr

正如我們在上面的命令輸出中看到的,我們有兩個網絡卡 enp0s3enp0s8。當前分配給網絡卡的 IP 地址是通過 DHCP 伺服器獲得的。

假設我們希望在第一個網絡卡 (enp0s3) 上分配靜態 IP 地址,具體內容如下:

  • IP 地址 = 192.168.1.4
  • 網路掩碼 = 255.255.255.0
  • 閘道器 = 192.168.1.1
  • DNS = 8.8.8.8

依次執行以下 nmcli 命令來設定靜態 IP,

使用 nmcli connection 命令列出當前活動的乙太網卡,

[root@linuxtechi ~]# nmcli connectionNAME    UUID                                  TYPE      DEVICEenp0s3  7c1b8444-cb65-440d-9bf6-ea0ad5e60bae  ethernet  enp0s3virbr0  3020c41f-6b21-4d80-a1a6-7c1bd5867e6c  bridge    virbr0[root@linuxtechi ~]#

使用下面的 nmcli 給 enp0s3 分配靜態 IP。

命令語法:

# nmcli connection modify <interface_name> ipv4.address  <ip/prefix>

注意: 為了簡化語句,在 nmcli 命令中,我們通常用 con 關鍵字替換 connection,並用 mod 關鍵字替換 modify

將 IPv4 地址 (192.168.1.4) 分配給 enp0s3 網絡卡上,

[root@linuxtechi ~]# nmcli con mod enp0s3 ipv4.addresses 192.168.1.4/24

使用下面的 nmcli 命令設定閘道器,

[root@linuxtechi ~]# nmcli con mod enp0s3 ipv4.gateway 192.168.1.1

設定手動設定(從 dhcp 到 static),

[root@linuxtechi ~]# nmcli con mod enp0s3 ipv4.method manual

設定 DNS 值為 “8.8.8.8”,

[root@linuxtechi ~]# nmcli con mod enp0s3 ipv4.dns "8.8.8.8"[root@linuxtechi ~]#

要儲存上述更改並重新載入,請執行如下 nmcli 命令,

[root@linuxtechi ~]# nmcli con up enp0s3Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/4)

以上命令顯示網絡卡 enp0s3 已成功設定。我們使用 nmcli 命令做的那些更改都將永久儲存在檔案 etc/sysconfig/network-scripts/ifcfg-enp0s3 裡。

[root@linuxtechi ~]# cat /etc/sysconfig/network-scripts/ifcfg-enp0s3

要確認 IP 地址是否分配給了 enp0s3 網絡卡了,請使用以下 IP 命令檢視,

[root@linuxtechi ~]#ip addr show enp0s3

使用網路指令碼檔案(ifcfg-*)手動設定靜態 IP 地址

我們可以使用設定乙太網卡的網路指令碼或 ifcfg-* 檔案來設定乙太網卡的靜態 IP 地址。假設我們想在第二個乙太網卡 enp0s8 上分配靜態 IP 地址:

  • IP 地址 = 192.168.1.91
  • 字首 = 24
  • 閘道器 =192.168.1.1
  • DNS1 =4.2.2.2

轉到目錄 /etc/sysconfig/network-scripts,查詢檔案 ifcfg-enp0s8,如果它不存在,則使用以下內容建立它,

[root@linuxtechi ~]# cd /etc/sysconfig/network-scripts/[root@linuxtechi network-scripts]# vi ifcfg-enp0s8TYPE="Ethernet"DEVICE="enp0s8"BOOTPROTO="static"ONBOOT="yes"NAME="enp0s8"IPADDR="192.168.1.91"PREFIX="24"GATEWAY="192.168.1.1"DNS1="4.2.2.2"

儲存並退出檔案,然後重新啟動網路管理器服務以使上述更改生效,

[root@linuxtechi network-scripts]# systemctl restart NetworkManager

現在使用下面的 ip 命令來驗證 IP 地址是否分配給網絡卡,

[root@linuxtechi ~]# ip add show enp0s83: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000    link/ether 08:00:27:7c:bb:cb brd ff:ff:ff:ff:ff:ff    inet 192.168.1.91/24 brd 192.168.1.255 scope global noprefixroute enp0s8       valid_lft forever preferred_lft forever    inet6 fe80::a00:27ff:fe7c:bbcb/64 scope link       valid_lft forever preferred_lft forever[root@linuxtechi ~]#

以上輸出內容確認靜態 IP 地址已在網絡卡 enp0s8 上成功設定了。

使用 nmtui 實用程式設定靜態 IP 地址

nmtui 是一個基於文字使用者介面的,用於控制網路的管理器,當我們執行 nmtui 時,它將開啟一個基於文字的使用者介面,通過它我們可以新增、修改和刪除連線。除此之外,nmtui 還可以用來設定系統的主機名。

假設我們希望通過以下細節將靜態 IP 地址分配給網絡卡 enp0s3

  • IP 地址 = 10.20.0.72
  • 字首 = 24
  • 閘道器 = 10.20.0.1
  • DNS1 =4.2.2.2

執行 nmtui 並按照螢幕說明操作,範例如下所示,

[root@linuxtechi ~]# nmtui

選擇第一個選項 “Edit a connection”,然後選擇介面為 “enp0s3”,

選擇 “Edit”,然後指定 IP 地址、字首、閘道器和域名系統伺服器 IP,

選擇確定,然後點選回車。在下一個視窗中,選擇 “Activate a connection”,

選擇 “enp0s3”,選擇 “Deactivate” 並點選回車,

現在選擇 “Activate” 並點選回車,

選擇 “Back”,然後選擇 “Quit”,

使用下面的 ip 命令驗證 IP 地址是否已分配給介面 enp0s3

[root@linuxtechi ~]# ip add show enp0s32: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000    link/ether 08:00:27:53:39:4d brd ff:ff:ff:ff:ff:ff    inet 10.20.0.72/24 brd 10.20.0.255 scope global noprefixroute enp0s3       valid_lft forever preferred_lft forever    inet6 fe80::421d:5abf:58bd:c47e/64 scope link noprefixroute       valid_lft forever preferred_lft forever[root@linuxtechi ~]#

以上輸出內容顯示我們已經使用 nmtui 實用程式成功地將靜態 IP 地址分配給介面 enp0s3

以上就是本教學的全部內容,我們已經介紹了在 RHEL 8 系統上為乙太網卡設定 IPv4 地址的三種不同方法。請在下面的評論部分分享反饋和評論。