第一步:确认内核是否支持
在这里提供两种检测方法,请注意,满足其中的任何一个都表示可以内核支持
- 检查系统内核是否支持 MPPE 补丁
modprobe ppp-compress-18 &&echo success
显示 success 说明系统支持 MPPE 补丁,如果不支持,需要先安装 kernel-devel
yum install kernel-devel
- 检查系统是否开启 TUN/TAP 支持
cat /dev/net/tun
如果这条指令显示结果为下面的文本,则表明通过:
cat: /dev/net/tun: File descriptor in bad state #系统为英文版本
cat: /dev/net/tun: 文件描述符处于错误状态 # 系统为简体中文版本
如果没有,需要 VPS 服务商开通 TUN/TAP 功能,一般 VPS 默认都开启此功能
第二步:安装所需的软件包——ppp
- yum 源安装
yum install ppp - 确认 ppp 版本,需要在 2.4.2 以上
rpm -qa|grep ppp
ppp-2.4.5-10.el6.x86_64
- 检查 PPP 是否支持 MPPE
strings ‘/usr/sbin/pppd’ |grep -i mppe | wc -l
以上命令输出为 “0” 则表示不支持,输出为 “30” 或更大的数字则支持。
第三步:安装 pptpd
- 可以从http://poptop.sourceforge.net/yum/stable/packages/中找到合适的版本,用 wget 下载
wget http://poptop.sourceforge.net/yum/stable/packages/pptpd-1.4.0-1.rhel5.x86_64.rpm rpm 安装
rpm -ivh pptpd-1.4.0-1.rhel5.x86_64.rpm配置 IP 池
在 /etc/pptpd.conf 加入以下设定,用于配置客户端可用 IP:
localip 192.168.0.1
remoteip 192.168.0.200-238,192.168.0.250
- 配置 pptpd 选项
编辑 /etc/ppp/options.pptpd,加入:
ms-dns 8.8.8.8
ms-dns 8.8.4.4
- 配置登录用户名和密码
编辑 / etc/ppp/chap-secrets,按下面的格式输入:
‘admin’ pptpd ‘admin’ *
其中,第一列为登陆用户名,第二列为 PPP 服务名,第三列为登陆密码,第四列为允许客户端访问 IP 范围。
请注意:用户名和密码必须加引号,否则链接的时一直会出现 619
- 配置内核参数,允许 IP 转发
把 /etc/sysctl.conf 中的 net.ipv4.ip_forward 修改为 1:
vim /etc/sysctl.conf |grep ip_forward
net.ipv4.ip_forward = 1
然后执行 sysctl -p 激活
- 配置 iptables 防火墙放行和转发规则
—to-source 后面跟着你的公网 IP
service iptables save
service iptables restart
service pptpd start
- 查看端口 PPTP 使用的 1723 端口侦听
netstat -ntpl - 设置为开机启动
chkconfig —level 35 iptables on
chkconfig —level 35 pptpd on
至此,VPN 就搭建完成了。
下面是一些常见的报错:
- 重启防火墙出现 “Setting chains to policy ACCEPT: security raw nat[FAILED]filter
解决办法如下:
编辑 / etc/init.d/iptables 文件,在”case “$i” in” 行下面加上下面的脚本:
security)
$IPTABLES -t filter -P INPUT $policy \
&& $IPTABLES -t filter -P OUTPUT $policy \
&& $IPTABLES -t filter -P FORWARD $policy \
|| let ret+=1
;;
编译后,如下图所示,然后保存,再重启,就不在出现 “Setting chains to policy ACCEPT: security raw nat[FAILED]filter” 错误信息了。问题就得到解决了。
https://blog.zxluck.cn/post/38.html