PPTP-VPN第一章——部署与简单使用
最近前游戏同事搞了台的VPS,贡献出来做VPN使用。目前流行的服务器VPN软件主要有PPTP VPN和Openvpn。Openvpn虽然功能较为强大,且安全性高,支持nat穿越等等,但服务器端和客户端配置都比PPTP VPN麻烦许多,所以这次我们采用PPTP VPN实现我们的需求,主要需求功能点如下:
1、win7、win10客户端可以使用服务器进行拨号成功。(这是最基本的需求)
2、用户账号使用mysql数据库进行统一管理。(这个也很常见的需求)
3、对用户账号的使用流量按月进行限制。(毕竟不是财主,还是要限制一下的。)
4、不允许一个账号多台电脑同时登陆。(非常现实的需求)
下面我们就在centos linux 6.8 64位系统上一一实现这些功能,本文主要实现第一个需求功能点:
win7、win10客户端可以使用服务器进行拨号,并成功FQ。
一、安装ppp和pptp软件包,这里采用rpm方式实现
1
2
3
|
# yum install -y perl ppp # rpm -ivh pptpd-1.3.4-2.el6.x86_64.rpm 下载地址:https://zhidao.baidu.com/share/8c07231b0a82281d4085fd2a779cd8f0.html |
二、配置文件修改
1、options.pptpd文件为PPTP VPN配置文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
# cd /etc/ppp # cp options.pptpd options.pptpd.bak # cat options.pptpd name pptpd refuse-pap refuse-chap refuse-mschap require-mschap-v2 require-mppe-128 proxyarp lock nobsdcomp novj novjccomp nologfd idle 2592000 ms-dns 8.8.8.8 ms-dns 8.8.4.4 |
2、chap-secrets为PPTP VPN默认的用户名和密码文件
1
2
3
4
5
6
7
|
# cp chap-secrets chap-secrets.bak # cat chap-secrets # Secrets for authentication using CHAP # client server secret IP addresses ptest1 pptpd ptest1 * ptest2 pptpd ptest2 * ptest3 pptpd ptest3 * |
3、pptpd.conf文件为PPTP VPN主配置文件
1
2
3
4
5
|
# grep -v '^#' /etc/pptpd.conf |grep -v '^$' option /etc/ppp/options.pptpd logwtmp localip 192.168.222.1 remoteip 192.168.222.10-254 |
三、启动VPN服务,配置防火墙nat规则,并开启主机路由功能
1
2
3
4
|
# service pptpd restart # iptables -t nat -A POSTROUTING -s 192.168.222.0/24 -j MASQUERADE # sysctl net.ipv4.ip_forward net.ipv4.ip_forward = 1 |
四、拨号测试
1、win10客户端
2、iphone6s客户端测试
五、错误处理
拨号成功之后,/var/log/message日志文件记录如下日志信息:
kernel: ppp: compressor dropped pkt
排查了一下,主要是mtu(最大传输单元)的问题,客户端为1394,服务器端为1400,通过查看/etc/ppp/if-up配置文件发现系统中只要存在/etc/ppp/ip-up.local脚本且可执行,则客户端拨号成功后这个脚本会自动被执行。
1
2
3
4
5
6
7
8
9
|
# cat /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 ifconfig $network mtu $FIXED_MTU done # chmod +x /etc/ppp/ip-up.local |
至此,传统的通过文件名认证的pptp vpn已经部署完成。后续的几个功能点将在下文中实现,尽情期待!
PPTP-VPN第一章——部署与简单使用的更多相关文章
- jQuery系列 第一章 jQuery框架简单介绍
第一章 jQuery框架简单介绍 1.1 jQuery简介 jQuery是一款优秀的javaScript库(框架),该框架凭借简洁的语法和跨平台的兼容性,极大的简化了开发人员对HTML文档,DOM,事 ...
- 2017.12.12 架构探险-第一章-从一个简单的web应用开始
参考来自:<架构探险>黄勇 著 1 使用IDEA搭建MAVEN项目 1.1 搭建java项目 (1)创建java项目 为了整个书籍的项目,我创建了一个工程,在这个工程里创建了每个章节的mo ...
- 学习笔记-[Maven实战]-第一章:Maven简介
Maven简介: Maven 可翻译为:知识的积累,也可以翻译为"专家"或"内行". Maven 是一个跨平台的项目管理工具,是Apache组织中一个很成功的开 ...
- 第一章 什么是SQL Server Integration Services (ssis) 系统。
note:我也是刚入门的菜鸟,让我们大家一块学习SSIS系统,工作中需要用到SSIS.您的浏览是我更新的最大动力,谢谢! SSIS是Microsoft SQL Server Integration ...
- 第一章 初识shiro
shiro学习教程来自开涛大神的博客:http://jinnianshilongnian.iteye.com/blog/2018936 第一章 初识shiro 简单了解shiro主要记住三张图即可. ...
- 《深入理解计算机系统》(CSAPP)读书笔记 —— 第一章 计算机系统漫游
本章通过跟踪hello程序的生命周期来开始对计算机系统进行学习.一个源程序从它被程序员创建开始,到在系统上运行,输出简单的消息,然后终止.我们将沿着这个程序的生命周期,简要地介绍一些逐步出现的关键概念 ...
- 区块链开发学习第三章:私有链上部署helloBlockchain简单合约
前面讲了部署私有链以及新增账户,现在进行到了部署合约了,此操作真是踩了无数无数无数的坑,到写文章为止确实是已经部署好了,但是还有些坑是还没有解决的! 一.Solidity编译器 开始的时候用的http ...
- Centos 6.x 部署pptp VPN
安装 系统检测不到PPTP的时候 使用一下方法安装PPTP 下载地址:http://poptop.sourceforge.net/yum/stable/packages rpm -ivh http: ...
- MongoDB的Spring-data-mongodb集成(Win10 x64) 第一章 - MongoDB安装与简单命令
这是MongoDB系列的第一章,作者将持续更新. 1.下载 https://www.mongodb.com/download-center#community 2.安装与配置 有关安装的任何困难请点击 ...
随机推荐
- jquery mobile 登陆后页面验证
调用 pagebeforechange方法 $(document).bind("pagebeforechange", function (e, data) { if (typeof ...
- java加密算法之AES小记
jce中提供了加解密的api: 1.首先应该明白AES是基于数据块的加密方式,也就是说,每次处理的数据是一块(16字节),当数据不是16字节的倍数时填充,这就是所谓的分组密码(区别于基于比特位的流密码 ...
- Hibernate使用
实现类: public class InfoDAOImpl extends BaseDao<Info> 1.List<Object[]> midlist=super.creat ...
- IntelliJ IDEA 中文乱码问题解决办法
自己最近在使用IntelliJ IDEA,发现总是出现中文乱码的问题,在网上找了很多教程,发现真是“天下文章一大抄”.还不如自己动手试着解决一下. 1.编辑器以及调试信息中文乱码问题 解决方案: 选择 ...
- 批量插入数据(基于Mybatis的实现-Oracle)
前言:做一个数据同步项目,要求:同步数据不丢失的情况下,提高插入性能. 项目DB框架:Mybatis.DataBase:Oracle. -------------------------------- ...
- 用ionic快速开发hybird App(已附源码,在下面+总结见解)
1.ionic简介 ionic 是用于敏捷开发APP的解决方案.核心思路是:利用成熟的前端开发技术,来写UI和业务逻辑.也就是说,就是一个H5网站,这个区别于react-native,native.即 ...
- 使用Git命令上传本地项目
前提,安装git,使用cmd进入项目根目录. 初始化git init 再添加文件git add .git commit -m '项目名' 上传项目到Github仓库git remote add ori ...
- 移动端自动化环境搭建-Robot Framework的安装
A.安装依赖 RF框架,robotframework本身. B.安装过程 可以通过下载 exe 程序进行安装,Robot Framework 分别提供了,win-amd64.exe 和 win32.e ...
- mongodb ubuntu下自启动
个人测试开发的时经常会采用shell 启动mongodb,当进入项目团队开发测试时,必须让mongodb可以随系统自启动. 1.编写启动命令 sudo vim /etc/rc/local 1-1 mo ...
- ubuntu14.04下安装cudnn5.1.3,opencv3.0,编译caffe及配置matlab和python接口过程记录
已有条件: ubuntu14.04+cuda7.5+anaconda2(即python2.7)+matlabR2014a 上述已经装好了,开始搭建caffe环境. 1. 装cudnn5.1.3,参照: ...