您可以使用 SSL-VPN 連線,安全地將您的用戶端(Windows、Linux、Android 或 macOS)連線至您的 VPC,並透過網際網路存取雲端資源。
若是 iOS 和 iPadOS 用戶端,請參閱使用 SSL-VPN 將 iPhone 或 iPad 連線至 VPC。
情境
SSL-VPN 適用於下列情境:
內部部署無靜態公用 IP 位址:SSL-VPN 連線由用戶端發起,因此您的內部部署網路不需要靜態公用 IP 位址。支援家庭寬頻、行動辦公室以及具有動態 IP 位址的辦公室等動態 IP 環境,只要用戶端裝置可以存取網際網路即可。如果您已經擁有具備靜態公用 IP 位址的閘道裝置,也可以使用 IPsec-VPN 建立站台對站台連線。
私人存取 ECS 執行個體:VPC 中的 ECS 執行個體不需要公用 IP 位址。用戶端透過 SSL-VPN 連線後,可以直接使用相同 VPC 中資源的私人 IP 位址。
安全存取控制:在與 ECS 執行個體相關聯的安全性群組中,您可以僅允許來自 SSL-VPN 用戶端 CIDR 區塊的流量。這會封鎖透過網際網路的直接存取,僅允許用戶端透過 SSL-VPN 連線後進行存取,並減少 SSH 22 和 RDP 3389 等易受攻擊連接埠的暴露。
情境
目標:建立啟用 SSL-VPN 的 VPN Gateway,允許本機用戶端使用其私人 IP 位址安全地存取 VPC 中的 ECS 執行個體。
本教學課程規劃了下列資源:
VPC
名稱:
vpc-demo地區:中國(杭州)
CIDR 區塊:10.0.0.0/16
交換器:建立兩個名為
vsw1和vsw2的交換器。vsw1位於可用區 J,CIDR 區塊為 10.0.0.0/24。vsw2位於可用區 K,CIDR 區塊為 10.0.1.0/24。
ECS:IP 位址為 10.0.0.1,作業系統為
Alibaba Cloud Linux 3.2104 LTS 64-bit。
用戶端的內部部署網路:172.16.0.0/16
步驟 1:設定雲端 VPN 資源
在將用戶端連線至 VPC 之前,您必須在 Alibaba Cloud 主控台中建立並設定 VPN Gateway、SSL 伺服器和 SSL 用戶端。
1. 建立 VPN Gateway
VPN Gateway 是雲端中 SSL-VPN 連線的入口與出口點。
前往 VPN Gateway 頁面,然後按一下 建立 VPN Gateway。
在 VPN Gateway 頁面,設定下列參數:
執行個體名稱:
vpn-demoRegion:中國(杭州)。
VPC:選取您的用戶端需要存取的 VPC。
交換器 1/交換器 2:分別選取
vsw1和vsw2。VPN Gateway 採用雙主動架構。在支援多個可用區的地區中,您的 VPC 必須在不同可用區中至少有兩個交換器,以確保跨可用區的高可用性。如果您的 VPC 在不同可用區中沒有交換器,請先建立交換器。
最大頻寬:10 Mbps
IPsec-VPN:停用。(此選項僅在啟用 SSL-VPN 後可用。)
SSL-VPN:啟用。
SSL-VPN 連線數:5。
服務連結角色:如果尚未建立服務連結角色,請按一下 建立服務連結角色。
如需詳細的參數說明,請參閱建立與管理 VPN Gateway 執行個體。
完成購買後,新的 VPN Gateway 會顯示在 VPN Gateway 頁面。
新的 VPN Gateway 會以準備中狀態啟動。大約 1 到 5 分鐘後,狀態會變更為正常,此時即可使用。
2. 建立 SSL 伺服器
SSL 伺服器會定義用戶端可存取的雲端網路,並設定用戶端 IP 位址集區。
前往 SSL Servers 頁面。在頂部導覽列中,選擇中國 (杭州)地區,然後按一下建立 SSL 伺服器。
在建立 SSL 伺服器面板中,使用以下設定來設定 SSL 伺服器:
名稱:輸入
server-demo。VPN Gateway:選擇您剛剛建立的 VPN Gateway。
本端網路:輸入 VPC 的 CIDR 區塊,
10.0.0.0/16。這是您希望用戶端存取的雲端網路,通常為您 VPC 的 CIDR 區塊。
用戶端 CIDR 區塊:這是 VPN Gateway 用來將 IP 位址指派給用戶端虛擬網路介面卡的位址集區。為避免路由衝突,此區塊不得與本端網路或用戶端現有的任何 CIDR 區塊重疊(例如您的用戶端內部部署網路)。請使用 RFC 1918 私人位址範圍(10.0.0.0/8、172.16.0.0/12 或 192.168.0.0/16)中不太可能與現有網路發生衝突的位址,例如
10.0.0.0/8。172.16.0.0/12192.168.0.0/1610.200.200.0/24
其他選項請保留預設值。如需詳細的參數說明,請參閱建立及管理 SSL 伺服器。
3. 建立 SSL 用戶端並下載憑證
SSL 用戶端會管理用戶端憑證。每個連線的用戶端都必須匯入憑證以進行驗證和加密。
在左側導覽窗格中,選擇互連 > VPN > SSL 用戶端。在頂部導覽列中,選擇中國 (杭州)地區。在SSL 用戶端頁面上,按一下建立 SSL 用戶端。
在建立 SSL 用戶端面板中,名稱輸入
client-demo,SSL 伺服器選擇server-demo,然後按一下確定。在SSL 用戶端頁面上,找到您的 SSL 用戶端,然後在下載憑證欄位中按一下動作。
步驟 2:設定用戶端
請遵循適用於您用戶端作業系統的設定指示。
Windows 用戶端
下載適用於您 Windows 版本的 OpenVPN 用戶端,並遵循螢幕上的指示進行安裝。
Windows 64 位元系統 (Intel/AMD):OpenVPN client (Windows 64-bit)。
Windows ARM64 系統:OpenVPN client (Windows ARM64)。
解壓縮下載的 SSL 用戶端憑證套件,並將所有解壓縮的檔案複製到 OpenVPN 設定目錄。
預設路徑:
C:\Program Files\OpenVPN\config注意:如果您變更了安裝路徑,請將檔案複製到您實際安裝目錄中的 config 資料夾。

