本文为您介绍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服务
执行如下命令,安装pptpd。
sudo apt-get update sudo apt-get -y install pptpd
配置pptpd文件。 用于为指定PPTP服务端配置分配给客户端的IP地址范围,确保每个连接的设备都能获得一个唯一的IP地址。
执行
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。
添加配置信息后,文件内容如下图所示:
配置DNS。
执行
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服务地址。
添加配置信息后,文件内容如下图所示:
创建用户。创建的用户用于连接PPTP服务端时的身份验证,确保只有授权用户可以通过拨号或网络连接访问系统。
执行
sudo vim /etc/ppp/chap-secrets
命令,添加pptpd的用户名和密码。根据需要添加账号,按照用户名 pptpd 密码 IP地址
格式输入,确保每一项之间用空格隔开,并且每行仅添加一个用户账号。说明示例:test pptpd 123456 ,其中“*”表示所有IP。
test pptpd 123456 *
添加配置信息后,文件内容如下图所示:
开启路由转发
执行以下命令启用转发。
sudo echo "net.ipv4.ip_forward = 1" >>/etc/sysctl.conf
执行如下命令,加载系统参数。
sudo sysctl -p "/etc/sysctl.conf"
配置防火墙转发规则
执行
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
重启PPTP服务并设置开机启动。
sudo /etc/init.d/pptpd restart sudo systemctl enable pptpd.service
VPN客户端配置
执行如下命令,安装PPTP客户端软件。
sudo apt-get update sudo apt-get -y install pptp-linux
执行如下命令,初始化一个名为test的VPN连接通道。
sudo pptpsetup --create test --server [$IP] --username [$User] --password [$Password] --encrypt --start
连接成功之后会提示如下内容:
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