可通過SSL-VPN打通用戶端(Windows、Linux、Android、macOS)與雲上VPC內網,實現互連網環境下的安全訪問。
針對iOS/iPadOS系統用戶端,請查看iPhone/iPad通過SSL-VPN串連VPC。
情境樣本
目標:建立SSL-VPN網關,使本地用戶端能夠通過內網IP安全訪問VPC內的ECS執行個體。
資源規劃如下:
VPC
名稱:
vpc-demo地區:華東1(杭州)
網段:10.0.0.0/16
交換器:建立2個,名稱分別為
vsw1和vsw2vsw1位於可用性區域J,網段:10.0.0.0/24vsw2位於可用性區域K,網段:10.0.1.0/24
ECS:地址為10.0.0.1,作業系統為
Alibaba Cloud Linux 3.2104 LTS 64位
用戶端所在的本地網段:172.16.0.0/16
步驟一:配置雲上VPN資源
在將用戶端串連到VPC之前,需先在阿里雲控制台建立並配置 VPN 閘道、SSL 服務端、SSL用戶端。
1. 建立VPN網關
VPN 閘道是 SSL-VPN 串連在雲上的出入口。
前往控制台VPN網關頁面,單擊建立VPN網關。
在VPN網關頁面進行配置:
配置項
截圖
執行個體名稱:
vpn-demo地區:華東1(杭州)。
專用網路:選擇用戶端要訪問的VPC。
虛擬交換器1/虛擬交換器2: 分別選擇
vsw1和vsw2。VPN網關底層採用雙機熱備架構,在VPC支援多個可用性區域的地區,為保障跨可用性區域高可用性,VPC需包含至少2個位於不同可用性區域的交換器。如果不滿足條件,請先建立交換器。
頻寬峰值:10M
IPsec-VPN:關閉(開啟下方的SSL-VPN後才會有關閉選項)。
SSL-VPN:開啟。
SSL串連數:5。
服務關聯角色:如果未建立,請單擊建立服務關聯角色。
關於建立VPN網關的詳細參數描述,請參見建立和管理VPN網關執行個體。

購買支付完畢後,可在VPN網關頁面看到已建立的VPN網關。
剛建立的VPN網關狀態為準備中,約1~5分鐘狀態會變為正常,此時即可開始使用。

2. 建立SSL服務端
SSL服務端用於定義用戶端可訪問的雲上網路範圍,以及配置用戶端IP位址集區。
前往SSL服務端頁面,在頂部功能表列切換至華東1(杭州)地區後,單擊建立SSL服務端。

在建立SSL服務端面板,根據以下資訊配置SSL服務端:
名稱:輸入
server-demoVPN網關:選擇剛剛建立的VPN網關。
本端網段:輸入VPC的網段
10.0.0.0/16。此網段是您希望用戶端訪問的雲上網路範圍,通常是您的VPC網段。
用戶端網段:指 VPN 閘道用於向用戶端虛擬網卡分配 IP 的位址集區,不能與本端網段或用戶端已經使用的網段(例如用戶端所在的本地網段)重疊,否則會導致路由衝突。建議使用不易衝突的 RFC 1918 私人網段(例如
10.200.200.0/24)。
其他選項保持預設。關於建立SSL服務端的詳細參數描述,請參見建立和管理SSL服務端。

3. 建立SSL用戶端並下載認證
SSL用戶端負責用戶端認證管理。每個需要串連的用戶端都需要匯入認證,用於身分識別驗證和加密。
在左側導覽列,選擇。頂部功能表列,確認地區為華東1(杭州);在SSL客戶端頁面,單擊建立SSL客戶端。

在建立SSL客戶端面板,名稱輸入
client-demo,SSL服務端選擇server-demo,然後單擊確定。
在SSL客戶端頁面,找到已建立的SSL用戶端,在其操作列單擊下載認證。

步驟二:配置用戶端
請根據用戶端的作業系統,查看對應的配置方法。
Windows用戶端
請下載適配您 Windows 系統版本的 OpenVPN 用戶端端,並根據介面提示完成安裝:
Windows 64位系統(Intel/AMD):OpenVPN用戶端(Windows 64位)。
Windows ARM64系統:OpenVPN用戶端(Windows ARM64)。
如果下載連結無法開啟,請聯絡客戶經理或阿里雲工程師。
將下載的 SSL 用戶端憑證解壓,並將解壓後的所有檔案複製到 OpenVPN 的配置目錄中。
預設路徑:
C:\Program Files\OpenVPN\config注意:如果您修改過安裝路徑,請複製到您實際安裝目錄下的 config 檔案夾內。

用記事本開啟
config.ovpn檔案,末尾添加1行:disable-dco。OpenVPN 2.6版本引入的OpenVPN 的資料通道卸載 (DCO) 功能在某些Windows系統(如Windows 10/11特定版本)上存在相容性問題,此配置是為了關閉DCO,以解決部分裝置無法串連的問題。

按右鍵案頭右下角托盤處的OpenVPN表徵圖,然後單擊Connect建立VPN串連。

