SSD Nodes Learn Hosting plans →
Hướng dẫn Matt ConnorBởi Matt Connor · Cập nhật ngày 2026-08-07

VPS, VM và VPC khác nhau thế nào?

VM là công nghệ, VPS là máy ảo được bán như sản phẩm, còn VPC là mạng riêng trong cloud. Xem bạn cần loại nào và tránh so sánh sai ba khái niệm.

VPS, VM và VPC trong một đoạn

VM (virtual machine) là một máy tính được tạo bằng phần mềm: hypervisor chia một máy chủ vật lý thành nhiều máy độc lập, mỗi máy chạy kernel riêng. VPS (virtual private server) là một trong các máy ảo đó được cho bạn thuê dưới dạng sản phẩm, kèm hệ điều hành, quyền truy cập root và mức giá hàng tháng. VPC (virtual private cloud) hoàn toàn không phải là một máy chủ. Đây là mạng riêng do bạn định nghĩa bên trong tài khoản cloud, rồi đặt các tài nguyên vào đó. VM là công nghệ. VPS là sản phẩm. VPC là mạng bao quanh sản phẩm.

Hai trong ba thuật ngữ này mô tả một máy. Thuật ngữ còn lại mô tả một mạng. Hầu hết sự nhầm lẫn đều xuất phát từ điểm khác biệt này, vì mọi người so sánh chúng như thể đó là ba sản phẩm được đặt cạnh nhau.

VM là gì

Hypervisor là lớp giả lập phần cứng. Nó cấp cho mỗi guest một CPU ảo, một vùng memory, một virtual disk và một virtual network card, rồi ngăn các guest nhìn thấy nhau. KVM, Xen, Hyper-V và VMware ESXi là những hypervisor phổ biến trên server. Các hypervisor hiện đại sử dụng các extension hỗ trợ virtualisation của CPU (Intel VT-x, AMD-V), nên instruction của guest chạy trực tiếp trên CPU thật với tốc độ gần bằng native, thay vì phải được diễn giải.

Với sysadmin, phần quan trọng là kernel. VM khởi động kernel riêng, nên bạn có thể chọn distribution, nạp kernel module và đặt các giá trị sysctl chỉ áp dụng cho VM của mình. Điều này khác container (LXC, Docker), vì container dùng chung kernel của host và chỉ có view riêng đối với process và file.

Bạn có thể kiểm tra trên mọi máy Linux bằng một command.

systemd-detect-virt

kvm nghĩa là bạn đang dùng virtual machine trên hypervisor KVM. lxc hoặc openvz nghĩa là bạn đang ở trong container trên kernel của máy khác. none nghĩa là bạn đang chạy trên phần cứng vật lý của mình. Nếu command không tồn tại, lscpu | grep -i hypervisor sẽ hiển thị thông tin tương tự từ các CPU flag.

VPS là gì

VPS là một sản phẩm thương mại được xây dựng trên VM. Công nghệ bên dưới là ảo hóa. Từ “VPS” chỉ những thành phần giúp sản phẩm này có thể bán được: OS image để cài lại, một địa chỉ IP, hạn mức bandwidth, control panel, giá thuê theo tháng và một đơn vị để liên hệ khi host gặp sự cố. Từ “Private” dùng để phân biệt VPS với shared hosting, nơi hàng trăm website dùng chung một OS và một cấu hình PHP.

Vì VPS là tên sản phẩm chứ không phải thuật ngữ kỹ thuật, nó không phải lúc nào cũng là một VM đầy đủ. Một số gói giá rẻ cung cấp container nhưng vẫn dùng tên này. Sự khác biệt thể hiện ngay khi bạn cần kernel. Trên gói dựa trên container, sudo modprobe wireguard fails với RTNETLINK answers: Operation not supported hoặc modprobe: FATAL: Module wireguard not found vì container dùng kernel của host và bạn không được phép thay đổi kernel đó. Trên gói KVM, module sẽ load và tunnel sẽ hoạt động. Nếu dự định chạy Docker, VPN, custom kernel hoặc các VM của riêng bạn bên trong server, hãy kiểm tra loại ảo hóa trước khi mua. Chạy các máy ảo bên trong VPS cần KVM có bật nested virtualization trên host. Vì vậy, số gói đáp ứng được yêu cầu này còn ít hơn.

VPC là gì

VPC là một network được định nghĩa bằng phần mềm bên trong cloud provider. Bạn gán cho VPC một dải địa chỉ theo ký hiệu CIDR, chẳng hạn 10.0.0.0/16, sau đó chia dải này thành các subnet, gắn route table và đặt các rule firewall (security group) trước các resource bên trong. VPC không có CPU, memory hay disk. Không có gì để đăng nhập. Khi xóa mọi server trong một VPC, VPC vẫn tồn tại ở đó, trống và thường không bị tính phí.

VPC cung cấp cho bạn địa chỉ private. Hai server trong cùng một VPC giao tiếp bằng các địa chỉ như 10.0.1.15 trên hạ tầng nội bộ của provider. Vì vậy, network traffic không đi qua public internet và không bị tính phí internet egress. Database khi đó chỉ cần listen trên địa chỉ private, không có port nào được expose ra bên ngoài.

ip -4 addr show

Địa chỉ bên trong 10.0.0.0/8, 172.16.0.0/12 hoặc 192.168.0.0/16 là private. Một địa chỉ public trên cùng máy có nghĩa là server có thể được truy cập trực tiếp từ internet, bất kể server nằm trong network object nào.

