本文共 2095 字,大约阅读时间需要 6 分钟。
最近前游戏同事搞了台的VPS,贡献出来做***使用。目前流行的服务器***软件主要有PPTP ***和Open***。Open***虽然功能较为强大,且安全性高,支持nat穿越等等,但服务器端和客户端配置都比PPTP ***麻烦许多,所以这次我们采用PPTP ***实现我们的需求,主要需求功能点如下:
1、win7、win10客户端可以使用服务器进行拨号成功。(这是最基本的需求)
2、用户账号使用mysql数据库进行统一管理。(这个也很常见的需求)
3、对用户账号的使用流量按月进行限制。(毕竟不是财主,还是要限制一下的。)
4、不允许一个账号多台电脑同时登陆。(非常现实的需求)
下面我们就在centos linux 6.8 64位系统上一一实现这些功能,本文主要实现第一个需求功能点:
win7、win10客户端可以使用服务器进行拨号,并成功***。
一、安装ppp和pptp软件包,这里采用rpm方式实现
# 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 ***配置文件
# cd /etc/ppp# cp options.pptpd options.pptpd.bak# cat options.pptpdname pptpdrefuse-paprefuse-chaprefuse-mschaprequire-mschap-v2require-mppe-128proxyarplocknobsdcompnovjnovjccompnologfdidle 2592000ms-dns 8.8.8.8ms-dns 8.8.4.4
2、chap-secrets为PPTP ***默认的用户名和密码文件
# cp chap-secrets chap-secrets.bak# cat chap-secrets# Secrets for authentication using CHAP# client server secret IP addressesptest1 pptpd ptest1 * ptest2 pptpd ptest2 * ptest3 pptpd ptest3 *
3、pptpd.conf文件为PPTP ***主配置文件
# grep -v '^#' /etc/pptpd.conf |grep -v '^$'option /etc/ppp/options.pptpdlogwtmplocalip 192.168.222.1remoteip 192.168.222.10-254
三、启动***服务,配置防火墙nat规则,并开启主机路由功能
# 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脚本且可执行,则客户端拨号成功后这个脚本会自动被执行。
# cat /etc/ppp/ip-up.local#!/bin/shCURRENT_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_MTUdone# chmod +x /etc/ppp/ip-up.local
至此,传统的通过文件名认证的pptp ***已经部署完成。后续的几个功能点将在下文中实现,尽情期待!
转载地址:http://rnevo.baihongyu.com/