Hướng dẫn cấu hình mạng trên Ubuntu 20.04
BÀI VIẾT

Hướng dẫn cấu hình mạng trên Ubuntu 20.04

21.5K
author Tuấn Ngọc Nguyễn - 2021-12-14 17:43:39 (GMT+7)

Giới thiệu

Cấu hình mạng trên Ubuntu là kiến thức cơ bản và rất cần cho các quản trị viên hệ thống Linux. Bài viết này sẽ hướng dẫn chúng ta cách cấu hình mạng trên Ubuntu, bao gồm cấu hình IP tĩnh, IP động và đổi hostname bằng dòng lệnh.

Yêu cầu thiết yếu

  • Distro Ubuntu 20.04 LTS

  • Sử dụng sudo để config

Xem IP hiện tại

Có 2 cách để chúng ta xem IP mà Ubuntu đang sử dụng.

  • Công cụ ip: Là một công cụ mới, được lựa chọn vì nhiều tính năng mới

  • Công cụ ifconfig: Một công cụ được sử dụng từ lâu, trình bày đầy đủ nếu không nói là toàn bộ các thông tin của network.

Tương ứng với hai công cụ, ta có hai lệnh:

  • ip a
  • ifconfig

Dưới đây là ví dụ về sử dụng lệnh ip a

bash (non-root)
ip a
Kết quả
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: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:0c:29:a1:b4:8f brd ff:ff:ff:ff:ff:ff
    altname enp2s1
    inet 192.168.23.23/24 brd 192.168.23.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::3095:cfa4:d0c8:ea3c/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

Dưới đây là ví dụ về sử dụng lệnh ifconfig

