PPTP 全称为 Point to Point Tunneling Protocol — 点到点隧道协议,是VPN协议中的一种。虚拟专用网(VPN)被定义为通过一个公用网络(通常是因特网)建立一个临时的、安全的连接,是一条穿过混乱的公用网络的安全、稳定的隧道。虚拟专用网是对企业内部网的扩展。虚拟专用网可以帮助远程用户、公司分支机构、商业伙伴及供应商同公司的内部网建立可信的安全连接,并保证数据的安全传输。虚拟专用网可用于不断增长的移动用户的全球因特网接入,以实现安全连接;可用于实现企业网站之间安全通信的虚拟专用线路,用于经济有效地连接到商业伙伴和用户的安全外联网虚拟专用网。

--->>搭建pptp首先你需要购买一个外网的vps(阿里云香港节点,国外节点都可以,不过阿里云有点小贵),推荐购买国外的廉价vps来搭建。

PPTP的搭建:

1.CentOS 下配置PPTP VPN,安装PPTP需要ppp和iptables这两个软件支持。

  (1)用cat命令检查是否开启ppp,一般服务器都是开启的,除了特殊的VPS主机之外。  

      [root@marslv download]# cat /dev/ppp
      cat: /dev/ppp: No such device or address

      出现上面的结果就说明是开启的。

  (2)安装iptables:

    [root@marslv download]# yum -y install ppp iptables

2.接下来安装pptpd,yum没有提供安装包,自行下载安装:

  centos6.X系列:

  32位--64位下载地址:

  #wget http://dl.fedoraproject.org/pub/epel/6/i386/pptpd-1.4.0-3.el6.i686.rpm

  #wget http://dl.fedoraproject.org/pub/epel/6/x86_64/pptpd-1.4.0-3.el6.x86_64.rpm

  安装时如果出现依赖包未安装就安装自行安装(如出现perl安装包未安装):

      [root@marslv download]# yum install perl

  然后:[root@marslv download]# rpm -ivh pptpd-1.4.0-3.el6.i686.rpm

  

  配置pptp(这里默认可以不修改,只有在配置复杂的NAT时才需要配置)
  编辑/etc/pptpd.conf文件:
  #vim /etc/pptpd.conf
  localip 192.168.1.150 ----->公网服务器ip地址
  remoteip 192.168.196.9-238  ------>分配给客户端的ip地址范围
 
  
  修改/etc/ppp/options.pptpd文件,为VPN添加Google DNS:(不添加,使用vpn时会出现DNS无法解析)
  #vim /etc/ppp/options.pptpd
  去掉ms-dns前面的#,并使用Google的DNS服务器,修改成如下字段:
  ms-dns 8.8.8.8  ---->google 免费域名服务器  first
  ms-dns 8.8.4.4  ---->google 免费域名服务器  second(备用DNS)
  

  修改内核设置,使其支持转发
  #vim /etc/sysctl.conf
  将“net.ipv4.ip_forward”改为1,变成下面的形式:
  net.ipv4.ip_forward=1
  保存退出,并执行下面的命令来生效它:
  #sysctl -p
 

3.设置vpn用户:[root@marslv ppp]#echo -e "user pptpd password *" >> /etc/ppp/chap-secrets

  其中user设置你的用户名,password设置你的密码,*设置ip地址,一般情况下设置成*(任意ip地址)

  也可以vim /etc/ppp/chap-secrets 自己按照规定的格式添加。

  添加之后重启pptpd服务生效:service pptpd start

4.开启防火墙

  #iptables -A INPUT -p tcp --dport 1723 -j ACCEPT
  #iptables -A INPUT -p tcp --dport 47 -j ACCEPT
  #iptables -A INPUT -p gre -j ACCEPT
  #iptables -A POSTROUTING -t nat -o eth0 -j MASQUERADE(配置转发规则,如果要设置比较复杂的规则自己百度)
  #iptables -A INPUT -p UDP --dport 53 -j ACCEPT

  #service iptables save 保存规则

  #/etc/init.d/iptables restart 重启iptables

5.设置开机自启动

  [root@marslv sysconfig]# chkconfig pptpd on

  [root@marslv sysconfig]# chkconfig iptables on

 

  

