ECS的Ubuntu系统中如何搭建PPTP VPN

本文为您介绍ECS的Ubuntu系统中如何配置VPN。

前提条件

  • 本文内容适用于Ubuntu 18.04及其后续版本。

  • 本文以在操作系统版本为Ubuntu 18.04的ECS实例中搭建VPN为例。关于如何创建ECS实例,请参见自定义购买实例

  • 在安全组中,添加PPTP VPN所需放行的端口为TCP协议的1723端口。具体操作,请参见ECS实例内安装VPN之后如何配置安全组

配置VPN服务端

远程登录作为PPTP服务端的ECS实例,按照以下操作步骤配置CentOS的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

配置防火墙转发规则

  1. 执行sudo vim /etc/rc.local命令,添加以下内容:

    说明

    其中XXX.XXX.XXX.XXX为您的ECS实例公网IP。

    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 P0STROUTING-s 192.168.0.0/24-0 -j SNAT --to-source XXX.XXX.XXX.XXX
  2. 重启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