Centos 6 部署PPTP服务
前言:PPTP使用一个TCP连接对隧道进行维护,使用通用路由封装(GRE)技术把数据封装成PPP数据桢通过隧道传送。可以对封装PPP桢中的负载数据进行加密或压缩。
注意:PPTP协议已经被IOS系统所弃用,所以该协议不支持再IOS系统设备连接VPN,IOS系统需要安装L2TP协议的VPN,L2TP安装配置放在下一篇,谢谢大家关注!
环境检查
# 如果你的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
软件安装
(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
配置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开机启动
日志报错及解决办法

# 通过客户端拨号连接上后,查看系统日志,发现一直打印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服务即可
windows上进行测试
在系统设置里面找到VPN设置,输入服务器IP地址,账号密码。

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

显示已连接,并且能访问外网网页和内网服务器,此时VPN搭建成功。
Centos 6 部署PPTP服务的更多相关文章
- 【转】CentOS上部署PPTP和L2TP over IPSec简要笔记
PPTP部署 安装 PPTP 需要 MPPE 和较高版本的 ppp ( > 2.4.3 ) 支持,不过 CentOS 5.0/RHEL 5 的 2.6.18 内核已经集成了 MPPE 和高版本的 ...
- CentOS上部署JAVA服务【转】
http://www.th7.cn/Program/java/201511/686437.shtml 本文将介绍如何在CentOS上运行Java Web服务,其中将包括如何搭建JAVA运行环境.如何开 ...
- centos上部署nginx服务
Nginx ("engine x") 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器.Nginx是由Igor Sysoev为俄罗斯访问量第二的R ...
- centos下部署redis服务环境的操作记录
Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API.从2010年3月15日起,Redis的开发工作由VMware主 ...
- centos下部署redis服务环境及其配置说明
Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API.从2010年3月15日起,Redis的开发工作由VMware主 ...
- Centos 7 部署FTP服务简单版
第三方教程推荐与参考: http://blog.csdn.net/somehow1002/article/details/70232791 先安装成功了,有信心了.再进一步扩展配置. 1.安装vsft ...
- centos 7 部署LDAP服务
172.21.251.111 server172.21.251.112 node {SSHA}gGQUjzyJX+Oi7ZJCURCVmqq2UmtVWHZd一.环境准备关闭 selinux fire ...
- nginx+ssl+pm2 部署 nodejs 服务
nginx+pm2 部署 nodejs 服务 最近在 centos 上部署 nodejs 服务,记下来步骤: 注意都是使用 root 用户. 下载 nvm: curl -o- https://raw. ...
- hadoop集群搭建--CentOS部署Hadoop服务
在了解了Hadoop的相关知识后,接下来就是Hadoop环境的搭建,搭建Hadoop环境是正式学习大数据的开始,接下来就开始搭建环境!我们用到环境为:VMware 12+CentOS6.4 hadoo ...
- Centos 6.x 部署pptp VPN
安装 系统检测不到PPTP的时候 使用一下方法安装PPTP 下载地址:http://poptop.sourceforge.net/yum/stable/packages rpm -ivh http: ...
随机推荐
- 建议收藏| 学python的看过来,Python 史上最全第三方库收集
发现一个宝藏网站: GitHub 上有一个 Awesome - XXX 系列的资源整理,这个系列以"全"闻名,但凡是有一定知识度的领域.语言.框架等,都有自己的 awesome-x ...
- Centos7 服务器安装jdk
给自己留个步骤 有些centos系统会自带openjdk,我们需要先卸载 首先输入java -version,验证是否有安装jdk 如果有,接着输入rpm -qa | grep java 来显示jd ...
- 树莓派启动后自动发送本地IP 到指定邮箱
在 /etc/init.d 目录下建立 GetLocalip.py 文件 #coding: utf-8 import smtplib from email.mime.text import MIM ...
- Floyd算法求最短路径
floyd算法用于求图中各个点到其它点的最短路径,无论其中经过多少个中间点.该算法的核心理念是基于动态规划, 不断更新最短距离,遍历所有的点. 知识基础:图的邻接矩阵表示: 如图是一个简单图,从A开始 ...
- OSIDP-I/O管理和磁盘调度-11
I/O设备 I/O设备分类:人可读.机器可读和远程通信三类. I/O设备之间的差别: 1.数据传送速率 2.应用领域 3.控制的复杂性 4.传送单位 5.数据表示形式 6.错误条件 I/O功能的组织 ...
- MySQL数据库封锁机制和事务隔离级别
参考: 数据库技术:MySql学习笔记之事务隔离级别详解 详解MySQL 数据库隔离级别与MVCC MySQL 事务&&锁机制&&MVCC 数据库系统原理 - MySQ ...
- C语言程序设计基础 实验3 函数
C语言程序设计基础 实验3 函数 一.实验目的 1. 理解函数的本质:模块化,实现代码复用 2. 掌握函数定义.声明.调用的语法 3. 理解并掌握函数的形参.实参,以及函数调用和返回的过程 4. ...
- 6.Vue路由
一.路由的基本概念与原理 路由是一个广义与抽象的概念,路由的本质就是对应关系 在开发中,路由分为: (1) 后端路由 (2) 前端路由 1.1 路由 1. 后端路由(根据不同的URL地址分发不同的资源 ...
- 2020/03/24 HTML基础复习笔记
2020-03-24 15:49:30 下午好! 这是我开通博客的第二天也是在钉钉上网课的又一天,为了应对考试现在复习到了HTML基础知识,本打算用VS敲想了想还是用了XMind(真的好用!!!)文件 ...
- pip install keras==2.0.3 -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install keras==2.0.3 -i https://pypi.tuna.tsinghua.edu.cn/simple