使用文字編輯器開啟
config.ovpn檔案,並在檔案結尾新增以下這行:disable-dco。OpenVPN 2.6 引入的資料通道卸載 (DCO) 功能與某些 Windows 系統不相容,例如特定版本的 Windows 10 和 11。此設定會停用 DCO,以解決這些裝置上潛在的連線問題。

在系統匣中的 OpenVPN 圖示上按一下滑鼠右鍵,然後按一下連線以建立 VPN 連線。

如果狀態變更為已連線並指派了 IP 位址,則表示連線成功。

Linux 用戶端
執行下列命令以安裝 OpenVPN 用戶端並建立
conf目錄。CentOS
yum install -y openvpn mkdir -p /etc/openvpn/confUbuntu
apt-get update apt-get install -y openvpn mkdir -p /etc/openvpn/conf解壓縮已下載的 SSL 用戶端憑證套件,並將檔案複製到 /etc/openvpn/conf/ 目錄。

前往 /etc/openvpn/conf/ 目錄,並執行下列命令以建立 VPN 連線。
openvpn --config /etc/openvpn/conf/config.ovpn --daemon(選用)設定 OpenVPN 處理程序在開機時自動啟動。
編輯 /etc/rc.local 檔案並新增下列幾行。
#Open the /etc/rc.local file in edit mode vi /etc/rc.local #Press the i key to enter edit mode, then add the following commands to the /etc/rc.local file cd /etc/openvpn/conf/ openvpn --config /etc/openvpn/conf/config.ovpn --daemon #Press the Esc key to exit edit mode, then enter the following command to save and exit the file :wq授予 /etc/rc.local 檔案執行權限。
chmod +x /etc/rc.local
Android 用戶端
下載並安裝 Android 版 OpenVPN 用戶端。
此範例使用已安裝 OpenVPN 用戶端 v3.0.5 的 Android 9.0 裝置。
將已下載的 SSL 用戶端憑證套件傳輸至 Android 裝置並進行解壓縮。
說明如果您的 Android 裝置沒有解壓縮工具,您可以在電腦上解壓縮憑證套件,然後將解壓縮後的檔案傳輸至您的 Android 裝置。
請確保所有解壓縮後的檔案都在同一個資料夾中,如下圖所示。

開啟 OpenVPN 用戶端,匯入
config.ovpn檔案,並新增 VPN 連線。
步驟
說明
①
選擇 OVPN Profile 連線方式。
②
在儲存目錄中找到
config.ovpn檔案。③
輕觸 IMPORT 以匯入
config.ovpn檔案。④
用戶端會從
config.ovpn檔案匯入設定,並顯示 VPN Gateway 的公用 IP 位址。輕觸 ADD 以新增 VPN 連線。輕觸切換按鈕以啟用 VPN 連線。