如果顯示State為Connected,且分配了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檔案,並在檔案中添加命令。
#以編輯模式開啟/etc/rc.local檔案 vi /etc/rc.local #按下i鍵,進入檔案編輯模式,然後在/etc/rc.local檔案中補充以下命令 cd /etc/openvpn/conf/ openvpn --config /etc/openvpn/conf/config.ovpn --daemon #按下Esc鍵,退出檔案編輯模式,然後輸入以下命令儲存退出檔案 :wq為/etc/rc.local檔案添加執行許可權。
chmod +x /etc/rc.local
Android用戶端
下載並安裝OpenVPN用戶端(Android版本)。如果下載連結無法開啟,請聯絡客戶經理或阿里雲工程師。
本文使用Android 9.0版本的用戶端,並安裝了3.0.5版本的OpenVPN用戶端。
將已下載的SSL用戶端認證傳輸至Android裝置,並解壓認證。
說明如果您的Android裝置無解壓軟體,您可以在電腦端解壓認證然後將解壓後的檔案傳輸至Android用戶端。
請確保解壓後的檔案在同一個檔案夾下,如下圖所示。

開啟OpenVPN用戶端,匯入
config.ovpn檔案,添加VPN串連。
序號
說明
①
選擇OVPN Profile串連方式。
②
在儲存目錄中找到
config.ovpn檔案。③
單擊IMPORT,匯入
config.ovpn檔案。④
系統自動讀取
config.ovpn檔案中的資訊,顯示待串連的VPN網關的公網IP地址。單擊ADD,添加VPN串連。單擊滑動按鈕,開啟VPN串連。

Mac用戶端(圖形介面,M系列晶片推薦)
開啟Tunnelblick Releases頁面,找到
Tunnelblick 4.0.1 (build 5971)版本,在Assets面板中下載.dmg格式的檔案。如果下載連結無法開啟,請聯絡客戶經理或阿里雲工程師。
安裝Tunnelblick軟體。

序號
說明
①
雙擊已下載的Tunnelblick軟體安裝包。
②
雙擊Tunnelblick表徵圖。
③
選擇我有設定檔。
④
單擊確定。
先將已下載的SSL用戶端認證解壓,再將已解壓的
config.ovpn檔案拖動至配置面板下,建立VPN串連。

序號 | 說明 |
① | 在啟動台中單擊Tunnelblick表徵圖,開啟Tunnelblick軟體。 |
② | 將已解壓的檔案 |
③ | 選擇只是我。 |
④ | 單擊串連。 |
Mac用戶端(命令列)
開啟Terminal命令列視窗,如果您的用戶端尚未安裝homebrew,執行以下命令安裝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用戶端步驟中已下載的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
步驟三:測試連通性
配置安全性群組規則
為確保用戶端能訪問 VPC 內的資源,請在ECS執行個體關聯的安全性群組中添加入方向規則,允許存取來自用戶端網段(
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):
# 在ECS上執行(以Alibaba Cloud Linux 3 為例:) yum install -y nginx systemctl start nginx.service確認ECS關聯的安全性群組已允許存取來自用戶端網段的 TCP 80 連接埠的流量後,在用戶端瀏覽器中訪問
http://10.0.0.1。如果能看到 Nginx 的歡迎頁面,則證明業務訪問正常。

常見問題
如何使用使用者名稱密碼認證方式?
可開啟雙因子認證,即用戶端只有通過認證認證和使用者名稱密碼雙重認證後,才能建立SSL-VPN串連。
Linux或Mac用戶端,如何斷開VPN串連?
開啟命令列,執行如下命令搜尋OpenVPN進程,並記錄進程號。
ps aux | grep openvpn執行以下命令關閉OpenVPN進程。
kill -9 <進程號>
無法成功連通?
問題現象 | 可能原因與排查步驟 |
無法串連,例如用戶端日誌提示 | 1. 網路問題:確認您的用戶端裝置可以正常訪問互連網,並且本網防火牆或安全軟體沒有阻止 OpenVPN 用戶端端訪問 VPN 閘道的公網 IP 和連接埠(預設為TCP/1194)。 2. 認證問題:確認您匯入的 |
串連成功,但 | 1. 安全性群組規則:這是最常見的原因。請登入 ECS 控制台,檢查對應執行個體的安全性群組規則,確保已添加入方向規則,源地址為您的用戶端網段(例如 2. ECS 內部防火牆:檢查 ECS 作業系統內部的防火牆(如 firewalld, iptables)是否攔截了 ICMP 請求。 |
串連成功, | 1. 安全性群組規則:檢查 ECS 安全性群組,確保已為您的用戶端網段允許存取了相應的服務連接埠(如 TCP 80, TCP 22)。 2. 服務監聽狀態:登入 ECS,確認連接埠正常監聽(例如Linux系統使用 3. ECS自身防火牆放通:登入 ECS,確認ECS作業系統自身的防火牆放通了連接埠 |
串連 VPN 後,無法訪問本網(如印表機)或無法上網 | 路由衝突:可能是您在 SSL 服務端配置的用戶端網段與您當前所在的本網網段衝突。請返回步驟一,修改 SSL 服務端的用戶端網段為一個更冷門的網段(如 |
ECS 無法主動 | 正常現象。出於安全考慮,用戶端的作業系統防火牆預設會阻止來自外部(包括 VPN 對端)的主動串連請求。這是預期行為,不影響用戶端訪問雲上資源。如有雲上資源訪問用戶端的請求,請在用戶端防火牆放通ICMP協議。 |
更多問題請查看SSL-VPN串連常見問題。