全部產品
Search
文件中心

VPN Gateway:PC/Android通過SSL-VPN串連VPC

更新時間:Sep 02, 2026

可通過SSL-VPN打通用戶端(Windows、Linux、Android、macOS)與雲上VPC內網,實現互連網環境下的安全訪問。

針對iOS/iPadOS系統用戶端,請查看iPhone/iPad通過SSL-VPN串連VPC。

適用情境

如果您有以下需求,可以使用SSL-VPN:

  • 本地無固定公網IP:SSL-VPN採用用戶端主動撥號的方式建立串連,不要求本網具備固定公網IP。家庭寬頻、隨處工作、動態IP的辦公室等動態IP環境均可使用,只要用戶端裝置能夠訪問互連網即可發起串連。若本地已有固定公網IP的網關裝置,也可選擇IPsec-VPN建立網站到網站的串連。

  • 純私網訪問ECS:VPC內的ECS執行個體無需綁定公網IP。用戶端通過SSL-VPN撥號成功後,即可直接使用ECS的私網地址訪問同一VPC內的資源。

  • 安全存取控制:可在ECS執行個體關聯的安全性群組中僅允許存取SSL-VPN客戶端網段的流量,從而禁止公網直連,僅允許通過SSL-VPN登入後訪問,減少高危連接埠(如SSH 22、RDP 3389)暴露在公網的風險。

情境樣本

目標:建立SSL-VPN網關,使本地用戶端能夠通過內網IP安全訪問VPC內的ECS執行個體。

資源規劃如下:

  • VPC

    • 名稱:vpc-demo

    • 地區:華東1(杭州)

    • 網段:10.0.0.0/16

    • 交換器:建立2個,名稱分別為vsw1和vsw2

      • vsw1位於可用性區域J,網段:10.0.0.0/24

      • vsw2位於可用性區域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 串連在雲上的出入口。

  1. 前往控制台VPN網關頁面,單擊建立VPN網關。

  2. 在VPN網關頁面進行配置:

    • 執行個體名稱:vpn-demo

    • 地區:华东1(杭州)。

    • 專用網路:選擇用戶端要訪問的VPC。

    • 虛擬交換器1/虛擬交換器2: 分別選擇vsw1和vsw2。

      VPN網關底層採用雙機熱備架構,在VPC支援多個可用性區域的地區,為保障跨可用性區域高可用性,VPC需包含至少2個位於不同可用性區域的交換器。如果不滿足條件,請先建立交換器。
    • 頻寬峰值:10M

    • IPsec-VPN:關閉(開啟下方的SSL-VPN後才會有關閉選項)。

    • SSL-VPN:開啟。

    • SSL串連數:5。

    • 服務關聯角色:如果未建立,請單擊建立服務關聯角色。

    關於建立VPN網關的詳細參數描述,請參見建立和管理VPN網關執行個體。
  3. 購買支付完畢後,可在VPN網關頁面看到已建立的VPN網關。

    剛建立的VPN網關狀態為準備中,約1~5分鐘狀態會變為正常,此時即可開始使用。

2. 建立SSL服務端

SSL服務端用於定義用戶端可訪問的雲上網路範圍,以及配置用戶端IP位址集區。

  1. 前往SSL服務端頁面,在頂部功能表列切換至華東1(杭州)地區後,單擊建立SSL服務端。

  2. 在建立SSL服務端面板,根據以下資訊配置SSL服務端:

    • 名稱:輸入server-demo

    • VPN網關:選擇剛剛建立的VPN網關。

    • 本端網段:輸入VPC的網段10.0.0.0/16。

      此網段是您希望用戶端訪問的雲上網路範圍,通常是您的VPC網段。

    • 客戶端網段:指 VPN 閘道用於向用戶端虛擬網卡分配 IP 的位址集區,不能與本端網段或用戶端已經使用的網段(例如用戶端所在的本地網段)重疊,否則會導致路由衝突。建議從 RFC 1918 定義的私人位址範圍(10.0.0.0/8、172.16.0.0/12、192.168.0.0/16)中選擇一個與現有網路不衝突的子網(例如10.200.200.0/24)分配給用戶端。

    其他選項保持預設。關於建立SSL服務端的詳細參數描述,請參見建立和管理SSL服務端。