macOS 用戶端 (GUI)
開啟 Tunnelblick Releases 頁面,找到最新的穩定版本以下載 dmg 檔案。本文以
Tunnelblick 4.0.1 (build 5971)版本為例,並從 Assets 面板下載.dmg格式的檔案。
安裝 Tunnelblick 軟體。

步驟
說明
①
按兩下已下載的 Tunnelblick 安裝套件。
②
按兩下 Tunnelblick 圖示。
③
選取 I have configuration files。
④
按一下 OK。
解壓縮已下載的 SSL 用戶端憑證套件。然後,將解壓縮後的
config.ovpn檔案拖曳至 Configurations 面板。
步驟
說明
①
在 Launchpad 中,按一下 Tunnelblick 圖示以開啟 Tunnelblick。
②
將解壓縮後的
config.ovpn檔案拖曳至 Configurations 面板。③
選取 Only Me。
④
按一下 Connect。
macOS 用戶端 (CLI)
開啟 Terminal 視窗。如果您的用戶端未安裝 Homebrew,請執行下列命令進行安裝。
說明Homebrew 安裝指令碼包含 sudo 命令,並會提示您輸入管理員密碼。當出現「Press RETURN/ENTER to continue...」時,請按 Enter 鍵繼續。
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
執行下列命令以安裝 OpenVPN 用戶端。
brew install openvpn
將已下載的 SSL 用戶端憑證套件複製到設定目錄。
備份 /opt/homebrew/etc/openvpn 目錄。
cp -r /opt/homebrew/etc/openvpn /opt/homebrew/etc/openvpn_bak執行下列命令以刪除目前的 OpenVPN 設定檔案。
rm /opt/homebrew/etc/openvpn/*執行下列命令以將已下載的 SSL 用戶端憑證套件複製到設定目錄。
cp /path/to/certs.zip /opt/homebrew/etc/openvpn/說明/path/to/certs.zip是您已下載的 SSL 用戶端憑證套件的路徑。通常位於目前使用者的 Downloads 目錄中,例如/Users/example/Downloads/certs.zip。
執行下列命令以解壓縮憑證套件。
cd /opt/homebrew/etc/openvpn/ unzip /opt/homebrew/etc/openvpn/certs.zip選擇執行模式。
在前景執行
執行下列命令以啟動用戶端處理程序並建立 VPN 連線:
sudo /opt/homebrew/opt/openvpn/sbin/openvpn --config /opt/homebrew/etc/openvpn/config.ovpn此命令會在前景執行。若要中斷連線,請按 Ctrl+C 終止處理程序。
在背景執行
執行下列命令,將 VPN 用戶端作為背景服務執行,並在開機時自動啟動:
cp config.ovpn openvpn.conf sudo brew services start openvpn若要停止服務,請執行下列命令:
sudo brew services stop openvpn
步驟 3:測試連線能力
設定安全性群組規則
為確保用戶端可以存取 VPC 中的資源,請在 ECS 執行個體的安全性群組中新增傳入規則,以允許來自用戶端 CIDR 區塊 (
10.200.200.0/24) 的流量。針對連線能力測試:允許 ICMP 通訊協定,以便
ping命令能夠正常運作。針對應用程式存取:允許您的服務所需的特定連接埠,例如 TCP 22 (SSH)、TCP 3389 (RDP) 或 TCP 80/443 (Web 服務)。
Ping 測試
在用戶端裝置上,ping ECS 執行個體。成功的 ping 回應表示已建立與 ECS 執行個體的私有連線。
ping 10.0.0.1
服務連接埠測試
若要進一步驗證應用程式存取,請嘗試連線至在 ECS 執行個體上執行的服務。例如,在 ECS 執行個體上安裝並啟動 Web 服務 (如 Nginx):
# Run on the ECS instance (taking Alibaba Cloud Linux 3 as an example:) yum install -y nginx systemctl start nginx.service確認 ECS 執行個體的安全性群組允許來自用戶端 CIDR 區塊的 TCP 連接埠 80 流量。然後,在您的用戶端上開啟網頁瀏覽器,並瀏覽至
http://10.0.0.1。如果出現 Nginx 歡迎頁面,表示您的應用程式存取運作正常。

常見問題
如何使用使用者名稱和密碼驗證?
您可以啟用雙因素驗證,這會要求用戶端在建立 SSL-VPN 連線前,同時使用憑證和使用者名稱/密碼進行驗證。
用戶端在連線時需要輸入 VPN Gateway 位址嗎?
連線時不需要手動輸入 VPN Gateway 位址。從主控台下載的 config.ovpn 設定檔已包含 VPN Gateway 的公用 IP 位址。將其匯入 OpenVPN 用戶端後,即可自動識別,無需額外輸入。
我可以將 Alibaba Cloud SSL-VPN 用戶端與其他 OpenVPN 用戶端一起使用嗎?
可以,您可以同時使用它們,但必須避免設定檔衝突。如果多個 OpenVPN 用戶端共用相同的 config 目錄,憑證和 config.ovpn 檔案可能會互相覆寫或被錯誤的用戶端載入,從而導致 OpenVPN 衝突和連線失敗。
請為每個用戶端使用獨立的安裝:
將用於 Alibaba Cloud SSL-VPN 的 OpenVPN 用戶端安裝在與現有用戶端不同的路徑。例如,如果現有用戶端安裝在
C:\Program Files\OpenVPN,請將新用戶端安裝在另一個目錄中。確保每個用戶端都有自己的 config 資料夾。僅將 Alibaba Cloud SSL-VPN 憑證檔案解壓縮並複製到您用於本主題之安裝目錄的 config 資料夾中。
從相應安裝目錄中的用戶端啟動連線。請勿在同一個用戶端中放置多組設定檔。
在 Linux 或 macOS 上中斷 VPN 連線
開啟命令列終端機,執行下列命令以尋找 OpenVPN 處理程序,並記下處理程序 ID。
ps aux | grep openvpn執行下列命令以終止 OpenVPN 處理程序。
kill -9 <process ID>
透過 SSL-VPN 連線後,我還需要 Bastionhost 才能透過 SSH 登入 ECS 執行個體嗎?
在大多數情況下,不需要。只要 SSL-VPN 連線正常運作,且 ECS 執行個體的安全性群組允許來自用戶端 CIDR 區塊的 TCP 連接埠 22 流量,您就可以直接使用 SSH 用戶端透過其私有 IP 位址登入 ECS 執行個體。不需要 Bastionhost。
如果您的組織需要工作階段稽核、細粒度權限控制或營運的共用登入管理,您可以將 Bastionhost 與 SSL-VPN 搭配使用。然而,Bastionhost 並非建立 SSL-VPN 連線或透過私有 IP 位址登入 ECS 執行個體的先決條件。
連線問題疑難排解
SSL-VPN 用戶端連線後,即可自動透過私人 IP 位址與相同 VPC 中的 ECS 執行個體進行通訊。不需要額外的路由項目或其他的網路設定。因此,如果已建立連線但仍然無法存取,原因通常是 ECS 執行個體上的存取控制,而非 VPN 通道本身。
症狀 | 原因與解決方案 |
連線失敗。例如,用戶端記錄顯示 | 1. 網路問題:確認您的用戶端裝置具有穩定的網際網路連線,且您的本機網路防火牆或安全性軟體並未封鎖 OpenVPN 用戶端存取 VPN Gateway 的公用 IP 位址和連接埠(預設為 TCP/1194)。 2. 憑證問題:驗證匯入的 |
連線成功,但無法 | 1. 安全性群組規則(請優先檢查此項):如果 ping 失敗,請先登入 ECS 主控台,檢查執行個體的安全性群組是否具有傳入規則,允許來自 SSL 伺服器上設定的用戶端 CIDR 區塊(例如 2. ECS 內部防火牆:檢查 ECS 執行個體的作業系統防火牆(例如 firewalld 或 iptables)是否封鎖了 ICMP 要求。 |
連線成功且 | 1. 安全性群組規則:檢查 ECS 執行個體的安全性群組,並確保其允許來自您的用戶端 CIDR 區塊的相關服務連接埠(例如 TCP 80 或 TCP 22)流量。 2. 服務聆聽狀態:登入 ECS 執行個體,並確認連接埠處於聆聽狀態(例如,在 Linux 系統上使用 3. ECS 內部防火牆:登入 ECS 執行個體,並確認執行個體的作業系統防火牆允許所需連接埠的流量。 |
連線至 VPN 後,無法存取您的本機網路(例如印表機)或網際網路。 | 路由衝突:SSL 伺服器中設定的用戶端 CIDR 區塊可能與您本機網路的 CIDR 區塊衝突。請返回步驟 1,將 SSL 伺服器中的用戶端 CIDR 區塊修改為較不常用的範圍(例如 |
ECS 執行個體無法對用戶端發起 | 這是預期行為。基於安全性考量,用戶端作業系統防火牆通常會封鎖來自外部來源(包括 VPN 端點)未經要求的連入連線。這不會影響用戶端存取雲端資源的能力。如果雲端資源需要存取用戶端,您必須設定用戶端的防火牆以允許 ICMP 流量。 |
如需更多問題,請參閱 SSL-VPN 連線常見問題。