Bài viết này sẽ giới thiệu với các bạn về cách quản lý mạng dùng NetworkManager trên CentOS 8 của hệ điều hành Linux. Trong bài viết này chúng ta sẽ tìm hiểu về NetworkManager cũng như các ví dụ về nó từ đây giúp cho chúng ta có thể tự học và tự tìm hiểu Linux cơ bản.
1. Giới thiệu về NetworkManager
NetworkManager
là một công cụ hỗ trợ chúng ta việc quản lý và thiết lập mạng bằng cả dòng lệnh và giao diện đồ họa, cung cấp API thông qua D-Bus cho phép truy vấn và kiểm soát cấu hình mạng, hỗ trợ linh hoạt cấu hình. Ngoài ra, NetworkManager cũng có thể cấu hình bằng các tệp và Cockpit web console và nó hỗ trợ sử dụng các lệnh tùy chỉnh để bắt đầu hoặc dừng các dịch vụ dựa trên trạng thái kết nối.
Để biết thêm thông tin về systemctl
và NetworkManager
chúng ta chạy lệnh sau:
[root@localhost ~]# man systemctl
[root@localhost ~]# man NetworkManager
2. Cài đặt NetworkManager
Để kiểm tra xem gói NetworkManager
có khả dụng trên loại hệ thống của bạn không sử dụng lệnh sau:
[root@localhost ~]# NetworkManager -V
1.14.0-14.el8
Nếu gói NetworkManager
không có trên hệ thống của chúng ta, chúng ta có thể dễ dàng cài đặt như sau:
[root@localhost ~]# dnf install NetworkManager
CentOS-8 - AppStream 1.7 kB/s | 4.3 kB 00:02
CentOS-8 - Base 1.6 kB/s | 3.9 kB 00:02
CentOS-8 - Extras 604 B/s | 1.5 kB 00:02
Package NetworkManager-1:1.14.0-14.el8.x86_64 is already installed.
Dependencies resolved.
Nothing to do.
Complete!
Sau khi cài đặt thành công thì tệp cấu hình của NetworkManager
được đặt tại /etc/NetworkManager/NetworkManager.conf
và các tệp cấu hình bổ sung có thể được tìm thấy trong /etc/NetworkManager/
như bên dưới:
[root@localhost ~]# ls -l /etc/NetworkManager/NetworkManager.conf
-rw-r--r--. 1 root root 2145 May 11 2019 /etc/NetworkManager/NetworkManager.conf
[root@localhost ~]# ls -l /etc/NetworkManager/
total 4
drwxr-xr-x. 2 root root 6 May 11 2019 conf.d
drwxr-xr-x. 5 root root 93 Nov 6 03:14 dispatcher.d
drwxr-xr-x. 2 root root 6 May 11 2019 dnsmasq.d
drwxr-xr-x. 2 root root 6 May 11 2019 dnsmasq-shared.d
-rw-r--r--. 1 root root 2145 May 11 2019 NetworkManager.conf
drwxr-xr-x. 2 root root 6 May 11 2019 system-connections
3. Quản lý NetworkManager bằng systemctl
Đối với CentOS hoặc RHEL 8 và hệ thống Linux hiện đại đã trình quản lý dịch vụ và hệ thống bằng công cụ systemctl
.
Để có thể kiểm tra xem công cụ NetworkManager
có bắt đầu hoạt động và kích hoạt để có thể khởi động cùng lúc với hệ thống chúng ta có thể sử dụng các lệnh sau:
[root@localhost ~]# systemctl is-active NetworkManager
active
[root@localhost ~]# systemctl is-enabled NetworkManager
enabled
Khi chúng ta cần kiểm tra trạng thái của NetworkManager
chúng ta thực thi lệnh bên dưới:
[root@localhost ~]# systemctl status NetworkManager
● NetworkManager.service - Network Manager
Loaded: loaded (/usr/lib/systemd/system/NetworkManager.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2019-12-08 10:28:05 EST; 1min 57s ago
Docs: man:NetworkManager(8)
Main PID: 958 (NetworkManager)
Tasks: 3 (limit: 17812)
Memory: 9.5M
CGroup: /system.slice/NetworkManager.service
└─958 /usr/sbin/NetworkManager --no-daemon
Dec 08 10:28:10 localhost.localdomain NetworkManager[958]: <info> [1575818890.4792] dhcp4 (ens192): state changed unknown ->
Dec 08 10:28:10 localhost.localdomain NetworkManager[958]: <info> [1575818890.4804] device (ens192): state change: ip-confi>
Dec 08 10:28:10 localhost.localdomain NetworkManager[958]: <info> [1575818890.4813] device (ens192): state change: ip-check>
Dec 08 10:28:10 localhost.localdomain NetworkManager[958]: <info> [1575818890.4817] device (ens192): state change: secondar>
Dec 08 10:28:10 localhost.localdomain NetworkManager[958]: <info> [1575818890.4824] manager: NetworkManager state is now CO>
Dec 08 10:28:10 localhost.localdomain NetworkManager[958]: <info> [1575818890.4983] manager: NetworkManager state is now CO>
Dec 08 10:28:10 localhost.localdomain NetworkManager[958]: <info> [1575818890.4985] policy: set 'ens192' (ens192) as defaul>
Dec 08 10:28:10 localhost.localdomain NetworkManager[958]: <info> [1575818890.5054] device (ens192): Activation: successful>
Dec 08 10:28:10 localhost.localdomain NetworkManager[958]: <info> [1575818890.5062] manager: NetworkManager state is now CO>
Dec 08 10:28:10 localhost.localdomain NetworkManager[958]: <info> [1575818890.5067] manager: startup complete
lines 1-20/20 (END)
Nếu NetworkManager
không hoạt động chúng ta có thể khởi động nó bằng cách chạy lệnh sau:
[root@localhost ~]# systemctl start NetworkManager
Để dừng hoặc hủy kích hoạt NetworkManager
vì lý do nào đó chúng ta chạy lệnh bên dưới:
[root@localhost ~]# systemctl stop NetworkManager
Khi chúng ta thực hiện một thay đổi đối với các tệp cấu hình của NetworkManager
thì chúng ta có thể khởi động lại NetworkManager
để áp dụng các thay đổi mới:
[root@localhost ~]# systemctl restart NetworkManager
Chúng ta cần tải lại cấu hình của NetworkManager
mà không khởi động lại dịch vụ thực thi lệnh bên dưới:
[root@localhost ~]# systemctl reload NetworkManager
4. Sử dụng NetworkManager và làm việc với tệp ifcfg
NetworkManager
hỗ trợ một số công cụ tương tác với nó gồm:
nmcli
sử dụng để cấu hình mạng.nmtui
sử dụng để cấu hình và quản lý các kết nối giao diện newtwork.- Các công cụ soạn thảo như vi/vim và biểu tượng kết nối mạng (tất cả trong GUI).
Ví dụ 1: Khi chúng ta muốn liệt kê các thiết bị được phát hiện bởi NetworkManager chạy lệnh sau:
[root@localhost ~]# nmcli device
DEVICE TYPE STATE CONNECTION
ens192 ethernet connected ens192
lo loopback unmanaged --
Hoặc
[root@localhost ~]# nmcli device status
DEVICE TYPE STATE CONNECTION
ens192 ethernet connected ens192
lo loopback unmanaged --
Ví dụ 2: Để xem tất cả các kết nối hoạt động:
[root@localhost ~]# nmcli connection show -a
NAME UUID TYPE DEVICE
ens192 c94d64af-3f07-4480-a65f-2093c869608a ethernet ens192
Trong đó tùy chọn -a
giúp cho chúng ta liệt kê tất cả các cấu hình kết nối.
Ví dụ 3: Để kiểm tra xem NetworkManager
có đang chạy không chúng ta có thể sử dụng lệnh dưới đây:
[root@blogd-net-lab01 ~]# nmcli -t -f RUNNING general
running
Để kiểm tra một trạng thái chung chúng ta thực thi lệnh sau:
[root@blogd-net-lab01 ~]# nmcli general
STATE CONNECTIVITY WIFI-HW WIFI WWAN-HW WWAN
connected full enabled enabled enabled enabled
Ví dụ 4: Để xem và liệt kê tất cả các thiết bị có sẵn trên hệ thống Linux bằng cách sử dụng lệnh bên dưới:
[root@blogd-net-lab01 ~]# nmcli dev status
DEVICE TYPE STATE CONNECTION
ens192 ethernet connected ens192
lo loopback unmanaged --
Ví dụ 5: Khi chúng ta muốn liệt kê tất cả các kết nối có sẵn thực thi lệnh bên dưới:
[root@blogd-net-lab01 ~]# nmcli con show
NAME UUID TYPE DEVICE
ens192 7ce724d6-0326-3f7a-9b6a-630504393a99 ethernet ens192
Ví dụ 6: Chúng ta muốn xem tất cả các giá trị được cấu hình (mặc định hay đã được tùy chỉnh) của interface:
[root@blogd-net-lab01 ~]# nmcli con show ens192
connection.id: ens192
connection.uuid: 7ce724d6-0326-3f7a-9b6a-630504393a99
connection.stable-id: --
connection.type: 802-3-ethernet
connection.interface-name: ens192
connection.autoconnect: yes
connection.autoconnect-priority: 0
connection.autoconnect-retries: -1 (default)
connection.multi-connect: 0 (default)
connection.auth-retries: -1
connection.timestamp: 1581349608
connection.read-only: no
connection.permissions: --
connection.zone: --
connection.master: --
connection.slave-type: --
connection.autoconnect-slaves: -1 (default)
connection.secondaries: --
connection.gateway-ping-timeout: 0
connection.metered: unknown
Ví dụ 7: Chúng ta có thể sử dụng nmcli
để kiểm tra hostname và để thay đổi hostname của máy chủ:
Kiểm tra hostname của máy chủ hiện tại chúng ta thực thi lệnh sau:
[root@blogd-net-lab01 ~]# nmcli general hostname
blogd-net-lab01
Tiếp theo để có thể thay đổi hostname của máy chủ sử dụng lệnh nmcli
thực thi lệnh bên dưới:
[root@blogd-net-lab01 ~]# nmcli general hostname blogd-net-lab02
[root@blogd-net-lab01 ~]# reboot
Sau khi reboot
máy hoàn thành chúng ta kiểm tra lại hostname đã được thay đổi hay chưa:
[root@blogd-net-lab02 ~]# nmcli general hostname
blogd-net-lab02
[root@blogd-net-lab02 ~]# hostname
blogd-net-lab02
Ví dụ 10: Chúng ta có thể sử dụng lệnh nmcli
để chỉnh sửa file cấu hình của kết nối hiện có hoặc thêm kết nối mới. Trong ví dụ dưới đây, chúng ta sẽ chỉnh sửa địa chỉ IP của interface ens192
:
[root@blogd-net-lab02 ~]# nmcli con edit ens192
===| nmcli interactive connection editor |===
Editing existing '802-3-ethernet' connection: 'ens192'
Type 'help' or '?' for available commands.
Type 'print' to show all the connection properties.
Type 'describe [<setting>.<prop>]' for detailed property description.
You may edit the following settings: connection, 802-3-ethernet (ethernet), 802-1x, dcb, sriov, ethtool, match, ipv4, ipv6, tc, proxy
nmcli> help
------------------------------------------------------------------------------
---[ Main menu ]---
goto [<setting> | <prop>] :: go to a setting or property
remove <setting>[.<prop>] | <prop> :: remove setting or reset property value
set [<setting>.<prop> <value>] :: set property value
describe [<setting>.<prop>] :: describe property
print [all | <setting>[.<prop>]] :: print the connection
verify [all | fix] :: verify the connection
save [persistent|temporary] :: save the connection
activate [<ifname>] [/<ap>|<nsp>] :: activate the connection
back :: go one level up (back)
help/? [<command>] :: print this help
nmcli <conf-option> <value> :: nmcli configuration
quit :: exit nmcli
------------------------------------------------------------------------------
nmcli> print ipv4.addresses
ipv4.addresses: 192.168.0.2/24
nmcli> remove ipv4.address "192.168.0.2/24"
nmcli> print ipv4.address
ipv4.addresses:
nmcli> set ipv4.address 192.168.0.3/24
Do you also want to set 'ipv4.method' to 'manual'? [yes]: yes
nmcli> print ipv4.address
ipv4.addresses: 192.168.0.3/24
nmcli> verify
Verify connection: OK
nmcli> save
Connection 'ens192' (7ce724d6-0326-3f7a-9b6a-630504393a99) successfully updated.
nmcli> quit
Bây giờ chúng ta cần xác minh các thay đổi trong file cấu hình của ens192
:
[root@blogd-net-lab02 ~]# egrep IPADDR /etc/sysconfig/network-scripts/ifcfg-ens192
IPADDR=192.168.0.3
So sánh sự khác biệt cách thiết lập địa chỉ IPv4 file network sử dụng lệnh nmcli
với tùy chỉnh trong file cấu hình:
Lệnh nmcli | File ifcfg | Chức năng |
---|---|---|
ipv4.method manual | BOOTPROTO=none | Địa chỉ IPv4 cấu hình tĩnh |
ipv4.method auto | BOOTPROTO=dhcp | Địa chỉ IPv4 được cấp tự động dự trên DHCP của máy chủ |
ipv4.address 192.168.0.1/24 | IPADDR=192.168.0.10 PREFIX=24 | Đặt địa chỉ IPv4 tĩnh và Prefix của mạng |
ipv4.gateway 192.168.0.1 | GATEWAY=192.168.0.1 | Đặt IPv4 Gateway |
ipv4.dns 8.8.8.8 | DNS1=8.8.8.8 | Sửa file /etc/resolv.conf để sử dụng DNS này |
ipv4.dns-search google.com | DOMAIN=google.com | Sửa file /etc/resolv.conf để sử dụng tên miền này trong tìm kiếm |
ipv4.ignore-auto-dns true | PEERDNS=no | Bỏ qua thông tin DNS server từ DHCP server |
connection.autoconnect yes | ONBOOT=yes | Tự động kết nối internet khi được khởi động |
connection.id ens33 | NAME=ens33 | Đặt tên của kết nối |
connection.interface-name ens33 | DEVICE=ens33 | Kết nối được liên kết với network interface |
802-3-ethernet.mac-address 09:01:26:4c:7b:82 | HWADDR=09:01:26:4c:7b:82 | Kết nối được liên kết với network interface có địa chỉ MAC |
ipv4.never-default no | DEFROUTE=yes | Không sử dụng interface gateway làm default gateway |
So sánh sự khác biệt cách thiết lập địa chỉ IPv6 file network sử dụng lệnh nmcli
với tùy chỉnh trong file cấu hình:
Lệnh nmcli | File ifcfg | Chức năng |
---|---|---|
ipv6.method manual | BOOTPROTO=none | Địa chỉ IPv6 cấu hình tĩnh |
ipv6.method auto | IPV6_AUTOCONF=yes | Sẽ cấu hình cài đặt mạng bằng SLAAC từ router |
ipv6.method dhcp | IPV6_AUTOCONF=no DHCPV6C=yes | Sẽ cấu hình cài đặt mạng bằng DHCPv6 không phải bằng SLAAC |
ipv6.addresses "2001:db8::a/64 2001:db8::1" | IPV6ADDR=2001:db8::a/64 IPV6_DEFAULTGW=2001:db8::1 | Đặt địa chỉ IPv6 tĩnh và Gateway |
ipv6.dns ... | DNS0=... | Sửa file /etc/resolv.conf để sử dụng DNS này |
ipv6.dns-search google.com | DOMAIN=google.com | Sửa file /etc/resolv.conf để sử dụng tên miền này trong tìm kiếm |
ipv6.ignore-auto-dns true | IPV6_PEERDNS=no | Bỏ qua thông tin DNS server từ DHCP server |
connection.autoconnect yes | ONBOOT=yes | Tự động kết nối internet khi được khởi động |
connection.id ens192 | NAME=ens192 | Đặt tên của kết nối |
connection.interface-name ens192 | DEVICE=ens192 | Kết nối được liên kết với network interface |
802-3-ethernet.mac-address ... | HWADDR=... | Kết nối được liên kết với network interface có địa chỉ MAC |
Ví dụ 11: Chúng ta sẽ thực hiện cấu hình interface ens37 tĩnh, sử dụng địa chỉ IPv4 và network prefix 10.10.10.5/24 cùng với default gateway là 10.10.10.1, tự động kết nối khi
khởi động và lưu cấu hình của nó vào file /etc/sysconfig/network-scripts/ifcfg-ens37
:
[root@blogd-net-lab01 ~]# nmcli con add con-name ens37 type ethernet ifname ens37 ipv4.method manual ipv4.address 10.10.10.5/24 ipv4.gateway 10.10.10.1
Connection 'ens37' (ce30feec-0926-4c31-8579-3b8d3906fba4) successfully added.
Kết quả sau khi thực hiện lệnh trên:
[root@blogd-net-lab01 ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens37
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
IPADDR=10.10.10.5
PREFIX=24
GATEWAY=10.10.10.1
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens37
UUID=ce30feec-0926-4c31-8579-3b8d3906fba4
DEVICE=ens37
ONBOOT=yes
Ví dụ 12: Khi chúng ta muốn tạo kết nối ethernet mới và gán địa chỉ IP dựa trên DHCP server. Thì thực thi lệnh sau sẽ thêm một kết nối mới cho interface ens39, sẽ nhận địa chỉ IPv4 bằng DHCP và sẽ tự động kết nối khi khởi động. Cấu hình sẽ được
lưu vào file /etc/sysconfig/network-scripts/ifcfg-ens39
vì con-name
có tên là ens39
:
[root@blogd-net-lab01 ~]# nmcli con add con-name ens39 type ethernet ifname ens39 ipv4.method auto
Connection 'ens39' (9c3a12a5-5df1-459f-9b6b-68f024270e9c) successfully added.
Chúng ta có thể kiểm tra file cấu hình bằng cách sử dụng lệnh egrep
như sau:
[root@blogd-net-lab01 ~]# egrep BOOTPROTO /etc/sysconfig/network-scripts/ifcfg-ens39
BOOTPROTO=dhcp
Ví dụ 13: Thay đổi kết nối ethernet BOOTPROTO từ DHCP sang tĩnh bằng lệnh nmcli
, trong đó chúng ta phải sửa đổi ipv4.method
:
Thực hiện kiểm tra BOOTPROTO của file cấu hình /etc/sysconfig/network-scripts/ifcfg-ens39
[root@blogd-net-lab01 ~]# egrep BOOTPROTO /etc/sysconfig/network-scripts/ifcfg-ens39
BOOTPROTO=dhcp
Thực thi lệnh sau để chuyển từ BOOTPROTO từ dhcp sang none:
[root@blogd-net-lab01 ~]# nmcli con mod ens39 ipv4.method manual ipv4.address 10.10.20.5/24 ipv4.gateway 10.10.20.1
Kết quả sau khi chạy lệnh bên trên:
[root@blogd-net-lab01 ~]# egrep 'BOOTPROTO|IPADDR|PREFIX|GATEWAY' /etc/sysconfig/network-scripts/ifcfg-ens39
BOOTPROTO=none
IPADDR=10.10.20.5
PREFIX=24
GATEWAY=10.10.20.1
Ví dụ 14: Thay đổi kết nối ethernet BOOTPROTO từ tĩnh sang DHCP bằng lệnh nmcli
, trong đó chúng ta phải sửa đổi ipv4.method
bằng cách thực thi lệnh bên dưới:
[root@blogd-net-lab01 ~]# nmcli con mod ens37 ipv4.method auto
Sau khi thực thi lệnh trên chúng ta kiểm tra như sau:
[root@blogd-net-lab01 ~]# egrep 'BOOTPROTO' /etc/sysconfig/network-scripts/ifcfg-ens39
BOOTPROTO=none
[root@blogd-net-lab01 ~]# ip add
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens37: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:0c:29:fc:cd:6d brd ff:ff:ff:ff:ff:ff
inet 192.168.129.128/24 brd 192.168.129.255 scope global dynamic noprefixroute ens37
valid_lft 1046sec preferred_lft 1046sec
inet6 fe80::be58:1207:35b:406e/64 scope link noprefixroute
valid_lft forever preferred_lft forever
Ví dụ 15: Khi chúng ta muốn thay đổi ONBOOT có trong file cấu hình interface. Vì vậy, để vô hiệu hóa ONBOOT, chúng ta phải sửa đổi connection.autoconnect
bằng cách sử dụng lệnh nmcli
thực hiện như sau:
Xác minh giá trị ONBOOT trước khi thay đổi:
[root@blogd-net-lab01 ~]# egrep 'ONBOOT' /etc/sysconfig/network-scripts/ifcfg-ens39
ONBOOT=yes
Thực thị lệnh bên dưới để vô hiệu hóa giá trị ONBOOT:
[root@blogd-net-lab01 ~]# nmcli con mod ens39 connection.autoconnect no
Xác minh giá trị ONBOOT sau khi thay đổi:
[root@blogd-net-lab01 ~]# egrep 'ONBOOT' /etc/sysconfig/network-scripts/ifcfg-ens39
ONBOOT=no
Ví dụ 16: Thay đổi chỉ thị DEFROUTE (Không sử dụng mạng này cho default route). Theo mặc định, bất kỳ cổng được thêm cho bất kỳ kết nối ethernet nào cũng sẽ được coi là cổng mặc định, để tắt sử dụng lệnh này ipv4.never-default
:
Trước tiên chúng ta thực hiện xác minh DEFROUTE trong file cấu hình ens39:
[root@blogd-net-lab01 ~]# egrep '^DEFROUTE' /etc/sysconfig/network-scripts/ifcfg-ens39
DEFROUTE=yes
Theo mặc định thì DEFROUTE sẽ YES, chúng ta sẽ vô hiệu hóa tùy chọn cổng mặc định cho ens39 bằng cách thực thi lệnh sau:
[root@blogd-net-lab01 ~]# nmcli con mod ens39 ipv4.never-default yes
Sác thực lại giá trị đã thay đổi sau khi thực hiện lệnh trên:
[root@blogd-net-lab01 ~]# egrep '^DEFROUTE' /etc/sysconfig/network-scripts/ifcfg-ens39
DEFROUTE=no
Ví dụ 17: Vô hiệu hóa Địa chỉ IPv6 cho kết nối ethernet:
Theo mặc định thì kết nối IPv4 và IPv6 đều được bật cho mọi kết nối ethernet. Để chỉ sử dụng IPv4 và tắt IPv6 bằng cách sử dụng lệnh nmcli
:
Sác thực IPv6INIT trong file cấu hình ethernet:
[root@blogd-net-lab01 ~]# egrep 'IPV6INIT' /etc/sysconfig/network-scripts/ifcfg-ens39
IPV6INIT=yes
Thực thi lệnh sau để tắt địa chỉ IPv6 cho tệp cấu hình ethernet:
[root@blogd-net-lab01 ~]# nmcli con mod ens39 ipv6.method ignore
Sác thực IPv6INIT trong file cấu hình ethernet sau khi thực hiện lệnh trên:
[root@blogd-net-lab01 ~]# egrep 'IPV6INIT' /etc/sysconfig/network-scripts/ifcfg-ens39
IPV6INIT=no
Ví dụ 18: Khi chúng ta muốn thêm hoặc thay đổi DNS server của kết nối hiện tại bằng lệnh nmcli
chúng ta thực hiện như sau:
Kiểm tra DNS hiện tại của kết nối:
[root@blogd-net-lab01 ~]# egrep DNS /etc/sysconfig/network-scripts/ifcfg-ens37
Tiếp theo thực hiện thêm DNS server cho kết nối bằng cách thực thi lệnh sau:
[root@blogd-net-lab01 ~]# nmcli con mod ens37 ipv4.dns 8.8.8.8
Sác thực lại xem DNS server đã được thêm vào kết nối hiện tại hay chưa:
[root@blogd-net-lab01 ~]# egrep DNS /etc/sysconfig/network-scripts/ifcfg-ens37
DNS1=8.8.8.8
Nếu chúng ta muốn sử dụng nhiều DNS server thì chúng ta có thể sử dụng lệnh nmcli
cùng với phép +
theo sau nó là ipv4.dns
. Ở trên chúng ta đã thêm DNS1=8.8.8.8 trong ví dụ này chúng ta thực hiện thêm một DNS server có IP là 8.4.4.4:
[root@blogd-net-lab01 ~]# nmcli con mod ens37 +ipv4.dns 8.4.4.4
Thực hiện kiểm tra lại DNS server đã được thêm vào kết nối hiện tại:
[root@blogd-net-lab01 ~]# egrep DNS /etc/sysconfig/network-scripts/ifcfg-ens37
DNS1=8.8.8.8
DNS2=8.4.4.4
Ví dụ 19: Chúng ta muốn xóa một hoặc nhiều DNS server của kết nối hiện tại bằng lệnh nmcli
cùng với dấu -
theo sau nó là ipv4.dns
như bên dưới:
[root@blogd-net-lab01 ~]# nmcli con mod ens37 -ipv4.dns 8.4.4.4
[root@blogd-net-lab01 ~]# nmcli con mod ens37 -ipv4.dns 8.8.8.8
Kiểm tra lại DNS server của kết nối hiện tại:
[root@blogd-net-lab01 ~]# egrep DNS /etc/sysconfig/network-scripts/ifcfg-ens37
Ví dụ 20: Kích hoạt hoặc vô hiệu hóa kết nối
Khi chúng ta muốn kích hoạt một kết nối bằng cách sử dụng lệnh nmcli
cùng với tùy chọn up
như sau:
Kiểm tra số kết nối khả dụng:
[root@blogd-net-lab01 ~]# nmcli con show --active
NAME UUID TYPE DEVICE
ens33 3067faf9-4b17-4028-b4db-1e6c721cfb20 ethernet ens33
Thực hiện kích hoạt kết nối bằng cách thực thi lệnh sau:
[root@blogd-net-lab01 ~]# nmcli con up ens37
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/3)
Kiểm tra lại các kết nối khả dụng:
[root@blogd-net-lab01 ~]# nmcli con show --active
NAME UUID TYPE DEVICE
ens33 3067faf9-4b17-4028-b4db-1e6c721cfb20 ethernet ens33
ens37 ce30feec-0926-4c31-8579-3b8d3906fba4 ethernet ens37
Trong một số trường hợp chúng ta muốn vô hiệu hóa một kết nối thì chúng ta sử dụng lệnh nmcli
cùng với tùy chọn down
như bên dưới:
[root@blogd-net-lab01 ~]# nmcli con down ens37
Connection 'ens37' successfully deactivated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/3)
Kiểm tra lại các kết nối khả dụng:
[root@blogd-net-lab01 ~]# nmcli con show --active
NAME UUID TYPE DEVICE
ens33 3067faf9-4b17-4028-b4db-1e6c721cfb20 ethernet ens33
5. Cài đặt lệnh Network trên CentOS 8/RHEL 8
Theo mặc định thì các tập lệnh network không được dùng trong CentOS 8 hoặc RHEL 8 và không được cài đặt. Nếu chúng ta muốn sử dụng lệnh network chúng ta cần cài đặt gói sau:
[root@localhost ~]# yum install network-scripts
Last metadata expiration check: 0:16:47 ago on Sun 08 Dec 2019 10:38:13 AM EST.
Dependencies resolved.
=============================================================================================================================
Package Arch Version Repository Size
=============================================================================================================================
Installing:
network-scripts x86_64 10.00.1-1.el8_0.1 BaseOS 194 k
Installing weak dependencies:
network-scripts-team x86_64 1.27-10.el8 BaseOS 25 k
Transaction Summary
=============================================================================================================================
Install 2 Packages
Total download size: 219 k
Installed size: 179 k
Is this ok [y/N]: y
Downloading Packages:
(1/2): network-scripts-10.00.1-1.el8_0.1.x86_64.rpm 161 kB/s | 194 kB 00:01
(2/2): network-scripts-team-1.27-10.el8.x86_64.rpm 20 kB/s | 25 kB 00:01
-----------------------------------------------------------------------------------------------------------------------------
Total 64 kB/s | 219 kB 00:03
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Installing : network-scripts-10.00.1-1.el8_0.1.x86_64 1/2
Running scriptlet: network-scripts-10.00.1-1.el8_0.1.x86_64 1/2
Installing : network-scripts-team-1.27-10.el8.x86_64 2/2
Running scriptlet: network-scripts-team-1.27-10.el8.x86_64 2/2
Verifying : network-scripts-10.00.1-1.el8_0.1.x86_64 1/2
Verifying : network-scripts-team-1.27-10.el8.x86_64 2/2
Installed:
network-scripts-10.00.1-1.el8_0.1.x86_64 network-scripts-team-1.27-10.el8.x86_64
Complete!
Sau khi cài đặt thành công thì gói này cung cấp một phiên bản mới của tập lệnh ifup
và ifdown
. NetworkManager
phải được chạy để chúng ta có thể chạy các tập lệnh này.
6. Lời kết
Qua bài trên, giúp cho chúng ta cách quản lý mạng dùng NetworkManager trên CentOS 8 của hệ điều hành Linux, cách thiết lập IP cho CentOS 8 từ đó chúng ta có thể trải nghiệm máy chủ CentOS 8 cách tốt nhất.