BizMaC bizmac.com

Ubuntu 20.04: Đặt IP tĩnh bằng netplan

Hướng dẫn Linux Server · cập nhật 09/08/2026

Để đặt IP tĩnh trên Ubuntu 20.04, bạn sửa file YAML trong /etc/netplan rồi chạy netplan apply. Việc này mất khoảng 5 phút và không cần khởi động lại máy.

Máy chủ cài mới nhận IP động từ DHCP của router. Sau vài lần khởi động, router có thể cấp một IP khác, và mọi thứ trỏ tới máy theo IP cũ đều gãy: bản ghi DNS nội bộ, cấu hình chuyển tiếp cổng, quy tắc tường lửa, phiên SSH đang lưu. Đặt IP tĩnh là cách chốt địa chỉ lại một chỗ.

  1. Xem tên cổng mạng và IP đang dùng.
  2. Mở file cấu hình netplan trong /etc/netplan.
  3. Điền địa chỉ IP tĩnh, gateway và DNS.
  4. Chạy netplan apply rồi kiểm lại.
Ubuntu 20.04 LTS hết hỗ trợ tiêu chuẩn từ tháng 04/2025, chỉ còn nhận bản vá qua chương trình trả phí. Bài này giữ cho máy chủ cũ còn đang chạy. Máy cài mới nên dùng Ubuntu 22.04 hoặc 24.04, cách làm gần như giống hệt, khác một dòng nêu ở cuối bài.

Vì sao Ubuntu 20.04 dùng netplan thay cho file interfaces

Từ bản 17.10, Ubuntu chuyển sang netplan làm lớp cấu hình mạng chung. Bạn viết cấu hình bằng YAML trong /etc/netplan, netplan dịch nó thành cấu hình cho systemd-networkd trên bản Server hoặc NetworkManager trên bản Desktop. File /etc/network/interfaces của các bản Ubuntu cũ không còn được đọc nữa.

Hệ quả thực tế: sửa /etc/network/interfaces trên Ubuntu 20.04 thì không có gì xảy ra, dù lệnh lưu file chạy thành công. Đây là lý do phổ biến nhất khiến người quen Ubuntu 16.04 loay hoay mà IP không đổi.

Nên đặt IP tĩnh bằng netplan hay bằng lệnh ip

Lệnh ip addr add gán địa chỉ ngay lập tức nhưng mất sạch sau lần khởi động kế tiếp, vì nó chỉ ghi vào bộ nhớ nhân hệ điều hành. Netplan ghi vào file nên cấu hình còn lại vĩnh viễn. Dùng lệnh ip khi cần thử nhanh, dùng netplan cho cấu hình thật.

Tiêu chínetplanlệnh ip addr
Còn sau khi khởi động lạiCóKhông
Thời gian áp dụngVài giây sau netplan applyTức thì
Đặt được DNSCó, trong cùng fileKhông, phải sửa resolv.conf riêng
Rủi ro mất kết nối SSHCó, nếu gõ sai địa chỉCó, nhưng khởi động lại là về cũ
Nên dùng khiCấu hình chính thức cho máy chủThử một địa chỉ trước khi ghi vào file

Các bước thiết lập IP tĩnh trên Ubuntu 20.04

Bốn bước dưới đây chạy bằng tài khoản có quyền sudo. Nếu bạn đang thao tác qua SSH, hãy chuẩn bị sẵn đường vào bằng console của nhà cung cấp hoặc KVM, vì gõ sai một ký tự trong file YAML là mất kết nối ngay khi áp dụng.

1. Xem tên cổng mạng và IP hiện tại

ip addr show

Kết quả trên máy đang lấy IP từ DHCP:

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:15:5d:00:64:00 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.132/24 brd 192.168.0.255 scope global dynamic eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::215:5dff:fe00:6400/64 scope link
       valid_lft forever preferred_lft forever