3. 建立SSL用戶端並下載認證

SSL用戶端負責用戶端認證管理。每個需要串連的用戶端都需要匯入認證,用於身分識別驗證和加密。

  1. 在左側導覽列,選擇網間互聯-VPN-SSL客戶端。頂部功能表列,確認地區為華東1(杭州);在SSL客戶端頁面,單擊建立SSL客戶端。

  2. 在建立SSL客戶端面板,名稱輸入client-demo,SSL服務端選擇server-demo,然後單擊確定。

  3. 在SSL客戶端頁面,找到已建立的SSL用戶端,在其操作列單擊下載認證。

步驟二:配置用戶端

請根據用戶端的作業系統,查看對應的配置方法。

Windows用戶端

  1. 請下載適配您 Windows 系統版本的 OpenVPN 用戶端端,並根據介面提示完成安裝:

  2. 將下載的 SSL 用戶端憑證解壓,並將解壓後的所有檔案複製到 OpenVPN 的配置目錄中。

    • 預設路徑:C:\Program Files\OpenVPN\config

    • 注意:如果您修改過安裝路徑,請複製到您實際安裝目錄下的 config 檔案夾內。

    image

  3. 用記事本開啟config.ovpn檔案,末尾添加1行:disable-dco。

    OpenVPN 2.6版本引入的OpenVPN 的資料通道卸載 (DCO) 功能在某些Windows系統(如Windows 10/11特定版本)上存在相容性問題,此配置是為了關閉DCO,以解決部分裝置無法串連的問題。

    image

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

    image

  5. 如果顯示State為Connected,且分配了IP,則證明已成功建立串連。

    image

Linux用戶端

  1. 執行以下命令安裝OpenVPN用戶端,並建立conf目錄。

    CentOS
    yum install -y openvpn
    mkdir -p /etc/openvpn/conf
    Ubuntu
    apt-get update
    apt-get install -y openvpn
    mkdir -p /etc/openvpn/conf
  2. 將已下載的SSL用戶端認證解壓拷貝至/etc/openvpn/conf/目錄。

    [root@iZt4n******* conf]# ls -lh /etc/openvpn/conf/
    total 16K
    -rw-r--r-- 1 root root 1.3K Nov 26 01:07 ca.crt
    -rw-r--r-- 1 root root  218 Nov 26 01:21 config.ovpn
    -rw-r--r-- 1 root root 1.2K Nov 26 01:07 vsc-rj9s*******.crt
    -rw-r--r-- 1 root root 1.7K Nov 26 01:07 vsc-rj9s*******.key

  3. 進入/etc/openvpn/conf/目錄,執行以下命令建立VPN串連。

    openvpn --config /etc/openvpn/conf/config.ovpn --daemon
  4. (可選)使OpenVPN進程開機自動啟動

    1. 編輯/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
    2. 為/etc/rc.local檔案添加執行許可權。

      chmod +x /etc/rc.local

Android用戶端

  1. 下載並安裝OpenVPN用戶端(Android版本)。

    本文使用Android 9.0版本的用戶端,並安裝了3.0.5版本的OpenVPN用戶端。

  2. 將已下載的SSL用戶端認證傳輸至Android裝置,並解壓認證。

    說明
    • 如果您的Android裝置無解壓軟體,您可以在電腦端解壓認證然後將解壓後的檔案傳輸至Android用戶端。

    • 請確保解壓後的檔案在同一個檔案夾下,如下圖所示。

    檔案儲存位置

  3. 開啟OpenVPN用戶端,匯入config.ovpn檔案,添加VPN串連。

    匯入config檔案

    序號

    說明

    ①

    選擇OVPN Profile串連方式。

    ②

    在儲存目錄中找到config.ovpn檔案。

    ③

    單擊IMPORT,匯入config.ovpn檔案。

    ④

    系統自動讀取config.ovpn檔案中的資訊,顯示待串連的VPN網關的公網IP地址。單擊ADD,添加VPN串連。

  4. 單擊滑動按鈕,開啟VPN串連。

    開啟OpenVPN

