前言:PPTP使用一个TCP连接对隧道进行维护,使用通用路由封装(GRE)技术把数据封装成PPP数据桢通过隧道传送。可以对封装PPP桢中的负载数据进行加密或压缩。

注意:PPTP协议已经被IOS系统所弃用,所以该协议不支持再IOS系统设备连接VPN,IOS系统需要安装L2TP协议的VPN,L2TP安装配置放在下一篇,谢谢大家关注!

  1. 环境检查

    # 如果你的linux内核版本 等于或高于 2.6.15 ,内核集成了MPPE,如果打印ok,则说明集成了MPPE
    modprobe ppp-compress-18 && echo ok
    # 检测是否能安装PPP,打印cat: /dev/net/tun: File descriptor in bad state则说明可安装,否则只能考虑openvpn
    cat /dev/net/tun
  2. 软件安装

    (1) 安装PPP和PPTP服务

    yum -y install ppp pptpd
    # 如果yum无法安装pptpd,可下载离线rpm包
    http://poptop.sourceforge.net/yum/stable/rhel6/x86_64/pptpd-1.4.0-1.el6.x86_64.rpm
  3. 配置pptpd

    (1) 配置IP地址,编辑配置文件/etc/pptpd.conf

    vi /etc/pptpd.conf
    # 找到下面两行
    # localip 192.168.0.234-238,192.168.0.245
    # remoteip 192.168.1.234-238,192.168.1.245
    # localip为本机的内网地址或网段
    # remoteip为客户端拨号后分配的地址,可根据实际需求修改

    (2) 配置DNS,编辑配置文件/etc/ppp/options.pptpd

    vi /etc/ppp/options.pptpd
    # 找到下面两行dns
    # ms-dns 10.0.0.2
    将dns修改为自己网关或者8.8.8.8

    (3) 添加账号密码,编辑配置文件/etc/ppp/chap-secrets

    vi /etc/ppp/chap-secrets
    # client为账号;server为服务名(/etc/ppp/options.pptpd里named字段)
    # secret为密码;IP addresses为限制哪些IP访问,*表示没有任何限制

    (4) 配置iptables转发规则(此配置适用于有公网和私网的服务器)

    iptables -t nat -A POSTROUTING -s 192.168.11.0/24 -j SNAT --to-source 101.207.125.93
    # 101.207.125.93这个IP为你网卡的地址或者公网IP,切勿照搬
    # 以上规则含义为客户端拨号上来的数据都是通过101.207.125.93这个IP出去
    # 保存规则
    service iptables save

    (5) 配置内核使其支持转发和添加模块

    vi /etc/sysctl.conf
    # 配置内核让其支持转发
    # 将 net.ipv4.ip_forward = 0 改成 net.ipv4.ip_forward = 1
    sysctl - p
    # 使配置文件生效

    (6) 添加防火墙规则(此步骤决定成败哟!!!)

    iptables --flush POSTROUTING --table nat
    iptables --flush FORWARD
    iptables -I INPUT -p tcp -m tcp --dport 1723 -j ACCEPT
    iptables -I INPUT -p gre -j ACCEPT
    iptables -t nat -A POSTROUTING -s 192.168.11.0/24 -o eth0 -j MASQUERADE
    # 上述的规则就是创建一个192.168.11.*的网段给连上服务器的vpn用户使用,通过服务器上的网卡传出去上网的封包为pptp的GRE封包通过端口1723进行传送,并且还要设定VPN的网段是由哪个网路面传送封包
    service iptables save
    service iptables restart
    # 使规则生效并重启iptables
    service start pptpd
    # 启动pptpd服务
    chkconfig pptpd on
    # 设置pptpd开机启动
  4. 日志报错及解决办法

    # 通过客户端拨号连接上后,查看系统日志,发现一直打印ppp:compressor dropped pkt的错,原因是因为pptp不兼容windows的客户端造成的。Windows客户端mtu值为1400以上,Linux pptp服务器默认mtu为1396。所以此时虽然VPN连接了,一般的ssh流量小的可以访问内网,但是windows上无法访问外网,故需要将1396的mtu值改为1400.
    # 编辑文件/etc/ppp/ip-up.local,没有则创建。
    # 写入以下脚本内容
    #!/bin/sh CURRENT_MTU="`ifconfig $1 | grep -Po '(?<=MTU:)([0-9]+)' | tail -1`"
    FIXED_MTU="`expr $CURRENT_MTU + 4`"
    for network in `ifconfig | grep -E "ppp" | awk '{print $1}'`
    do
    /sbin/ifconfig $network mtu $FIXED_MTU
    done
    exit 0
    # 脚本含义为当ppp拨号成功后,会一直去检查ppp的mtu值,此时mtu为1396.通过循环将mtu值加4改为1400,就能在windows上兼容了。
    # 然后重启pptpd服务即可
  5. windows上进行测试

    在系统设置里面找到VPN设置,输入服务器IP地址,账号密码。

    然后点保存,返回进行连接即可。

    显示已连接,并且能访问外网网页和内网服务器,此时VPN搭建成功。