Ghi lại hai thứ: tên cổng, ở đây là eth0, và chữ dynamic xác nhận địa chỉ đang do DHCP cấp. Tên cổng trên máy khác có thể là ens33, enp0s3 hoặc eno1, bạn dùng đúng tên máy mình in ra.

2. Mở file cấu hình netplan

ls /etc/netplan
sudo nano /etc/netplan/00-installer-config.yaml

Ubuntu Server cài bằng trình subiquity sinh ra file 00-installer-config.yaml. Máy cài theo cách khác có thể có tên khác như 50-cloud-init.yaml. Chạy lệnh ls ở trên để biết tên thật rồi mới mở.

3. Điền địa chỉ tĩnh, gateway và DNS

Sửa nội dung file thành như sau, lưu bằng Ctrl + O rồi thoát bằng Ctrl + X:

# This is the network config written by 'subiquity'
network:
  ethernets:
    eth0:
       dhcp4: no
       addresses: [192.168.0.5/24]
       gateway4: 192.168.0.1
       nameservers:
             addresses: [1.1.1.1, 1.0.0.1, 8.8.8.8, 8.8.4.4]

  version: 2

YAML đọc theo thụt đầu dòng và chỉ chấp nhận dấu cách, không chấp nhận ký tự tab. Sai thụt lề là netplan báo lỗi cú pháp và bỏ qua cả file.

Ba giá trị cần đổi theo mạng của bạn. Phần addresses là IP muốn đặt kèm độ dài subnet, chọn một địa chỉ nằm ngoài dải DHCP của router để không bị cấp trùng. Phần gateway4 là IP của router. Phần nameservers có thể dùng DNS của Cloudflare, của Google, hoặc IP máy chạy AdGuard Home trong mạng nội bộ.

4. Áp dụng và kiểm tra

sudo netplan apply
ip addr show

Dòng inet giờ hiển thị địa chỉ mới và không còn chữ dynamic:

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:15:5d:00:64:00 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.5/24 brd 192.168.0.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::215:5dff:fe00:6400/64 scope link
       valid_lft forever preferred_lft forever

Kiểm thêm đường ra ngoài và phân giải tên miền:

ip route
ping -c 3 1.1.1.1
resolvectl status | grep 'DNS Servers'

Xong đúng khi ip route có dòng default via trỏ về gateway, lệnh ping có phản hồi, và resolvectl liệt kê đúng các DNS bạn vừa điền.

Lỗi hay gặp khi chạy netplan apply

Bốn tình huống dưới đây chiếm phần lớn các ca đặt IP tĩnh thất bại. Chúng có thông báo riêng nên đọc dòng lỗi là biết rơi vào ca nào.

Mất kết nối SSH ngay sau khi áp dụng. Máy đã đổi sang IP mới, phiên cũ trỏ tới IP cũ nên đứt. Kết nối lại bằng địa chỉ vừa đặt. Nếu vào không được, dùng console của nhà cung cấp hoặc KVM over IP để sửa file. Lệnh sudo netplan try an toàn hơn: nó tự hoàn tác sau 120 giây nếu bạn không xác nhận.

Báo lỗi cú pháp YAML. Thông báo dạng Invalid YAML at /etc/netplan/00-installer-config.yaml kèm số dòng. Gần như luôn là do ký tự tab hoặc thụt lề lệch. Chạy sudo netplan --debug generate để xem chi tiết hơn.

