Chuyển đến nội dung chính (Skip to content)
Mục lục bài viết
Linux

Cấu hình IP tĩnh và DNS trên Ubuntu Server với Netplan

Cấu hình IP tĩnh và DNS trên Ubuntu Server với Netplan

Kiểm tra interface, route và DNS trước khi sửa Netplan; dùng console, kiểm tra YAML và thử cấu hình có phương án khôi phục trên Ubuntu Server 24.04.

Đổi IP từ xa có thể làm mất phiên SSH ngay khi cấu hình được áp dụng. Trước khi viết YAML, người quản trị cần xác định ai đang quản lý mạng, địa chỉ nào được phép sử dụng và đường khôi phục nằm ở đâu. Bài này dùng Ubuntu Server 24.04 LTS trong lab, một interface Ethernet và một gateway; không áp dụng nguyên mẫu cho mạng nhiều NIC hoặc VPS có route đặc thù.

Chuẩn bị console và thông tin mạng

Bạn cần console đã thử đăng nhập, bản sao cấu hình hiện tại và thông số IP được cấp hợp lệ. Thông số gồm interface, địa chỉ/prefix, gateway và DNS resolver. Nếu không có quyền quản lý dải địa chỉ, hỏi người phụ trách mạng thay vì chọn một IP có vẻ chưa ai dùng.

Máy ảo dùng NAT có thể cần DHCP do hypervisor cung cấp. VPS có thể sử dụng cloud-init, địa chỉ point-to-point, gateway ngoài subnet hoặc route theo tài liệu nhà cung cấp. Không thay những cấu hình đó bằng một ví dụ LAN chỉ vì cùng chạy Ubuntu.

Giữ một phiên console trong suốt thao tác. Snapshot hoặc file backup không giúp bạn truy cập máy nếu không có kênh đưa cấu hình trở lại. Cần phân biệt khả năng rollback với khả năng thực sự thực hiện rollback khi mạng đã mất.

Đọc trạng thái đang hoạt động

ip -br link
ip -br address
ip route
resolvectl status
sudo netplan get
sudo ls -l /etc/netplan

ip cho biết trạng thái kernel đang sử dụng, còn netplan get mô tả cấu hình hợp nhất từ các nguồn Netplan. Hai phần có thể khác nhau khi file chưa áp dụng hoặc cấu hình bị thành phần khác thay đổi. Đọc cả hai để tránh sửa sai chỗ.

Netplan chuyển cấu hình sang renderer, thường là systemd-networkd hoặc NetworkManager. Nó không tự trở thành một DHCP server hay DNS server. Một địa chỉ DNS được khai báo đúng chưa chứng minh resolver đó truy cập được từ mạng hiện tại.

Tên interface như enp0s3, ens3 hoặc enp1s0 phụ thuộc môi trường. Không sao chép tên từ bài khác. Kiểm tra MAC và mô tả NIC trong hypervisor nếu máy có nhiều card. Trong một số cấu hình, tên interface có thể được match bằng MAC; giữ cơ chế hiện tại khi không có lý do thay đổi.

Xác định file nào có quyền quản lý cấu hình

Các file trong /etc/netplan có thể được sinh bởi cloud-init. Đọc comment đầu file và tài liệu image trước khi sửa. Nếu cloud-init tiếp tục tái tạo cấu hình, thay đổi thủ công có thể không giữ sau reboot hoặc một sự kiện tái cấu hình.

Không tự tắt cloud-init chỉ để giữ một IP tĩnh trên VPS. Cơ chế này có thể còn quản lý metadata, hostname hoặc key. Thực hiện theo hướng dẫn nhà cung cấp và ghi lại nguồn cấu hình có thẩm quyền.

Netplan hợp nhất nhiều file; tạo một file mới không có nghĩa dữ liệu cũ tự biến mất. Bạn có thể vô tình giữ cả DHCP lẫn IP tĩnh, hoặc có nhiều default route. Xem kết quả netplan get sau sửa, không chỉ nội dung file vừa tạo.

Sao lưu ra ngoài thư mục cấu hình đang được đọc:

sudo cp -a /etc/netplan /root/netplan-before-lab

Không đặt bản backup có đuôi .yaml vào chính /etc/netplan vì nó có thể được đọc như cấu hình hợp lệ. Nếu thư mục backup đã tồn tại, chọn tên mới có thời điểm rõ ràng để không trộn các mốc khôi phục.

Mô hình các thành phần liên quan: Cấu hình IP tĩnh và DNS trên Ubuntu Server với Netplan
Mô hình kỹ thuật để giải thích cơ chế; không phải bằng chứng kiểm thử.

Viết cấu hình IP tĩnh cho lab một interface

Ví dụ sau chỉ minh họa cấu trúc, không phải địa chỉ để sao chép vào mọi máy. Thay interface và toàn bộ thông số bằng thông tin mạng lab được cấp. Dải 192.0.2.0/24 dành cho tài liệu và không được mặc định sử dụng làm mạng vận hành.

network:
  version: 2
  renderer: networkd
  ethernets:
    enp0s3:
      dhcp4: false
      addresses:
        - 192.0.2.10/24
      routes:
        - to: default
          via: 192.0.2.1
      nameservers:
        addresses:
          - 192.0.2.53

YAML dùng khoảng trắng, không dùng tab để thụt dòng. Chọn tên file phù hợp sau khi đã xác định các file đang có, ví dụ /etc/netplan/01-lab.yaml trên máy lab chưa có cấu hình cạnh tranh. Đặt quyền hạn chế phù hợp:

sudo chmod 600 /etc/netplan/01-lab.yaml
sudo netplan generate
sudo netplan get

