すべてのプロダクト
Search
ドキュメントセンター

Elastic Compute Service:Ubuntu を実行する ECS インスタンスに PPTP VPN をセットアップする

最終更新日:Feb 06, 2026

このトピックでは、Ubuntu を実行する Elastic Compute Service (ECS) インスタンスに Point-to-Point トンネリングプロトコル (PPTP) VPN をセットアップする方法について説明します。

前提条件

  • このトピックは、Ubuntu 18.04、Ubuntu 20.04、および Ubuntu 22.04 に適用されます。

  • このトピックでは、Ubuntu 18.04 を実行する ECS インスタンスを例として使用します。ECS インスタンスの作成方法の詳細については、「ウィザードを使用したインスタンスの作成」をご参照ください。

  • インスタンスのセキュリティグループにインバウンドルールを追加して、VPN クライアントのパブリック IP アドレスからのポート 1723 および Generic Routing Encapsulation (GRE) プロトコルを介したトラフィックを許可します。詳細については、「セキュリティグループルールの追加」をご参照ください。

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 は Alibaba Cloud パブリック DNS サーバーです。必要に応じて、他のパブリック DNS サーバーに変更できます。

    2. 構成を追加すると、ファイルの内容は次の図のようになります。

      image

  4. ユーザーを作成します。このユーザーは、PPTP サーバーに接続する際の本人確認に使用されます。これにより、認証されたユーザーのみがダイヤルアップまたはネットワーク接続を介してシステムにアクセスできるようになります。

    1. sudo vim /etc/ppp/chap-secrets コマンドを実行して、pptpd のユーザー名とパスワードを追加します。必要に応じて、username pptpd password IP_address 形式でアカウントを追加できます。各項目はスペースで区切り、1 行につき 1 つのユーザーアカウントのみを追加してください。

      説明

      例: test pptpd 123456 *。アスタリスク (*) はすべての IP アドレスを示します。

      test pptpd 123456 *
    2. 構成を追加すると、ファイルの内容は次の図のようになります。image

IP 転送の有効化

  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