Centos 6 部署PPTP服务的更多相关文章

  1. 【转】CentOS上部署PPTP和L2TP over IPSec简要笔记

    PPTP部署 安装 PPTP 需要 MPPE 和较高版本的 ppp ( > 2.4.3 ) 支持,不过 CentOS 5.0/RHEL 5 的 2.6.18 内核已经集成了 MPPE 和高版本的 ...

  2. CentOS上部署JAVA服务【转】

    http://www.th7.cn/Program/java/201511/686437.shtml 本文将介绍如何在CentOS上运行Java Web服务,其中将包括如何搭建JAVA运行环境.如何开 ...

  3. centos上部署nginx服务

    Nginx ("engine x") 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器.Nginx是由Igor Sysoev为俄罗斯访问量第二的R ...

  4. centos下部署redis服务环境的操作记录

    Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API.从2010年3月15日起,Redis的开发工作由VMware主 ...

  5. centos下部署redis服务环境及其配置说明

    Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API.从2010年3月15日起,Redis的开发工作由VMware主 ...

  6. Centos 7 部署FTP服务简单版

    第三方教程推荐与参考: http://blog.csdn.net/somehow1002/article/details/70232791 先安装成功了,有信心了.再进一步扩展配置. 1.安装vsft ...

  7. centos 7 部署LDAP服务

    172.21.251.111 server172.21.251.112 node {SSHA}gGQUjzyJX+Oi7ZJCURCVmqq2UmtVWHZd一.环境准备关闭 selinux fire ...

  8. nginx+ssl+pm2 部署 nodejs 服务

    nginx+pm2 部署 nodejs 服务 最近在 centos 上部署 nodejs 服务,记下来步骤: 注意都是使用 root 用户. 下载 nvm: curl -o- https://raw. ...

  9. hadoop集群搭建--CentOS部署Hadoop服务

    在了解了Hadoop的相关知识后,接下来就是Hadoop环境的搭建,搭建Hadoop环境是正式学习大数据的开始,接下来就开始搭建环境!我们用到环境为:VMware 12+CentOS6.4 hadoo ...

  10. Centos 6.x 部署pptp VPN

    安装 系统检测不到PPTP的时候  使用一下方法安装PPTP 下载地址:http://poptop.sourceforge.net/yum/stable/packages rpm -ivh http: ...

随机推荐

  1. Leetcode本地阅读器开发--01界面设计一

    返回项目声明及目录:Leetcode本地阅读器开发--总声明 整个界面设计如下:后续可能会不断优化和加入新功能 1.启动后界面 2.进行具体题目搜索 3.进行分类搜索 本节主要介绍程序界面的绘制: 1 ...

  2. 开发Unity3D空战类插件 战机HUD系统

    Fighter HUD System 当您使用Unity3D来开发飞行模拟或者空战类游戏时,这款Fighter HUD Sytem插件将会非常的适合用来充当您战机的HUD系统. 特点 此HUD系统的安 ...

  3. Jmeter添加Base64Img函数支持图片转换为Base64编码

    将JmeterBase64-1.0-SNAPSHOT放置到\lib\ext下即可: 直接使用即可. 制作方式: Jar包通过IntelliJ IDEA创建maven工程后,导出package:

  4. vue后台管理系统——登录/退出功能

    电商后台管理系统的功能--登录/退出功能 1. 登录业务流程 ① 在登录页面输入用户名和密码 ② 调用后台接口进行验证 ③ 通过验证之后,根据后台的响应状态跳转到项目主页 2. 登录业务的相关技术点 ...

  5. axios取消重复请求与更新token并续订上次请求

    一.问题引入 当用户发起一个请求时,判断token是否已过期,若已过期则先调refreshToken接口,拿到新的token后再继续执行之前的请求. 难点:当同时发起多个请求,token 过期会调用多 ...

  6. jenkins - Asp.net 环境搭建(Windows)

    jenkins - Asp.net 环境搭建(Windows) 安装环境 通过 Chocolatey自动安装 choco install ojdkbuild11 #或 choco install jd ...

  7. 使用SharpCompress压缩文件后把压缩的文件流传给前端

    1 SharpCompress版本 0.30.1 2 应用场景:前端传递某个标识符,如Id,查询和该Id相关联的文件,并把文件压缩,最后返回给前端.适用于压缩多个体积较小的文件,如果文件体系过大,可能 ...

  8. ESP32(WeMos D1 R32)开发资料

    1.乐鑫官网 2.ESP32踩坑 ESP32控制摇杆,定义sw的引脚时一定要设置为上拉才行. 3.ESP32入门之arduino IDE环境搭建 4.ESP32 MicroPython编程官网文档 E ...

  9. TCP 异常断开连接的过程

    Tcp连接正常断开的情况,大家都了解,也就是一端发送Fin报文开启四次挥手,然后 sock 结构销毁,但是我之前很少去追踪 Tcp 在对端宕机,进程 Crash 之后的行为逻辑.前段时间正巧遇到了这样 ...

  10. Windows10常用快捷键总结

    --Windows10常用快捷键总结 1. Window键: 打开或关闭|开始菜单 2. Win + A 打开操作中心 3. Win + D 显示桌面 4. Win + E 打开计算机文件管理器 5. ...