Cảnh báo quyền file quá rộng. Netplan bản mới cảnh báo khi file YAML cho phép người khác đọc. Sửa bằng sudo chmod 600 /etc/netplan/*.yaml.

IP đặt xong nhưng ra Internet không được. Thường là gateway sai hoặc IP trùng với một máy khác trong mạng. Chạy arping -D -I eth0 192.168.0.5 từ một máy khác để phát hiện trùng địa chỉ.

Khác biệt khi làm trên Ubuntu 22.04 và 24.04

Các bước giống hệt, chỉ khác cách khai báo gateway. Từ netplan 0.103 đi kèm Ubuntu 22.04, khóa gateway4 bị đánh dấu ngừng dùng và sinh cảnh báo gateway4 has been deprecated, use default routes instead. Bản 24.04 bỏ hẳn khóa này.

Cách viết thay thế dùng khối routes:

network:
  ethernets:
    eth0:
       dhcp4: no
       addresses: [192.168.0.5/24]
       routes:
         - to: default
           via: 192.168.0.1
       nameservers:
             addresses: [1.1.1.1, 1.0.0.1]

  version: 2

Cách viết này cũng chạy được trên Ubuntu 20.04, nên nếu bạn định nâng cấp hệ điều hành trong tương lai thì viết theo routes ngay từ đầu để khỏi phải sửa lại.

Sau khi máy chủ đã có địa chỉ cố định

Địa chỉ cố định là điều kiện cần cho phần lớn dịch vụ chạy nền: AdGuard Home, WireGuard, Nginx Proxy Manager, hay bất cứ thứ gì cần được trỏ tới từ máy khác. Ghi lại IP vừa đặt vào sổ quản lý mạng để lần sau không cấp trùng cho thiết bị khác.

Nên đặt luôn phần dành riêng địa chỉ trên router, cột DHCP Reservation, gán IP này cho địa chỉ MAC của máy. Làm vậy thì kể cả khi ai đó cắm thêm thiết bị mới, router cũng không cấp trùng vào địa chỉ bạn đã chốt. Với VPS thuê tại BizMaC, IP do hệ thống cấp sẵn và không nên đổi thủ công, vì lớp mạng phía trên lọc theo cặp IP và MAC.

Hướng dẫn này có giúp được Anh/Chị không?

Bài khác trong Linux Server

Xem cả 23 bài
Cài SQL Server 2025 trên Ubuntu 24.04 chạy cùng Plesk Cài SQL Server 2025 lên máy Ubuntu 24.04 đang chạy Plesk, chọn edition đúng giấy phép, tạo tài khoản riêng thay cho sa và mở kết nối từ xa mà không phơi cổng 1433. 11 phút đọc 106 lượt xem Cập nhật 16/09/2026 Cài tường lửa UFW cơ bản cho VPS Ubuntu Cách cài UFW trên Ubuntu, cho phép cổng SSH trước khi bật, mở cổng web 80 và 443, rồi kích hoạt tường lửa mà không mất kết nối cho người mới quản trị VPS. 5 phút đọc 136 lượt xem Cập nhật 29/08/2026 Đổi port SSH mặc định để bảo mật VPS Cách đổi cổng SSH từ 22 sang cổng khác trong file sshd_config, mở cổng mới trên tường lửa trước khi khởi động lại dịch vụ, và kiểm tra kết nối cho người mới. 5 phút đọc 90 lượt xem Cập nhật 28/08/2026 Cài Fail2Ban chống dò mật khẩu SSH Cách cài Fail2Ban trên Ubuntu và CentOS, tạo file cấu hình jail.local, đặt số lần sai và thời gian khoá IP, rồi kiểm tra danh sách IP đang bị chặn. 5 phút đọc 77 lượt xem Cập nhật 28/08/2026 Phân quyền file thư mục bằng chmod và chown Cách đọc dãy quyền rwx, dùng chmod đổi quyền theo số và chown đổi chủ sở hữu file trên Linux, kèm bảng số quyền hay dùng và cảnh báo chmod 777. 5 phút đọc 51 lượt xem Cập nhật 27/08/2026 15 lệnh Linux cơ bản cho người mới quản trị VPS Bảng tra 15 lệnh Linux thiết yếu để đi lại trong thư mục, xem và sửa file, kiểm tra tài nguyên và quản lý dịch vụ trên VPS, kèm ví dụ cho người mới. 5 phút đọc 59 lượt xem Cập nhật 26/08/2026