全部產品
Search
文件中心

Elastic Compute Service:ECS的Ubuntu系統中如何搭建PPTP VPN

更新時間:Apr 19, 2025

本文為您介紹ECS的Ubuntu系統中如何配置VPN。

前提條件

  • 本文內容適用於Ubuntu 18.04、Ubuntu 20.04及Ubuntu 22.04。

  • 本文以在作業系統版本為Ubuntu 18.04的ECS執行個體中搭建VPN為例。關於如何建立ECS執行個體,請參見自訂購買執行個體

  • 執行個體的安全性群組入方向規則已允許存取1723連接埠和GRE協議,訪問來源為VPN用戶端的公網IP。具體操作,請參見管理安全性群組規則

配置VPN服務端

遠程登入作為PPTP服務端的ECS執行個體,按照以下操作步驟配置Ubuntu的PPTP服務端。如何遠程登入ECS執行個體,請參見串連執行個體(Linux)

配置PPTP服務

  1. 執行如下命令,安裝pptpd。

    sudo apt-get update
    sudo apt-get -y install pptpd
  2. 配置pptpd檔案。 用於為指定PPTP服務端配置分配給用戶端的IP位址範圍,確保每個串連的裝置都能獲得一個唯一的IP地址。

    1. 執行sudo vim /etc/pptpd.conf命令,添加以下配置:

      localip 192.168.0.1
      remoteip 192.168.0.234-238
      說明
      • localip是指用戶端要串連的VPN服務端的地址,一般建議填寫服務端私網IP。請根據實際情況調整localip。

      • remoteip是指分配給PPTP用戶端的IP位址範圍。請確保該範圍內沒有其他裝置正在使用這些IP地址,以避免發生IP衝突。請根據實際情況調整remoteip。

    2. 添加配置資訊後,檔案內容如下圖所示:

      image

  3. 配置DNS。

    1. 執行sudo vim /etc/ppp/pptpd-options命令,添加以下配置:

      ms-dns 223.5.5.5
      ms-dns 223.6.6.6
      說明

      IP地址223.5.5.5和223.6.6.6是阿里雲的公用DNS伺服器位址,您可以根據需要調整為其它公用DNS服務地址。

    2. 添加配置資訊後,檔案內容如下圖所示:

      image

  4. 建立使用者。建立的使用者用於串連PPTP服務端時的身分識別驗證,確保只有授權使用者可以通過撥號或網路連接訪問系統。

    1. 執行sudo vim /etc/ppp/chap-secrets命令,添加pptpd的使用者名稱和密碼。根據需要添加帳號,按照使用者名稱 pptpd 密碼 IP地址格式輸入,確保每一項之間用空格隔開,並且每行僅添加一個使用者帳號。

      說明

      樣本:test pptpd 123456 ,其中“*”表示所有IP。

      test pptpd 123456 *
    2. 添加配置資訊後,檔案內容如下圖所示:image

開啟路由轉寄

  1. 執行以下命令啟用轉寄。

    sudo echo "net.ipv4.ip_forward = 1" >>/etc/sysctl.conf
  2. 執行如下命令,載入系統參數。

    sudo sysctl -p "/etc/sysctl.conf"

    image

配置iptables防火牆轉寄規則

由於在Ubuntu中,直接執行iptables規則會在ECS重啟後丟失,因為預設情況下這些規則是臨時的。這裡使用iptables-persistent包來儲存iptables規則,並在系統啟動時自動載入。

  1. 運行以下命令安裝iptables-persistent

    sudo apt-get install iptables-persistent -y

    安裝過程中會詢問是否儲存當前的規則,選擇yes即可。

  2. 添加iptables規則。

    sudo iptables -A INPUT -p gre -j ACCEPT
    sudo iptables -A INPUT -p tcp --dport 1723 -j ACCEPT
    sudo iptables -A INPUT -p tcp --dport 47 -j ACCEPT
    sudo iptables -t nat -A POSTROUTING -s 192.168.0.234/29 -o eth0 -j SNAT --to-source XXX.XXX.XXX.XXX
    說明

    其中192.168.0.234/29指的是VPN用戶端的私人IP位址範圍,請根據實際情況修改;XXX.XXX.XXX.XXX為您的ECS執行個體公網IP。

  3. 儲存iptables規則。

    sudo netfilter-persistent save
  4. (可選)查看iptables規則。

    # 查看詳細規則
    sudo iptables -L -v
    # 查看 nat 表的規則
    sudo iptables -t nat -L -v

重啟PPTP服務

sudo /etc/init.d/pptpd restart
sudo systemctl enable pptpd.service

VPN用戶端配置

  1. 執行如下命令,安裝PPTP用戶端軟體。

    sudo apt-get update
    sudo apt-get -y install pptp-linux
    
  2. 執行如下命令,初始化一個名為test的VPN串連通道。

    sudo pptpsetup --create test --server [$IP] --username [$User] --password [$Password] --encrypt --start
    說明
    • [$IP]為PPTP服務端ECS執行個體的公網IP地址。

    • [$User]為PPTP服務端中建立的使用者的使用者名稱,如何擷取使用者名稱,請參見建立使用者

    • [$Password]為PPTP服務端中建立的使用者的密碼,如何擷取密碼,請參見建立使用者

    串連成功之後會提示如下內容:

    Using interface ppp0
    Connect: ppp0 <--> /dev/pts/1
    CHAP authentication succeeded
    MPPE 128-bit stateless compression enabled
    local  IP address 192.168.0.234
    remote IP address 192.168.0.1