Mac用戶端(圖形介面,M系列晶片推薦)

  1. 開啟Tunnelblick Releases頁面,找到最新穩定版本下載dmg檔案。本文以Tunnelblick 4.0.1 (build 5971)版本為例,在Assets面板中下載.dmg格式的檔案。

    image

  2. 安裝Tunnelblick軟體。

    image

    序號

    說明

    ①

    雙擊已下載的Tunnelblick軟體安裝包。

    ②

    雙擊Tunnelblick表徵圖。

    ③

    選擇我有設定檔。

    ④

    單擊確定。

  3. 先將已下載的SSL用戶端認證解壓,再將已解壓的config.ovpn檔案拖動至配置面板下,建立VPN串連。

    image

    序號

    說明

    ①

    在啟動台中單擊Tunnelblick表徵圖,開啟Tunnelblick軟體。

    ②

    將已解壓的檔案config.ovpn拖動至配置面板下。

    ③

    選擇只是我。

    ④

    單擊串連。

Mac用戶端(命令列)

  1. 開啟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)"

  2. 執行以下命令安裝OpenVPN用戶端。

    brew install openvpn

  3. 將已下載的SSL用戶端認證解壓拷貝至配置目錄。

    1. 備份/opt/homebrew/etc/openvpn目錄。

      cp -r  /opt/homebrew/etc/openvpn /opt/homebrew/etc/openvpn_bak
    2. 執行以下命令刪除OpenVPN當前的設定檔。

      rm /opt/homebrew/etc/openvpn/*
    3. 執行以下命令將已經下載的SSL用戶端認證拷貝到配置目錄。

      cp /path/to/certs.zip /opt/homebrew/etc/openvpn/
      說明

      /path/to/certs.zip是建立SSL用戶端步驟中已下載的SSL用戶端認證的路徑,通常在目前使用者的Downloads目錄下,例如/Users/example/Downloads/certs.zip。

  4. 執行以下命令解壓認證。

    cd /opt/homebrew/etc/openvpn/
    unzip /opt/homebrew/etc/openvpn/certs.zip
  5. 選擇運行方式。

    前台運行

    您可以執行如下命令啟動用戶端進程,建立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

步驟三:測試連通性

  1. 配置安全性群組規則

    為確保用戶端能訪問 VPC 內的資源,請在ECS執行個體關聯的安全性群組中添加入方向規則,允許存取來自客戶端網段(10.200.200.0/24)的流量。

    • 用於連通性測試:允許 ICMP 協議,以便 ping 命令可以正常工作。

    • 用於業務訪問:允許業務所需的特定連接埠,例如 TCP 22 (SSH), TCP 3389 (RDP), TCP 80/443 (Web服務) 等。

  2. Ping測試

    在用戶端裝置上,使用ping命令訪問ECS:

    ping 10.0.0.1

    如果能夠ping通,則表示用戶端已和ECS內網連通:

    C:\Users\Administrator>ping 10.0.0.1
    
    Pinging 10.0.0.1 with 32 bytes of data:
    Reply from 10.0.0.1: bytes=32 time=8ms TTL=63
    Reply from 10.0.0.1: bytes=32 time=8ms TTL=63
    Reply from 10.0.0.1: bytes=32 time=8ms TTL=63
    Reply from 10.0.0.1: bytes=32 time=8ms TTL=63
    
    Ping statistics for 10.0.0.1:
        Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
    Approximate round trip times in milli-seconds:
        Minimum = 8ms, Maximum = 8ms, Average = 8ms

  3. 服務連接埠測試

    為進一步驗證業務訪問,可嘗試訪問 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 的歡迎頁面,則證明業務訪問正常。

    image

常見問題

如何使用使用者名稱密碼認證方式?

可開啟雙因子認證,即用戶端只有通過認證認證和使用者名稱密碼雙重認證後,才能建立SSL-VPN串連。

用戶端串連時需要輸入VPN網關地址嗎?

串連時無需手動輸入 VPN 閘道地址。從控制台下載的config.ovpn設定檔中已包含 VPN 閘道的公網 IP 位址,匯入 OpenVPN 用戶端端後可自動識別,無需額外填寫。

本地已安裝其他OpenVPN用戶端,可以同時使用嗎?

可以同時使用,但需避免設定檔衝突。多個OpenVPN用戶端如果共用同一個config目錄,匯入的認證和config.ovpn可能相互覆蓋或被錯誤載入,導致OpenVPN衝突、串連異常。

建議按以下方式隔離:

  • 將阿里雲SSL-VPN使用的OpenVPN用戶端安裝到與原有用戶端不同路徑下(例如原有用戶端位於C:\Program Files\OpenVPN,則新用戶端安裝到其他目錄)。

  • 確保兩個用戶端各自的config檔案夾相互獨立,阿里雲SSL-VPN的認證檔案只解壓複製到本次安裝目錄下的config檔案夾中。

  • 串連時通過對應安裝目錄的用戶端發起,避免在同一用戶端中混放多套設定檔。

Linux或Mac用戶端,如何斷開VPN串連?

  1. 開啟命令列,執行如下命令搜尋OpenVPN進程,並記錄進程號。

    ps aux | grep openvpn
  2. 執行以下命令關閉OpenVPN進程。

    kill -9 <進程號>

使用SSL-VPN串連後,是否還需要購買Bastionhost才能SSH登入ECS?

不需要。只要SSL-VPN串連正常,且ECS關聯的安全性群組已允許存取來自客戶端網段的TCP 22連接埠,即可直接使用SSH工具通過ECS的私網IP完成SSH登入,無需額外購買Bastionhost。

如果您所在企業對營運操作有會話審計、細粒度許可權管控或多人協同登入的要求,可以在SSL-VPN的基礎上搭配Bastionhost使用,但Bastionhost不是建立SSL-VPN串連或私網登入ECS的必要條件。

無法成功連通?

SSL-VPN用戶端串連成功後,即與同一VPC內的ECS執行個體自動建立私網互連,無需額外配置路由條目或額外打通網路。因此,如果串連已建立但訪問不通,問題通常不在VPN鏈路本身,而在目標ECS側的存取控制。

問題現象

可能原因與排查步驟

無法串連,例如用戶端日誌提示 AUTH_FAILED 或 TLS Handshake failed

1. 網路問題:確認您的用戶端裝置可以正常訪問互連網,並且本網防火牆或安全軟體沒有阻止 OpenVPN 用戶端端訪問 VPN 閘道的公網 IP 和連接埠(預設為TCP/1194)。

2. 認證問題:確認您匯入的 config.ovpn 和相關認證檔案完整且未被修改。嘗試重新從控制台下載並匯入認證。

串連成功,但 ping 不通 VPC 內的 ECS

1. 安全性群組規則(首要檢查項):Ping不通時請首先登入 ECS 控制台,檢查對應執行個體的安全性群組是否已添加入方向規則,允許存取來自SSL服務端配置的客戶端網段(例如 10.200.200.0/24)的 ICMP 協議及業務連接埠流量。注意源地址必須填寫SSL服務端配置的用戶端網段,而非VPN網關的公網IP,也不是用戶端所在的本地物理網段。

2. ECS 內部防火牆:檢查 ECS 作業系統內部的防火牆(如 firewalld, iptables)是否攔截了 ICMP 請求。

串連成功,ping 也通,但無法訪問 ECS 上的服務(如網站、SSH)

1. 安全性群組規則:檢查 ECS 安全性群組,確保已為您的用戶端網段允許存取了相應的服務連接埠(如 TCP 80, TCP 22)。

2. 服務監聽狀態:登入 ECS,確認連接埠正常監聽(例如Linux系統使用 netstat -nltp)

3. ECS自身防火牆放通:登入 ECS,確認ECS作業系統自身的防火牆放通了連接埠

串連 VPN 後,無法訪問本網(如印表機)或無法上網

路由衝突:可能是您在 SSL 服務端配置的客戶端網段與您當前所在的本網網段衝突。請返回步驟一,修改 SSL 服務端的用戶端網段為一個更冷門的網段(如 10.240.240.0/24),然後重新下載認證並配置用戶端。

ECS 無法主動 ping 通用戶端

正常現象。出於安全考慮,用戶端的作業系統防火牆預設會阻止來自外部(包括 VPN 對端)的主動串連請求。這是預期行為,不影響用戶端訪問雲上資源。如有雲上資源訪問用戶端的請求,請在用戶端防火牆放通ICMP協議。

更多問題請查看SSL-VPN串連常見問題。