CentOS 6下的VPN搭建的更多相关文章

  1. CentOS服务器下JavaEE环境搭建指南(远程桌面+JDK+Tomcat+MySQL)

    --------------------------------------------------------------------------------1 系统设置:1.1 远程桌面设置:通过 ...

  2. CentOS 7下使用Gitolite搭建Git私服

    1. 搭建环境 CentOS7, git version 1.8.3.1 2. 安装依赖包 yum install curl-devel expat-devel gettext-devel opens ...

  3. CentOS 7下安装配置搭建jdk+tomcat+MariaDB环境

    1.JDK安装 注意:rpm与软件相关命令 相当于window下的软件助手 管理软件 步骤: 1)查看当前Linux系统是否已经安装java 输入 rpm -qa | grep java 2)卸载两个 ...

  4. CentOS 7下Keepalived + HAProxy 搭建配置详解

    第一步:准备 1. 简介 本文搭建的是利用 Keepalived 实现 HAProxy 的热备方案,即两台主机上的 HAProxy 实例同时运行,其中全总较高的实例为 MASTER,MASTER出现异 ...

  5. CentOS 7下简答搭建DNS服务器

    一.DNS相关介绍 DNS(Domain Name System)域名系统协议,作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用挨个记住IP地址.通过主机名,最终得到 ...

  6. CentOS 6、7下pptp vpn一键安装脚本

    之前有折腾过<CentOS 6.7下IPSEC/L2TP VPN一键安装脚本>,不稳定.不支持IOS,因此换成pptp,并已经添加到<lnmp一键安装包>.这个脚本可以单独使用 ...

  7. CentOS系统下搭建tomcat服务器

    下载相应的linux版jdk和tomcat,本文讲解jdk版本jdk-7u79-linux-x64.tar.gz,tomcat版本apache-tomcat-7.0.69.tar.gz [配置jdk] ...

  8. Tsung CentOS 操作系统下搭建tsung性能测试环境_Part 2

    CentOS 操作系统下搭建tsung性能测试环境_Part 2 by:授客 QQ:1033553122 --------------------接CentOS 操作系统下搭建tsung性能测试环境_ ...

  9. Tsung CentOS 操作系统下搭建tsung性能测试环境_Part 1

    CentOS 操作系统下搭建tsung性能测试环境_Part 1 by:授客 QQ:1033553122 步骤1.下载软件安装包 CentOS-6.0-x86_64-bin-DVD1.iso jdk- ...

随机推荐

  1. css animation 动画的制作

    上效果 效果描述:原来这些图片都绝对定位在最右边,并有一个css3 3D的旋转初始效果.随着动画的开始,依次向左移动,并旋转到0度.(主要用于引导页步骤的描述) 上代码: html布局 <div ...

  2. Symfony没有安装依赖_PHP Fatal error: require(): Failed opening required

    $ php bin/console server:run PHP Warning: require(D:\home\workspace\pd\app/../vendor/autoload.php): ...

  3. 如何使用Git上传代码到GitHub

    1.在Github上面创建Github仓库: 2.下载Github Shell到本地:https://desktop.github.com/ 3.打开Github Shell,输入以下命令生成秘钥来验 ...

  4. jQuery中的ajax使用详解

    $.ajax({   type : "get",   url : "http://www.w3school.com.cn/jquery/ajax_ajax.asp&quo ...

  5. Abstract和Virtual

    在C#的学习中,容易混淆virtual方法和abstract方法的使用,现在来讨论一下二者的区别. 它们有一个共同点:二者都是用来修饰父类的,只能作为基类使用,通过覆盖父类的定义,让子类与overri ...

  6. 窗口、easyui-window、easyui-panel、easyui-linkbutton

    //窗口 <script type="text/javascript" src="js/jquery.min.js"></script> ...

  7. .NET 简单的扩展方法使用。

    写代码时,我们经常会碰到dll中提供的方法,不够用或者不好用的情况.而且我们也不方便去更改dll本身的源码. 这时候我们可以使用.NET提供的"扩展方法"去解决这个问题. 下面我写 ...

  8. Python基础篇-day8

    本节目录1.抽象接口2.静态方法.类方法.属性方法3.类的特殊方法 3.1 __doc__ 表示类的描述信息(注释) 3.2 __module__ 和 __class__ 3.3 __init__ 构 ...

  9. 用PHP提取MYSQL二进制日志的SQL语句

    上一篇说道,在从日志提取出SQL语句的时候,碰到了一句SQL跨了N行无法提取.后来在网上搜了两句shell: sed -n '/^INSERT /,/;/p' log.sql > log_ins ...

  10. 为什么new的普通数组用delete 和 delete[]都能正确释放

    由同事推荐的一篇博客: 为何new出的对象数组必须要用delete[]删除,而普通数组delete和delete[]都一样-------_CrtMemBlockHeader 文章解释了delete 内 ...