*這篇文章討論的是Linux桌面如何用VPN上網,並非自架VPN伺服器。
現在VPN公司那麼多家,每家都會提供專門的VPN客戶端讓你下載。可是不見得每一家都是開放原始碼的,他們可能透過這個客戶端蒐集你的使用資料。
且要是你不把雞蛋放在同一個籃子裡面,同時使用多家VPN,要一直開不同的VPN客戶端也很煩吧?而且有的GUI寫的超爛。
其實你不需要針對每一家的VPN都下載一次客戶端,只要利用Linux桌面內建的機制來建立連線即可。
所有的VPN集中在一個界面管理,方便你任意切換。

1. 原理#
Linux桌面多半有組態VPN設定的面板。
VPN的原理並不是高深的魔法。常見的VPN協定有:OpenVPN、WireGuard、IPsec 、L2TP等等。
有些比較強力反網路審查的VPN,如Shadowsocks、V2Ray、Trojan,會使用自研協定,這已經超出傳統VPN的範圍了,暫此不表。
主流的VPN供應商,只要不是老习VPN這種封閉的體系,都應該要提供你OpenVPN(.ovpn)或WireGuard(.conf)設定檔下載的管道。像ProtonVPN、AirVPN、Mullvad、Surfshark VPN、NordVPN都有提供便利的設定檔生成器。
AirVPN生成設定檔的界面
Linux桌面最常見的管理網路服務的乃是「NetworkManager」。它有很多network-manager-*外掛程式能夠處理各種VPN協定的連線。
使用者透過nmcli指令可以連線到VPN。
接著,Linux桌面環境的連線面板,多半有與NetworkManager整合。
那麼你只要下載VPN供應商給你的設定檔之後,點幾下設定檔就可以匯入連線。
2. 安裝NetworkManager的VPN外掛程式#
以Ubuntu來說,先檢查管理網路的服務是否為NetworkManager並正在運作:
sudo systemctl status NetworkManager
然後,安裝對應的network-manager-*套件就可以了。例如,要OpenVPN和WireGuard的話:
sudo apt install openvpn network-manager-openvpn wireguard
# GNOME桌面
sudo apt install network-manager-openvpn-gnome
3. Linux桌面連線到VPN#
GNOME#
以GNOME 46為例
開啟系統設定 → 連線,新增VPN,匯入OpenVPN或WireGuard的檔案即可。
KDE Plasma#
以KDE Plasma 6為例
OpenVPN的話,在Dolphin檔案管理器按二下.ovpn檔,就會自動打開系統設定的連線界面匯入。
WireGuard要打開KDE系統設定 → 連線,新增WireGuard,自行依照.conf的內容填寫伺服器資訊。
另一種方式是使用nmcli指令匯入,它會同步顯示在KDE系統設定面板。.conf的檔案名稱需要自行重新命名為wg-*開頭。
nmcli connection import type wireguard file wg0.conf
4. 延伸閱讀:只給單個應用程式啟用VPN#
如果只要特定APP用VPN上網,其餘系統不受影響,那麼就用Docker + Gluetun關在裡面吧!