什麼是 VPS?用白話了解虛擬私有伺服器
VPS 是由虛擬機監控程式切分的獨立伺服器,具備專屬記憶體、磁碟、IP 位址與 root 權限,也說明它與容器及裸機的差異。
什麼是 VPS?
VPS(virtual private server,虛擬私有伺服器)是資料中心中一台實體電腦的一部分。您可以租用這個部分,使用方式就像擁有一台完整的電腦。該電腦上的軟體會將其分割成數台彼此獨立的伺服器,而您會取得其中一台:專屬的記憶體、磁碟、IP 位址,以及可讓您安裝任何所需軟體的 root 登入權限。它會持續運作,並透過網際網路上的公開位址回應連線。
拆開這 3 個字,這項產品的意義就很清楚。Server 是持續開機並透過網路回應請求的電腦。Virtual 表示它是由軟體建立的。您的伺服器是較大型實體機器中的一個分割區。Private 表示該分割區只屬於您。您的檔案與執行中的程式,其他租用相鄰分割區的人都無法看見。
如果您從未在任何系統上取得 root 權限,最後這一點最重要。VPS 是第一種讓您成為機器管理員的託管服務。沒有任何設定會預先替您完成,但也沒有人限制您能做什麼。
虛擬機監控程式如何切分資源,以及它分享哪些資源
負責切分資源的程式稱為虛擬機監控程式。它執行於實體機器上,該機器稱為主機。它會為每位客戶提供一組虛擬硬體:處理器、記憶體、磁碟和網路卡。作業系統會安裝在這些虛擬硬體上,並像擁有實體電腦一樣啟動。這個客體系統就是你的 VPS。KVM(kernel-based virtual machine)是 Linux 主機上最常見的虛擬機監控程式,Xen、VMware ESXi 和 Microsoft Hyper-V 也執行相同工作。
記憶體和磁碟是按空間切分。處理器則是按時間切分。這項差異能解釋之後大多數令人意外的情況。分配給你的記憶體不會被其他客體系統占用。你的磁碟是主機儲存空間中的檔案或邏輯磁碟區,除非你刪除它,否則會持續歸你使用。你的虛擬核心會排入主機實體核心的佇列,虛擬機監控程式每秒決定數千次下一個要執行的客體系統。
一個指令就能告訴你購買的是哪一種虛擬化環境。
systemd-detect-virt
uname -r在一般 VPS 上,systemd-detect-virt 會輸出 kvm,表示完整的虛擬機監控程式已啟動一個只屬於你的核心。在容器虛擬化環境中,它會輸出 lxc、openvz 或 container。此時你的伺服器是主機自身作業系統中的隔離區域,並與同一台主機上的其他客戶共用核心。在裸機上,它會輸出 none。這項差異會帶來實際影響,因為共用核心代表你無法修改核心。你無法載入模組,因此像 WireGuard VPN 模組 這類核心內功能會因 Operation not supported 而失敗,而 uname -r 會回報一個不是由你選擇、也無法升級的版本。
這裡的 virtual 是什麼意思?
因為伺服器由軟體構成,付款後約 1 分鐘就能建立完成。不需要有人替你安裝實體硬體。伺服器會從範本映像檔建立,因此重新建置可在幾分鐘內還原乾淨的 Ubuntu;而原本可能讓實體安裝完全失效的錯誤,最多只會讓你花上一個下午。大多數供應商的控制台也能在你嘗試高風險操作前建立磁碟快照、重新開機後調整方案規模,並在底層主機需要維護時,將 guest 移至其他硬體。
價格也源自同一項特性:許多客戶同時分攤同一台實體機器的費用,因此相較於租用整台伺服器,VPS 的價格才會是目前這個水準。
這項優點也伴隨相應的代價。底層硬體由多個客戶共用,因此鄰近的繁忙 guest 也會影響你。下方的限制一節包含可用來測量這項影響的命令。
這裡的「私有」是什麼意思?
私有表示隔離。具體而言,隔離程度包括:您擁有自己的 kernel、root filesystem、使用者帳戶、process list、防火牆規則及 IP address。同一台主機上的其他客戶無法列出您的 process 或讀取您的檔案,因為對方的 guest 無法存取您的記憶體或 virtual disk。兩者是彼此分離的作業系統,只是共用同一個電源供應器。不過,隱私隔離會止於主機本身:執行 hypervisor 的人員隨時都能讀取 guest 的記憶體。若要消除這個最後的缺口,則需要 VPS 上的機密運算所述的 encrypted-memory 硬體。
Shared hosting 的運作方式正好相反。您取得的是一台供數百個其他網站使用的機器上的目錄、一個 control panel,以及 provider 選擇安裝的軟體。這裡沒有 apt install,因為安裝 package 會變更整台機器,而整台機器並不屬於您,您無權變更。Shared hosting 與 VPS 的比較會詳細說明這項取捨。簡單來說:Shared hosting 租給您的是一個帳戶,而 VPS 租給您的是一台電腦。
VPS 規格表逐項說明
每台 VPS 都會以一小串數字列出規格。以下以供應商常見的中階方案作為範例。這些是截至 August 2026 的典型公開數據,不代表報價。
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,因為 Linux 計算可用記憶體前,會先扣除 kernel 與數個保留的記憶體區域。記憶體用完時,系統不會向主機借用。
160 GB NVMe。 NVMe(non-volatile memory express,非揮發性記憶體 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。執行 id -u,如果目前是 root,便會看到 0。root 可以為整個系統安裝套件、開啟 1024 以下的連接埠(核心會將這些連接埠保留給具特殊權限的程序,因此一般使用者無法在 port 80 上啟動網頁伺服器)、載入核心模組、替換核心、讀取及編輯磁碟上的任何檔案,也可能因為一個疏忽的指令摧毀整個系統。沒有人會替你復原這些變更。
實際差異很簡單。在共用主機上,你要開支援單請求安裝某個軟體。在 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 也構成你整個安全邊界,而它一開始會以供應商產生的密碼提供。新伺服器的首次工作階段不適合用來安裝應用程式。請建立一般使用者,改用 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 time。在 container virtualisation 上,該值會維持為 0,因此無法提供任何資訊。
記憶體是固定的,而且上限會突然生效。 配置記憶體失敗時,kernel 的 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 不會給程序寫入任何內容的機會。原因只會出現在 kernel log 中。許多 VPS 映像沒有 swap file,會讓記憶體上限更加嚴格,因此新增小型 swap file 通常是第一個變更。
磁碟速度快,但也是共用的。 主機的 NVMe 速度很快,而你的磁碟資源配額必須與所有其他 guest 競爭輸入與輸出作業。在低負載時段執行的 benchmark,不代表同一台機器在尖峰時段也能提供相同效能。
硬體不是你可以接觸的資源。 你無法插入任何裝置。除非方案刻意提供直通,否則不能使用 USB 裝置、擷取卡或 graphics card;這類方案是另一種更昂貴的產品:配備 GPU 的 VPS。
每項資源都只有一份。 VPS 是單一台機器。若主機發生故障,你的伺服器會持續停止服務,直到主機恢復;除非你自行建置故障轉移,否則不會自動切換。備份由你負責,因此 從 VPS 執行 restic 備份應列入設定清單。供應商 snapshot 很方便,但不算備份,因為它和受保護的資料位於相同基礎架構上。
支援範圍到 hypervisor 為止。 在 unmanaged 方案中,供應商負責維持硬體、網路及虛擬化層的正常運作。從作業系統以上的所有內容都由你負責,包括安全性更新。Managed 與 unmanaged hosting說明這項界線,而 Ubuntu 的 unattended upgrades是最基本且實用的啟用項目。
VPS 與容易混淆的相關概念比較
virtual machine 是一般性概念,而 VPS 是其中一種商業形式:按月租用的 virtual machine,已配置作業系統、公開位址與網路。VPC(virtual private cloud)是較大型雲端內部的私有網路,伺服器會部署在其中,因此回答的是完全不同的問題。VPS、VM 與 VPC 的比較會正確區分這 3 個術語。
dedicated server 是整台實體機器,不使用 hypervisor,也沒有其他租戶共用資源。每月費用可能高出數倍;當 steal time 或磁碟資源競爭才是真正的瓶頸時,dedicated server 才是合適選擇。VPS 與 dedicated server 的比較列出各項判斷依據。
VPN(virtual private network)只是在名稱上與 VPS 共用 2 個字母,其他方面並不相同。VPN 是機器之間的加密通道。VPS 則是一台機器,而常見用途之一就是在 VPS 上執行自有 VPN,混淆便由此產生。VPS 與 VPN 的比較會釐清這 2 個術語。
自有硬體,或是在家中機器上執行 Proxmox 之類的 hypervisor,能以較低成本取得更多資源;但住宅網路連線常會受到許多服務的限制。你也會直接擁有 host,因此 guest 在啟用 Proxmox 中的 nested virtualization 後,可以再執行自己的 hypervisor;租用的 VPS 很少允許這種設定。Proxmox 與 VPS 的比較會從效能、噪音與 uptime,以及每月費用等面向進行權衡。
VPS 上可以執行哪些服務?
直接說,凡是能在 Linux 上執行的程式都可以。常見用途包括搭配資料庫的網站、私人 VPN、遊戲伺服器、狀態監控工具、郵件伺服器、媒體資料庫,或是在筆記型電腦闔上後仍持續工作的程式設計代理程式。你執行的每項服務都會監聽某個連接埠,因此 Linux 中的連接埠是什麼 是值得接著學習的概念;VPS 可以做什麼 則提供更完整的清單,以及各項用途所需的資源成本。
FAQ
VPS 和虛擬機器是同一回事嗎?
VPS 是由公司出租給你的虛擬機器,包含作業系統、公開 IP 位址,以及月租費。底層技術相同。兩個詞的涵義不同:「虛擬機器」泛指在 hypervisor 上執行的任何 guest,包括你自己筆記型電腦上的 guest;「VPS」則是你購買的產品。VPC 又是另一種概念,指雲端服務供應商內部的私有網路,而不是伺服器。
使用 VPS 需要懂 Linux 嗎?
需要懂一些,但其餘內容可以邊用邊學。入門需要會使用 ssh 連線、使用 cd 和 ls 移動目錄、使用 nano 編輯檔案、使用 apt 安裝軟體,以及使用 journalctl 讀取日誌。非代管 VPS 預設由你自行處理更新與防火牆。如果這些工作超出你的需求,可以改用代管方案或控制面板,但每月費用會較高。
為什麼我的 VPS 顯示的 RAM 少於方案承諾的容量?
Linux 回報的是可用記憶體,而方案標示的是配置的記憶體。核心映像檔與數個保留的記憶體區域會在計算 free -h 的總量前先扣除,因此 16 GB 方案通常會顯示約 15Gi。相差幾百 MB 屬於正常範圍。若相差數 GB,就不正常,值得提交支援工單。
steal time 是什麼?需要擔心嗎?
steal time 是虛擬 CPU 已準備好執行,但因為 hypervisor 將實體核心分配給其他 guest 而必須等待的時間百分比。vmstat 1 的 st 欄位會顯示這項數值。在共用硬體上,短時間出現 1% 或 2% 通常屬於正常現象。如果在自身負載很低時仍持續維持兩位數,表示實體主機的資源配置過度超額。解決方式是更換主機或方案,因為伺服器內部無法控制主機的排程器。
可以在單一 VPS 上執行多個服務嗎?
可以。這正是 root 帳戶的用途:這台機器是通用用途的主機,只要記憶體足夠,且每個服務各自監聽不同的連接埠,就能同時執行。記憶體通常是首先遇到的限制,磁碟速度則是第二個限制。郵件是較特殊的例外,因為郵件遞送取決於 IP 位址的信譽,而主機代管商提供的新 IP 位址通常一開始不受大型郵件系統信任。