generate kiểm tra và sinh cấu hình backend; nó chưa chứng minh IP không trùng, gateway đúng hay đường về tồn tại. Nếu có lỗi cú pháp, sửa ngay trong console và chạy lại. Không tiếp tục apply với hy vọng hệ thống tự bỏ qua phần sai.

Thử cấu hình có phương án khôi phục

sudo netplan try --timeout 120

Lệnh có thể tạm áp dụng cấu hình, yêu cầu xác nhận và dự kiến khôi phục nếu không được xác nhận trong khoảng chờ. Nó có thể làm rớt SSH hiện tại. Chạy khi console đang hoạt động, mở phiên mới vào IP đích và kiểm tra đủ lớp trước khi xác nhận.

Theo Netplan try, cần kiểm tra việc rollback thật sự xảy ra; không coi cơ chế timeout là bảo đảm tuyệt đối trong mọi loại cấu hình. Sau rollback, kiểm tra cả trạng thái interface và file trên đĩa trước lần reboot kế tiếp. Một số cấu hình thiết bị ảo hoặc thay đổi phức tạp cần thận trọng hơn.

netplan apply áp dụng cấu hình mà không có cùng quy trình xác nhận tương tác. Chỉ dùng khi đã kiểm tra và biết cách quay lại; đừng thay try bằng apply chỉ vì bạn đang làm qua SSH và không thấy prompt thuận tiện.

Kiểm tra theo thứ tự IP, route, DNS và ứng dụng

  1. Xem ip -br address để xác nhận IP/prefix đúng trên đúng interface.
  2. Xem ip route để kiểm tra default route và route của subnet.
  3. Kiểm tra gateway trong lab nếu policy cho phép ICMP; không phản hồi ping chưa đủ kết luận gateway hỏng.
  4. Dùng resolvectl status và getent hosts để kiểm tra DNS đang dùng cùng kết quả phân giải.
  5. Kiểm tra kết nối ứng dụng và đăng nhập SSH từ client khác.
ip route get 1.1.1.1
getent hosts archive.ubuntu.com
resolvectl query archive.ubuntu.com

ip route get chọn route cho đích, không gửi đủ giao dịch để chứng minh đích có thể truy cập. DNS công cộng có thể bị chặn hoặc không phân giải tên nội bộ của doanh nghiệp; ưu tiên resolver được cấp trong môi trường. Không sửa /etc/resolv.conf tùy tiện vì file có thể là symlink được dịch vụ khác quản lý.

Sơ đồ các bước kiểm tra: Cấu hình IP tĩnh và DNS trên Ubuntu Server với Netplan
Sơ đồ chẩn đoán: kiểm tra theo từng lớp trước khi thay đổi cấu hình.

Khi máy mất kết nối sau thay đổi

Từ console, đọc IP và route hiện tại. Nếu IP không xuất hiện, kiểm tra cú pháp, interface và renderer. Nếu IP đúng nhưng thiếu đường ra, xem prefix/gateway và cấu hình route thay vì đổi DNS trước.

Khi IP và route có vẻ đúng nhưng tên không phân giải, kiểm tra resolver, khả năng đi tới resolver và search domain. Một hostname nội bộ có thể phụ thuộc DNS doanh nghiệp hoặc VPN; chuyển sang DNS công cộng không phải cách sửa phù hợp.

Nếu cần khôi phục, so sánh bản backup rồi trả lại chính xác các file cũ, đồng thời xử lý file mới đã tạo. Không chép backup đè một file rồi để file bổ sung sai tiếp tục được hợp nhất. Kiểm tra generate, áp dụng qua console và xác nhận kết nối.

Reboot kiểm tra tính bền vững chỉ sau khi cấu hình và nguồn quản lý đã rõ. Reboot sẽ ngắt dịch vụ; đừng dùng nó làm bước thử đầu tiên khi chưa có console. Ghi lại kết quả trước/sau để nhận biết cấu hình bị cloud-init hoặc thành phần khác ghi lại.

Khác biệt distro và tiêu chí hoàn thành

Debian có thể dùng ifupdown, NetworkManager hoặc systemd-networkd tùy cách cài. Rocky/AlmaLinux thường quản lý mạng qua NetworkManager. Nguyên tắc kiểm tra IP, route và DNS vẫn hữu ích, nhưng file YAML Netplan không phải giao diện cấu hình dùng chung cho mọi distro.

Hoàn thành khi truy cập được từ client, IP/route/resolver đúng, chức năng ứng dụng hoạt động, cấu hình giữ sau reboot và bạn đã thực hành một lần khôi phục trong lab. Với nhiều NIC, VLAN, bonding, policy routing hoặc VPS có gateway đặc biệt, chuyển sang hướng dẫn chuyên biệt thay vì kéo dài mẫu một interface này.

Kiểm tra đường về và tên dịch vụ sau đổi IP

Client có thể gửi gói tới server nhưng server trả về sai gateway khi có nhiều đường đi. Mẫu một NIC trong bài giúp giảm biến số, nhưng khi thực tế có VPN hoặc nhiều interface, cần xem route lựa chọn cho chính địa chỉ client. Đừng thêm default route thứ hai để thử mà không hiểu metric và policy routing.

Đổi IP còn có thể ảnh hưởng DNS record, allowlist, cấu hình giám sát và ứng dụng bind vào địa chỉ cũ. Sau khi mạng hoạt động, kiểm tra các thành phần đó theo danh sách dịch vụ đang vận hành. IP mới ping được chưa đủ chứng minh người dùng vào được bằng hostname quen thuộc.

Bài liên quan

Tìm hiểu thêm