VPC có làm server của tôi private không?

Không. Đây là một trong những hiểu lầm tốn kém nhất khi phân biệt ba thuật ngữ này. VPC kiểm soát routing và addressing. Nó không quyết định Internet có thể truy cập một máy hay không. Nếu một instance có public IP và các security rule cho phép truy cập port 22 từ 0.0.0.0/0, instance đó bị expose ở mức tương tự mọi server khác, dù có VPC hay không. VPC cung cấp khả năng cô lập bằng cách không cấp public address cho resource, cùng với các rule xác định subnet nào được phép giao tiếp với subnet nào.

Ba thuật ngữ này cũng nói đến các dạng cô lập khác nhau. VM cô lập phần compute: hypervisor tách riêng thời gian CPU và memory, nên guest khác không thể đọc RAM của bạn. Mức cô lập này yếu hơn đối với disk và network, vì một hàng xóm bận trên cùng host vẫn có thể làm giảm hiệu năng của bạn. VPS dựa trên container dùng chung một kernel, nên lỗi ở kernel là rủi ro chung. VPC không cô lập compute. Nó chỉ định hình network.

Mô hình chi phí

VPS thường được bán với một mức giá cố định hàng tháng cho một máy chủ có cấu hình cố định. Bạn biết trước hóa đơn trước khi tháng mới bắt đầu, đồng thời dung lượng disk và hạn mức transfer đã được tính trong đó. Khả năng dự đoán này là lý do chính khiến nhiều người chọn VPS thay vì cloud instance cho workload nhỏ.

Cloud VM được tính theo mức sử dụng. Instance được tính phí theo giờ hoặc theo giây, còn disk, snapshot, load balancer và outbound traffic được tính riêng. VPC thường miễn phí, nhưng các thành phần managed gắn với VPC thì không: NAT gateway cho phép các instance private truy cập Internet được tính phí theo giờ và theo gigabyte, còn traffic giữa các availability zone cũng bị tính phí. Tính đến tháng 7 năm 2026, các cloud lớn vẫn tự động đưa mọi instance mới vào một VPC mặc định, nên bạn đang sử dụng VPC dù có yêu cầu hay không.

Bạn thực sự cần loại nào

  • Một server cho website, app, game server hoặc VPN: VPS. Mười phút đầu tiên trên một VPS mới quan trọng hơn tên gọi của gói dịch vụ.
  • Nhiều server cần kết nối với nhau qua các địa chỉ riêng: VPC hoặc tính năng private network mà nhà cung cấp VPS của bạn cung cấp dưới một tên khác.
  • Workload phải tiếp tục hoạt động ngay cả khi toàn bộ một datacentre gặp sự cố: cloud có nhiều zone, tức là các VM nằm trong một VPC.
  • Toàn quyền kiểm soát kernel hoặc chạy hypervisor của riêng bạn bên trên: VPS dựa trên KVM hoặc dedicated server. Trong lúc so sánh, hãy kiểm tra loại disk phía sau gói dịch vụ.

Hầu hết dự án chỉ dùng một server không cần VPC. Tính năng private network đi kèm VPS thường đáp ứng cùng nhu cầu cho một vài máy.

FAQ

VPS có giống VM không?

VPS là một VM do nhà cung cấp bán cho bạn. Mọi VPS chạy trên KVM, Xen hoặc VMware đều là máy ảo, nhưng không phải mọi máy ảo đều là VPS, vì VM chạy trên laptop của bạn bằng VirtualBox không phải sản phẩm của nhà cung cấp nào. Một số gói giá rẻ được gắn nhãn VPS thực chất là container thay vì VM đầy đủ, nên hãy xác nhận bằng systemd-detect-virt trước khi phụ thuộc vào quyền truy cập kernel.

Tôi có thể đặt VPS bên trong VPC không?

Thường là không, vì VPC là một cấu trúc thuộc về một cloud provider và chỉ chứa các resource được tạo trong cùng account đó. VPS từ một provider độc lập nằm trên network của provider đó. Nếu cần liên kết private giữa hai bên, bạn phải tạo một VPN tunnel giữa chúng. Sau đó VPS có thể truy cập các subnet private thông qua tunnel này.

Tại sao hóa đơn cloud của tôi cao hơn VPS tương đương?

Giá instance chỉ là một phần. Storage, snapshot, outbound traffic, load balancer và NAT gateway được tính thành các mục riêng trong cloud tính phí theo mức sử dụng. Chỉ riêng NAT gateway cũng có thể tốn nhiều hơn mỗi tháng so với một VPS nhỏ. VPS có giá cố định gộp disk và hạn mức transfer vào cùng một mức giá. Vì vậy, cùng một workload thường có vẻ rẻ hơn khi chạy trên VPS.

Làm thế nào để kiểm tra server có quyền truy cập kernel thực sự?

Chạy systemd-detect-virt và đọc kết quả. kvm, xen hoặc vmware có nghĩa là bạn có kernel riêng và modprobe hoạt động. lxc, lxc-libvirt hoặc openvz có nghĩa là bạn dùng chung kernel của host. Các lệnh load module hoặc ghi vào /proc/sys sẽ fail với Operation not supported. Một cách xác nhận khác là uname -r. Trên gói container, lệnh này thường hiển thị một phiên bản kernel mà distribution của bạn chưa từng release.

#vps#vm#vpc#cloud#basics