bash (non-root)
ifconfig
Kết quả
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.23.23  netmask 255.255.255.0  broadcast 192.168.23.255
        inet6 fe80::20c:29ff:fea1:b48f  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:a1:b4:8f  txqueuelen 1000  (Ethernet)
        RX packets 27598  bytes 41114934 (41.1 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 2178  bytes 156254 (156.2 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 204  bytes 17836 (17.8 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 204  bytes 17836 (17.8 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0


Theo như output ở trên ta có :

Network interface:

  • ens33: Network Interface, tuỳ vào mỗi card mạng và vị trí chip tên này có thể thay đổi.
  • lo: Loopback Interface, một network interface đặc biệt giúp hệ thống tự giao tiếp với chính nó.

IPv4 address:

  • 192.168.23.23: Khi tham gia Internet, mỗi máy sẽ được cấp một địa chỉ số IPv4 duy nhất nên địa chỉ của bạn sẽ khác.

Netmask:

  • 255.255.255.0 hay /24 ở dạng CIDR, được sử dụng để chia một địa chỉ IP thành các mạng con và chỉ định các máy chủ khả dụng của mạng.

Thông tin: Các thông tin dưới sẽ cần thiết cho việc cấu hình IP tĩnh nên bạn hay ghi chú lại.

Ngoài ra bạn có thể lấy Default gateway bằng lệnh:

bash (non-root)
ip route | grep default
Kết quả
default via 192.168.23.2 dev ens37 proto dhcp metric 101 

Cấu hình IP tĩnh

Bản Ubuntu 20.04 thì netplan là một công cụ để quản lý mạng mặc định. File lưu trữ cấu hình của netplan được để ở thư mục /etc/netplan/, bạn có thể sử dụng lệnh ls để xem nội dung của thư mục:

bash (non-root)
ls /etc/netplan/
Kết quả
01-network-manager-all.yaml

Ở đây mình có 1 file config là 01-network-manager-all.yaml. Tuỳ vào mỗi hệ thống, file này có thể có tên khác nhau. Trước khi thay đổi cấu hình thì bạn nên tạo một bản backup dự phòng như sau:

bash (non-root)
sudo cp /etc/netplan/01-network-manager-all.yaml 01-network-manager-all.yaml.bak

Bạn có thể mở file config bằng bất kì text editor nào. Trong trường hợp này mình sẽ lựa chọn Nano text editor.

bash (non-root)
$ sudo nano /etc/netplan/01-network-manager-all.yaml

Cảnh báo: File config là .yaml nên việc khoảng cách sẽ ảnh hưởng tới việc đọc file của hệ thống. Các bạn lưu ý căn chỉnh cứ mỗi khoảng sẽ là 2 phím .

/etc/netplan/01-network-manager-all.yaml
# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
  version: 2
  renderer: Network Manager
  ethernets:
    ens33:
      dhcp4: no

Bây giờ bạn sẽ cấu hình IPv4 tĩnh theo mong muốn của mình. Ví dụ mình sẽ config với:

  • Network interface ens33
  • IPv4 address 192.168.23.102
  • Mask: /24
  • Gateway: 192.168.23.2

Bạn thay đổi file config dựa trên ví dụ như sau.

/etc/netplan/01-network-manager-all.yaml
network:
  version: 2
  renderer: Network Manager
  ethernets:
    ens33:
      addresses: [192.168.23.102/24]
      gateway4: 192.168.23.2

Bạn lưu file lại bằng tổ hợp phím <Ctrl> + X theo sau là Y<Enter>.

Tiếp theo, chạy lệnh sudo netplan try để kiểm tra xem các cấu hình đã đúng cú pháp hay chưa. Nếu nó xác nhận cấu hình, bạn sẽ nhận được thông báo đã chấp nhận cấu hình. và yêu cầu ấn <Enter> để giữ lại cấu hình; nếu không, nó sẽ quay trở lại cấu hình trước đó.

bash (non-root)
sudo netplan try
Do you want to keep these settings?
Press ENTER before the timeout to accept the new configuration
Changes will revert in 118 seconds
Configuration accepted.

Ta xác nhận địa chỉ IP của máy tính của bạn bằng lệnh sau:

bash (non-root)
sudo netplan apply

Hoặc lệnh này để debug

bash (non-root)
 sudo netplan –d apply

Ta cùng kiểm tra kết quả sau khi reboot máy nhé.

Kết quả
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: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:0c:29:a1:b4:8f brd ff:ff:ff:ff:ff:ff
    altname enp2s1
    inet 192.168.23.102/24 brd 192.168.23.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::3095:cfa4:d0c8:ea3c/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

Cấu hình IP động

Địa chỉ IP động như tên gọi của nó, là một địa chỉ IP tạm thời được cấp phát bởi máy chủ DHCP. IP động có tính linh hoạt cao, một địa chỉ IP động duy nhất có thể được sử dụng giữa nhiều thiết bị. Một lần nữa bạn vào file config IP của netplan:

bash (non-root)
sudo nano /etc/netplan/01-network-manager-all.yaml

Lúc này bạn xoá hết các config IP tĩnh lúc trước đi và thêm 2 dòng dhcp4: yesdhcp6: yes là xong.

Kết quả
network:
  version: 2
  renderer: Network Manager
  ethernets:
    ens33:
      dhcp4:yes
      dhcp6:yes

Xem hostname của Ubuntu

Trong Linux, hostname chính là tên máy chủ của bạn. Việc đặt hostname cũng giúp bạn dễ dàng phân biệt được bạn đang thao tác trên máy chủ nào. Hostname của máy được lưu trữ ở /etc/hostname/. Có khá nhiều lệnh để tìm ra hostname của máy.

  • Lệnh hostname: Chỉ ra hostname của máy
  • Lệnh hostnamectl: Chỉ ra thông tin chi tiết (bao gồm tên hostname, icon name, bootid,...)
bash (non-root)
hostname
ubuntu
bash (non-root)
hostnamectl
   Static hostname: ubuntu
         Icon name: computer
           Chassis: vm
        Machine ID: 08e9449dvcvsdabf1019ffc68cb2eb
           Boot ID: 9fa5d0933dsar3g877504ab641d77c0
  Operating System: Ubuntu 20.04.3 LTS
            Kernel: Linux 5.11.0-41-generic
      Architecture: x86-64

Đổi hostname của Ubuntu

Quy định đặt tên hostname: Hostname có thể đặt dài nhất là 253 kí tự. Các ký tự hợp lệ cho hostname thuộc bảng ASCII (7) bao gồm các chữ cái từ a đến z, các chữ số từ 0 đến 9 và dấu gạch ngang (-). Tên máy chủ không được bắt đầu bằng dấu gạch nối.

Để đổi tên tạm thời bạn có thể sử dụng lệnh

bash (non-root)
sudo hostname new-name 

Với new-name chính là tên bạn mong muốn. Mỗi khi bạn restart máy thì tên này sẽ trở lại mặc định được chứa trong file lưu trữ. Nếu bạn muốn thay đổi vĩnh viễn thì đây là cách:

  1. Sử dụng command-line:
bash (non-root)
sudo hostnamectl set-hostname new-name
  1. Sau đó bạn cấu hình tiếp ở file /etc/hosts. Ta đổi dòng thứ 2 127.0.1.1 ubuntu thành 127.0.1.1 new-name. Lưu lại toàn bộ và reboot máy để xem kết quả.
bash (non-root)
sudo nano /etc/hosts
/etc/hosts
127.0.0.1       localhost
127.0.1.1       new-name

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

Chúng ta kiểm tra kết quả nào :

Kết quả
ubuntu@ubuntu:~$ hostnamectl
   Static hostname: new-name
         Icon name: computer
           Chassis: vm
        Machine ID: 08e9449dvcvsdabf1019ffc68cb2eb
           Boot ID: 9fa5d0933dsar3g877504ab641d77c0
  Operating System: Ubuntu 20.04.3 LTS
            Kernel: Linux 5.11.0-41-generic
      Architecture: x86-64

Tổng kết

Qua bài ngày hôm nay, chúng ta đã đi qua cách cấu hình IP tĩnh và động cũng như hiểu host name là gì. Việc cấu hình IP sẽ vô cùng tiện lợi nhưng cũng tiềm tàng nhiều rủi ro nên hãy nhớ backup hoặc thử thực hiện trên máy ảo trước nhé. Chúc các bạn thành công và hẹn gặp lại !


Bạn có làm được theo hướng dẫn này không?

Bài liên quan

Lệnh xác định vị trí của tệp hoặc thư mục trên Linux
Lệnh xác định vị trí của tệp hoặc thư mục trên Linux
Lệnh kiểm tra nhiều cổng port đang mở của một tên miền trên Linux
Lệnh kiểm tra nhiều cổng port đang mở của một tên miền trên Linux
Lệnh tạo một dãy số tăng dần trên Linux
Lệnh tạo một dãy số tăng dần trên Linux

Object Storage

Chuẩn S3, không giới hạn băng thông

Object Storage

Thuê Server Riêng

Chi phí thấp, cấu hình cao

Thuê Server Riêng
Thông tin tác giả
Bình luận

Tính năng đang được phát triển

Đang tải bình luận
Liên hệ chúng tôi