Hướng Dẫn Cấu Hình Mạng Trên Ubuntu 20.04 - 123HOST

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.yamlnetwork: 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 và <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: yes và dhcp6: 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/hosts127.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 !

Từ khóa » Cấu Hình Ip Cho Ubuntu Server