测试结果很迷
环境,宝塔面板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
华为云的不支持加密,mppe和chap v2都不支持,检查了内核是支持的,不知道是什么奇奇怪怪的BUG,报错
LCP terminated by peer (MPPE required but not available)
CTRL: EOF or bad error reading ctrl packet length.