VPS 是什麼?用白話了解虛擬私有伺服器
VPS 是由 hypervisor 切分實體伺服器而成的獨立環境,具備自己的 kernel、記憶體、磁碟與 root 登入權限,也說明資源共用的限制。
什麼是 VPS?
VPS(virtual private server,虛擬私有伺服器)是資料中心中一台實體電腦的一部分。這部分以整台電腦的形式出租給你。電腦上的軟體會將它分割成數個彼此獨立的伺服器,而你會取得其中一個。你擁有自己的記憶體、磁碟、IP 位址,以及可讓你安裝任何軟體的 root 登入權限。它會持續執行,並透過網際網路上的公開位址回應請求。
拆開這 3 個字,這項產品的意義就很清楚。Server 是持續開機並透過網路回應請求的電腦。Virtual 表示它是由軟體建立的。你的伺服器是較大型實體機器中的一個分割區。Private 表示該分割區只屬於你。你的檔案和執行中的程式,其他租用相鄰分割區的人都無法看見。
如果你從未在任何系統上取得 root 權限,最後這一點最重要。VPS 是第一種讓你成為機器管理員的主機服務。沒有任何設定會替你完成,但也沒有任何限制會阻止你。
Hypervisor 如何切分資源,以及哪些資源會共用
負責切分資源的程式稱為 hypervisor。它執行在實體機器上,而該機器稱為 host。hypervisor 會為每位客戶提供一組虛擬硬體:處理器、記憶體區塊、磁碟及網路卡。作業系統會安裝到這些虛擬硬體上,並如同擁有一台實體電腦般啟動。這個 guest system 就是你的 VPS。KVM (kernel-based virtual machine) 是 Linux host 上常見的 hypervisor;Xen、VMware ESXi 及 Microsoft Hyper-V 也執行相同工作。
記憶體與磁碟是依空間切分。處理器則是依時間切分。這項差異可以解釋之後大多數令人意外的情況。分配給你的記憶體不會被其他 guest 取用。你的磁碟是 host 儲存設備上的檔案或 logical volume;在你刪除它之前,該空間都屬於你。你的 virtual cores 是連接到 host 實體核心的佇列,hypervisor 每秒決定數千次下一個要執行的 guest。
執行一個指令即可得知你購買的是哪一種虛擬化。
systemd-detect-virt
uname -r在一般 VPS 上,systemd-detect-virt 會輸出 kvm。這表示完整的 hypervisor 已啟動一個只屬於你的 kernel。在 container virtualisation 上,輸出則會是 lxc、openvz 或 container。此時你的伺服器是 host 自有作業系統中的隔離區域,並與同一台主機上的其他客戶共用 kernel。在 bare metal 上,輸出則是 none。這項差異會造成實際影響,因為共用的 kernel 無法由你變更。你無法載入 module,因此像 WireGuard VPN module 這類 kernel 內功能會因 Operation not supported 而失敗,而 uname -r 會回報一個由供應商決定、你無法升級的版本。
這裡的 virtual 是什麼意思?
因為伺服器由軟體構成,付款後約 1 分鐘即可建立。不需要有人替你安裝實體硬體。它是從範本映像檔建立的,因此重新建置後,幾分鐘內就能恢復乾淨的 Ubuntu;在實體安裝上可能造成嚴重損害的錯誤,最多只會讓你損失一個下午。大多數供應商的控制面板也能在你嘗試高風險操作前建立磁碟快照、重新開機後調整方案規模,並在下層主機需要維護時,將你的 guest 移至其他硬體。
價格也源自同一項特性:一台實體機器同時由多位客戶共同分攤成本,因此 VPS 的價格會是目前這個價格,而不是像租用整台伺服器那樣。
成本也緊鄰著這項優點。下層硬體是共用的,因此鄰近租戶忙碌時,也會成為你的問題。以下的限制一節包含可測量這項影響的命令。
這裡的 private 是什麼意思?
Private 表示隔離,但有必要具體說明隔離程度。你會擁有自己的 kernel、root filesystem、user accounts、process list、firewall rules 和 IP address。同一台主機上的其他客戶無法列出你的 process 或讀取你的檔案,因為對方的 guest 無法存取你的記憶體或 virtual disk。這是兩個彼此分離的作業系統,只是共用同一個電源供應器。
Shared hosting 的運作方式則相反。你會在一台提供數百個其他網站服務的機器上取得一個目錄、一個控制台,以及服務供應商選擇安裝的軟體。這裡沒有 apt install,因為安裝套件會變更整台機器,而整台機器並不屬於你,無法由你任意變更。Shared hosting 與 VPS 的比較會詳細說明兩者之間的取捨。簡單來說:shared hosting 出租給你一個帳戶,而 VPS 出租給你一台電腦。
VPS 規格表逐項解讀
每台 VPS 都會以一小串數字列出規格。以下以供應商常見的中階方案作為範例。這些是截至 2026 年 8 月常見的公開數值,不是報價。
The data behind this chart
[
{
"plan": "Example mid-range VPS",
"vcpu_cores": 4,
"ram_gb": 16,
"nvme_gb": 160,
"bandwidth_tb": 8,
"ipv4_addresses": 1
}
]這一行就是完整的產品內容。請從左到右閱讀。
4 vCPU。 vCPU(virtual central processing unit)是主機處理器的一個執行緒,由 hypervisor 排程給你使用。除非方案標示為 dedicated,否則你取得的是該執行緒的共用資源,而不是保留給你的固定資源。在伺服器內,nproc 會輸出 4,而 lscpu 會顯示處理器型號;該名稱可能是真實的主機 CPU,也可能是通用的 QEMU 型號,取決於主機的設定方式。
16 GB RAM。 記憶體是固定保留的資源,也是嚴格上限。free -h 顯示的數值會比購買的容量少一些;在 16 GB 方案上,通常接近 15Gi,因為 kernel 和數個保留的記憶體區域會在 Linux 計算可用容量前先扣除。記憶體用完時,系統不會向主機借用資源。
160 GB NVMe。 NVMe(non-volatile memory express)是磁碟在主機內部的連接介面,速度遠高於舊方案使用的 SATA SSD。你的資源會以虛擬磁碟呈現,在 KVM 下通常是 /dev/vda。df -h / 顯示的容量會略低於 160 GB,而可用空間又會更少,因為 ext4 預設會保留檔案系統 5 percent 的空間給 root。SSD VPS 中 SSD 實際代表什麼 和 如何驗證你購買的磁碟 會進一步說明。
8 TB 傳輸量。 這是每月可傳輸的資料量,通常只計算對外傳輸。它是容量限制,連接埠速度則是另一個數值,通常為 1 Gbit/s。超過配額後,供應商可能收費或限制速度,因此在託管影片前,請先確認這一項。sudo apt install vnstat 會搭配 vnstat -m 顯示你的實際用量,從安裝服務的當天開始計算。
1 個 IPv4 位址。 只要持續租用伺服器,該位址就會分配給你。你可以將網域指向該位址、在任何埠接收網路流量,通常也能在供應商控制台設定反向 DNS 紀錄;郵件伺服器會檢查這項紀錄。非常便宜的方案有時會讓多名客戶共用同一個位址,這稱為 NAT VPS。此時 ip -4 addr show 會回報像 10.0.0.5 這樣的私有位址,且對外連入的埠會受到限制。
以下 4 個指令可以確認你實際取得的資源。
nproc
free -h
df -h /
ip -4 addr show如果其中任何一項與規格表的差異超過上述四捨五入所造成的範圍,請在這台機器上建立任何服務前先聯絡支援團隊。
實務上的 root 存取權代表什麼
root 是 Linux 上的管理員帳號,其使用者 ID 為 0。以 root 身分執行 id -u 時,會看到 0。root 可以為整個系統安裝套件、開啟 1024 以下的埠(核心會將這些埠保留給具特權的程序,因此一般使用者無法在 port 80 上啟動 Web 伺服器)、載入核心模組、替換核心、讀取及編輯磁碟上的任何檔案,也可能因一個不慎的指令摧毀整個系統。沒有人會替你復原這些變更。
實際差異很簡單。在共用主機上,你要開支援單請求安裝某個軟體。在 VPS 上,你只需輸入以下指令。
sudo apt update
sudo apt install -y nginx
systemctl status nginxsystemctl status nginx 應在 1 或 2 秒內輸出 active (running),而在瀏覽器中開啟伺服器的 IP 位址時,應顯示預設的 nginx 頁面。若狀態輸出 failed,請執行 journalctl -u nginx -n 50 並查看最後幾行,因為該服務會記錄拒絕啟動的原因。常見原因是設定檔中有拼字錯誤,或已有其他程式在監聽 port 80。
root 也是整個安全邊界,而供應商會以密碼形式提供 root 存取權。新伺服器建立後的第一次工作階段,不適合用來安裝應用程式。請建立一般使用者,改用 SSH key 登入,並在各個埠前方設定防火牆。新 VPS 的前 10 分鐘 依序列出這份檢查清單,SSH key 基礎 說明登入本身,ufw 防火牆基礎 說明埠的設定,最小權限使用者 說明之後各項服務應以哪個身分執行。使用密碼登入且未設定防火牆的伺服器,每天會收到數千次猜測嘗試;你可以使用 journalctl -u ssh -f 監看這些嘗試。
VPS 有哪些限制?
處理器是共用的,而且可以測量共用程度。 Steal time 是虛擬 CPU 已準備好執行,卻因 hypervisor 將實體核心交給其他 guest 而無法執行的時間比例。
vmstat 1 5最後一欄 st 是 steal time。在任何共用主機上,短時間出現 1 或 2% 都屬正常。如果在自己的程序閒置時仍持續維持兩位數百分比,表示主機過度超額配置。因為等待發生在伺服器外部,所以在伺服器內進行任何調校都無法解決。正確為 VPS 進行基準測試說明如何在向供應商反映前取得證據。KVM 和 Xen guest 會回報 steal。在容器虛擬化環境中,這項數值會維持為 0,無法提供任何資訊。
記憶體是固定的,而且上限會突然生效。 配置記憶體失敗時,核心的 OOM(out of memory)killer 會選取一個程序,並以 SIGKILL 終止它。
sudo dmesg -T | grep -i "out of memory"以下一行訊息可以解釋原本看似無從查起的服務中斷:
Out of memory: Killed process 2412 (mysqld) total-vm:2183104kB, anon-rss:1897224kB, file-rss:0kB應用程式自己的 log 通常完全沒有相關訊息,因為 SIGKILL 不會給程序寫入任何內容的機會。原因只會出現在核心 log 中。許多 VPS 映像檔未配置 swap file,會讓記憶體上限更加嚴格。因此,新增小型 swap file 通常是第一個修改項目。
磁碟速度快,但也是共用的。 主機的 NVMe 速度很快,而你的磁碟配額必須與其他 guest 競爭輸入和輸出操作。於低負載時段進行的基準測試,不代表同一台機器在尖峰時段的效能。
硬體不是你可以接觸的資源。 你無法插入任何裝置。除非方案刻意提供 passthrough,否則不能使用 USB 裝置、擷取卡或顯示卡。這通常是另一種更昂貴的產品:配備 GPU 的 VPS。
每項資源都只有一份。 VPS 是單一機器。如果主機發生故障,你的伺服器會持續停止服務,直到主機恢復運作;除非你自行建立 failover,否則不會自動切換。備份由你負責,因此從 VPS 建立 restic 備份應列入設定清單。供應商的 snapshot 很方便,但不算備份,因為它與受保護的資料位於相同基礎架構上。
支援範圍止於 hypervisor。 在 unmanaged 方案中,供應商負責維持硬體、網路與虛擬化層的正常運作。從作業系統開始往上的所有項目都由你負責,包括安全性更新。Managed 與 unmanaged hosting說明這條界線,而在 Ubuntu 啟用 unattended upgrades是最基本且實用的啟用項目。
VPS 與容易混淆的相關項目比較
虛擬機器是一般概念,而 VPS 是其商業形式之一:按月租用的虛擬機器,已配置作業系統、公用位址與網路。VPC(虛擬私有雲)則是較大型雲端中的私有網路,伺服器位於其中,因此回答的是完全不同的問題。VPS、VM 與 VPC 的比較會正確區分這 3 個術語。
專用伺服器是整台實體機器,不使用 hypervisor,也沒有其他鄰近租戶。其月費高出數倍;當 steal time 或磁碟爭用確實成為瓶頸時,這才是適合的選擇。VPS 與專用伺服器的比較列出各項決策考量。
VPN(虛擬私人網路)與 VPS 只共用 2 個字母,其他方面毫無關係。VPN 是機器之間的加密通道。VPS 是一台機器,而執行自有 VPN 正是 VPS 的常見用途之一,混淆也由此產生。VPS 與 VPN 的比較會釐清這 2 個術語。
自有硬體,或是在家中機器上執行 Proxmox 這類 hypervisor,能以相同費用提供更多資源,但住宅網路連線常會受到許多服務的疑慮。Proxmox 與 VPS 的比較會權衡運算能力、噪音、正常運作時間與月費。
VPS 上通常會執行哪些服務?
實際上,凡是能在 Linux 上執行的程式都可以。常見用途包括網站及其資料庫、私人 VPN、遊戲伺服器、狀態監控服務、郵件伺服器、媒體庫,或在筆記型電腦闔上後仍持續工作的 coding agent。你執行的每項服務都會監聽某個埠,因此接下來值得了解 Linux 中的埠是什麼;而 VPS 能做什麼則提供更完整的用途清單,以及各項用途所需的資源成本。
FAQ
VPS 和虛擬機器是同一回事嗎?
VPS 是公司租給你的虛擬機器,包含作業系統、公有 IP 位址,以及按月計費的價格。底層技術相同,但兩個詞的涵蓋範圍不同:「虛擬機器」是指在 hypervisor 上執行的任何 guest,包括你自己筆記型電腦上的 guest;「VPS」則是指你購買的產品。VPC 又是另一種概念,指的是 cloud provider 內部的私有網路,而不是伺服器。
我需要懂 Linux 才能使用 VPS 嗎?
你只需要具備一些基礎知識,其餘內容可以在使用過程中逐步學習。起步時需要知道如何使用 ssh 連線、使用 cd 和 ls 移動目錄、使用 nano 編輯檔案、使用 apt 安裝軟體,以及使用 journalctl 讀取日誌。非託管 VPS 預設由你自行處理更新與防火牆設定。如果這些工作超出你的需求,可以選擇託管方案或 control panel,但每月費用會較高。
為什麼我的 VPS 顯示的 RAM 比方案承諾的少?
Linux 回報的是可用記憶體,而方案標示的是配置的記憶體。計算 free -h 顯示的總量前,會先扣除 kernel image 和數個保留的記憶體區域,因此 16 GB 方案通常會顯示約 15Gi。差距幾百 MB 是預期情況。差距達到數 GB 則不正常,建議向支援團隊提出 ticket。
什麼是 steal time?我需要擔心嗎?
Steal time 是指虛擬 CPU 已準備好執行,卻因 hypervisor 將實體核心分配給其他 guest 而必須等待的時間比例。vmstat 1 的 st 欄位會顯示此數值。在共用硬體上,短時間出現 1% 或 2% 通常正常。如果你自身的負載很低,但 steal time 持續維持兩位數,表示實體主機的資源配置過量。解決方式是改用其他主機或其他方案,因為你的伺服器無法控制主機的 scheduler。
我可以在單一 VPS 上執行多個服務嗎?
可以。這正是 root 的用途:這台機器是通用環境,只要記憶體足夠,且每個服務各自監聽不同的連接埠,就能同時執行。記憶體通常是第一個限制,磁碟速度則是第二個。郵件是較特殊的例外,因為郵件遞送取決於 IP 位址的信譽,而 hosting provider 配發的新 IP 位址通常一開始不受大型郵件系統信任。