主要配置步骤

  

  1. 安装前检查系统支持

  

  2. 安装必要包

  

  3. 修改相关配置文件

  

  4. 设置开机自动启动 pptpd, iptables

  

  5. iptables配置网络

  

  6. 阿里云ECS可能还需要几项特别设置

  

  7. 启动服务,加载相关匹配文件等

  

  环境,初装的阿里云ECS最低配机型,CentOS 7 x64 (兼及linode的CentOS 7)

  

  主要配置步骤

  

  1. 安装前检查系统支持

  

  a. 在安装之前查看系统是否支持PPTP

  

  modprobe ppp-compress-18 && echo success

  

  应该输出:success

  

  yum install kernel-devel

  

  b. 是否开启TUN/TAP

  

  cat /dev/net/tun

  

  应该输出:cat: /dev/net/tun: File descriptor in bad state

  

  c. 是否开启ppp

  

  cat /dev/ppp

  

  应该输出:cat: /dev/ppp: No such device or address

  

  如果环境不满足上面3个条件,表示很可能不支持pptp。 例外:linode的xen、kvm服务器,也是支持的pptp的。可能是linode内核是定制的,并不是外部ko模块,与原版CentOS表现有所不一致。

  

  2. 安装必要包

  

  a. 首先安装epel源

  

  yum install epel-release

  

  b. 安装pptp相关包

  

  yum install ppp pptpd net-tools iptables-services

  

  3. 修改相关配置文件

  

  a. 主配置文件 /etc/pptpd.conf

  

  结尾处增加如下两行,分别是pptp服务的虚拟网段网关,及分配给客户端的地址范围。

  

  localip 192.168.9.1

  

  remoteip 192.168.9.101-199

  

  b. pptpd配置文件/etc/ppp/options.pptpd,结尾增加两行,给虚拟网段用的dns服务,可以使用主机商提供的dns服务器地址。

  

  ms-dns 100.100.2.136

  

  ms-dns 100.100.2.138

  

  如果是linode等海外服务器,可以使用谷歌的公共dns服务器地址

  

  ms-dns 8.8.8.8

  

  ms-dns 8.8.4.4

  

  c. 设置pptpd vpn服务器用户名密码,编辑文件 /etc/ppp/chap-secrets, 每行一套帐号,该文件默认有简短说明。一行帐号行示例如下,以空格分隔的4个字段:第1、3是用户名密码,其他两字段是星号

  

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent<www.dasheng178.com /artifactId>
<version>2.0.5.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
 
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Finchley.SR1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>0.2.1.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
 
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>www.gcyL157.com spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.2<www.fengshen157.com/ /version>
<optional>true</optional>
</dependency>
</dependencies>

上述内容主要三部分:

 

parent:定义spring boot的版本

dependencyManagement:spring cloud的版本以及spring cloud alibaba的版本,由于spring cloud alibaba还未纳入spring cloud的主版本管理中,所以需要自己加入

dependencies:当前应用要使用的依赖内容。这里主要新加入了Nacos的配置客户端模块:spring-cloud-starter-alibaba-nacos-config。由于在dependencyManagement中已经引入了版本,所以这里就不用指定具体版本了。

 

  user1 * 111222333 *

  

  d. 服务器允许ip转发内核,编辑配置文件/etc/sysctl.conf,增加如下一行

  

  net.ipv4.ip_forward=1

  

  4. 设置开机自动启动 pptpd, iptables

  

  ln -s /usr/lib/systemd/system/pptpd.service /etc/systemd/system/multi-user.target.wants/

  

  ln -s /usr/lib/systemd/system/iptables.service /etc/systemd/system/multi-user.target.wants

  

  5. iptables配置网络

  

  a. iptables配置,配置虚拟网段NAT支持。如果pptp客户端不需要上网,可以忽略本步骤。

  

  iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

  

  ,注意其中的eth0是本机网卡设备名,按实际情况修改;或按虚拟网段设置NAT,如下

  

  iptables -t nat -I POSTROUTING -s 192.168.9.0/24 -o eth0 -j MASQUERADE

  

  b. 开放pptp端口1723,允许转发

  

  iptables -I INPUT 7 -m state --state NEW -p tcp --dport 1723 -j ACCEPT

  

  iptables -P FORWARD ACCEPT

  

  c. 保存iptables规则

  

  service iptables save

  

  6. 阿里云ECS可能还需要几项特别设置

  

  a. 如果windows下连接pptp,如果遇到519错误,是因为缺少内核模块 ip_nat_pptp ,运行modprobe ip_nat_pptp 即可加载,但最好设置开机自动加载:新建文件 /etc/modules-load.d/ip_nat_pptp.conf 内容为如下一行

  

  ip_nat_pptp

  

  b. 可能还要重建ppp文件:

  

  rm /dev/ppp

  

  mknod /dev/ppp c 108 0

  

  c. 阿里云机器还要修改mtu:修改文件/etc/ppp/ip-up,在exit 0 前加入一行:

  

  ifconfig $1 mtu 1500

  

  d. 阿里云控制台里的安全区域,看上去跟防火墙或iptables类似的东西,要开启相应的端口。

  

  7. 启动服务,加载相关匹配文件等

  

  sysctl -p

  

  systemctl start pptpd

  

  或者单粗暴的reboot重启机器也行