飘在云端

啊!那蓝真天,白真云!

· 随笔 · · 476次浏览

腾讯云 CentOS 7.6 部署 pptp vpn

测试结果很迷

环境,宝塔面板7.x + CentOS 7.6 x64 + Firewalld 防火墙
1.安装pptp,ppp,设置pptp服务开机启动:

yum install -y epel-release
yum install -y pptpd ppp
systemctl enable pptpd.service

2.配置腾讯云服务器本地内网IP和客户端分配IP池,vim /etc/pptpd.conf

localip 10.1.2.3
remoteip 10.10.10.10-100

说明,localip为腾讯云服务器内网分配的IP,可以用ifconfig查看本地eth0网卡的内网IP,remoteip是客户端网段。

3.vim /etc/ppp/options.pptpd 配置pptp服务端参数:
vim命令行模式下输入 :%d 清空整个文件内容,粘贴如下参数并保存

name pptpd
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
require-mppe-128
ms-dns 119.29.29.29
ms-dns 182.254.116.116
proxyarp
lock
nobsdcomp 
novj
novjccomp
nologfd
logfile /var/log/pptpd.log

4.配置账户密码,vim /etc/ppp/chap-secrets

abc123 pptpd mima123456 *

说明:格式为 用户名 + /etc/ppp/options.pptpd里面的第一行pptpd服务名,这里为pptpd + 密码 + 监听的IP地址,*代表监听所有网络接口

5.配置内核端口转发:vim /etc/sysctl.conf
修改 net.ipv4.ip_forward = 1,保存文件退出,执行sysctl -p实时生效。

6.设置MTU 最大传输单元,先输入ifconfig,看出口的网卡mtu值是多少,如我的出口网卡是eth0,默认MTU值是 1500,则:
修改 vim /etc/ppp/ip-up

exit 0那行前面,新增一行,ifconfig $1 mtu 1500

不要关闭文件,继续设置记录pptp 客户端登陆IP、登陆时间、下线时间
记录上线时间:
在 刚才新增的ifconfig $1 mtu 1500上面新增一行:

echo "$PEERNAME 分配IP: $5 登录IP: $6 登录时间: `date -d today +%F_%T`" >> /var/log/pptpd.log

保存退出,继续修改下线时间记录文件,vim /etc/ppp/ip-down
exit 0 上面新增一行,内容为

echo "$PEERNAME 下线IP: $6 下线时间: `date -d today +%F_%T`" >> /var/log/pptpd.log

保存文件

7.配置防火墙firewalld规则,这里就不用专门为了规则去卸载默认自带的firewalld,改用iptables这个骚操作了,eth0是我的外网网卡接口,请根据自身情况修改。可以ifconfig查看。

firewall-cmd --permanent --zone=public --add-masquerade
firewall-cmd --permanent --zone=public --add-port=1723/tcp
firewall-cmd --permanent --zone=public --add-port=47/tcp 
firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 0 -p gre -j ACCEPT
firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 0 -p gre -j ACCEPT
firewall-cmd --permanent --direct --add-rule ipv4 filter FORWARD 0 -i ppp+ -o eth0 -j ACCEPT
firewall-cmd --permanent --direct --add-rule ipv4 filter FORWARD 0 -i eth0 -o ppp+ -j ACCEPT
firewall-cmd --permanent --direct --passthrough ipv4 -t nat -I POSTROUTING -o eth0 -j MASQUERADE -s 10.10.10.0/24
firewall-cmd --reload

重启pptp服务使修改生效 systemctl restart pptpd

8.检查腾讯云安全组,放行如下协议和端口
1>放行pptp需要用到的GRE协议,安全组新增规则,来源0.0.0.0/0,协议端口填GRE,策略允许,保存;
2>放行tcp 47、tcp 1723 这2个端口
3>建议调试部署期间,放行ICMP (ping)协议,以便检测加速节点与自己的网络延迟速度,调试完再禁ping

9.愉快的玩耍吧,win10 v1909 x64 测试直连成功,一步到位,无需额外设置,全部都是默认设置,填个账号密码就好了。

2020-7-5 01:01:37更新,华为云和其他部分国产云,好像不支持mppe加密,原因暂时没找到,部署完之后win pptp的属性设置,只能选择 不允许加密,才能连接成功。

效果:极度舒服,超稳定,低抖动,低延迟,协议开销低,连接、挂断快
我直连腾讯云的服务器的延迟是11 -13 ms,腾讯云连接游戏服务器这段路由不丢包,低延迟,低抖动,晚间峰值效果不变,十分舒服,1Mbps带宽玩游戏是没问题的,数据缓存之类的可以先不连pptp,使用本地网络缓存资源文件,然后再用pptp连接进行游戏。

参考文章出处:

https://www.cnblogs.com/heqiuyong/p/11437926.html
https://me.jinchuang.org/archives/517.html#comment-334
https://blog.csdn.net/h18733517027/article/details/94435182
评论 (1条)
  1. 量子涨落 博主

    华为云的不支持加密,mppe和chap v2都不支持,检查了内核是支持的,不知道是什么奇奇怪怪的BUG,报错
    LCP terminated by peer (MPPE required but not available)
    CTRL: EOF or bad error reading ctrl packet length.

    回复