(Github)推荐使用一键脚本,一键安装配置VPN,还有很完善的使用文档 IPsec VPN 服务器一键安装脚本
PPTP点对点隧道协议(PPTP,Point-to-Point Tunneling Protocol)是一种协议(一套通信规则),它允许企业通过私人“隧道”在公共网络上扩展自己的企业网络。注意:苹果手机从ios10起不支持pptp vpn了
PPTP以通用路由封装(GRE)协议向对方作一般的点对点传输。通过TCP1723端口来发起和管理GRE状态。因为PPTP需要2个网络状态,因此会对穿越防火墙造成困难。很多防火墙不能完整地传递连接,导致无法连接。 在Windows或Mac OS平台,通常PPTP可搭配MSCHAP-v2或EAP-TLS进行身份验证 ,也可配合微软点对点加密(MPPE)进行连接时的加密。
声明:本文仅限用于企业远程办公或企业跨境电商用途参考
搭建环境:
Centos7 (我这里使用腾讯云的服务器)
ppp和pptpd 包
iptables (我这里使用iptables)
win10客户端(连接测试使用)
1、查看是否支持
[root@VM_centos ~]# modprobe ppp-compress-18 && echo yes
yes
[root@VM_centos ~]# cat /dev/ppp
cat: /dev/ppp: 没有那个设备或地址
2、禁用firewalld防火墙和安装需要的包
#停止和禁用firewalld
[root@VM_centos ~]# systemctl stop firewalld
[root@VM_centos ~]# systemctl disable firewalld
#增加epel yum源
[root@VM_centos ~]# yum install epel-release -y
#安装需要的包
[root@VM_centos ~]# yum install ppp ppp-devel pptpd iptables iptables-services -y
3、修改配置文件pptpd.conf option.pptpd
[root@VM_centos ~]# vim /etc/pptpd.conf
#找到此处去掉前面注释
localip xxx.xxx.xxx.xxx #自定义一个ip或者内网ip地址
remoteip 192.168.0.10-20 #自定义分配给客户端的网段和地址池
[root@VM_centos ~]# vim /etc/ppp/options.pptpd
#修改下ms-dns,和添加一个日志文件,其他默认都开启的不用动即可
name pptpd
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
require-mppe-128
ms-dns 8.8.8.8
ms-dns 114.114.114.114
proxyarp
lock
nobsdcomp
novj
novjccomp
nologfd
logfile /var/log/pptpd.log
4、修改用户认证配置文件chap-secrets
[root@VM_centos ~]# vim /etc/ppp/chap-secrets
#添加用户格式:用户名 pptpd 密码 *
# 密码有特殊字符混合的需要用""引起来
# Secrets for authentication using CHAP
# client server secret IP addresses
test * 123456 *
# 用户密码组合复杂性例子
feifei * "!QAZxsw2#EDC" *
Tx2022 * "TX@xxx66" *
5、打开系统ipv4转发 sysctl.conf
[root@VM_centos ~]# vim /etc/sysctl.conf
#有此项的话修改数值为1 没有的新添加一条
net.ipv4.ip_forward=1
#应用生效
[root@VM_centos ~]# sysctl -p
6、启动pptpd服务
[root@VM_centos ~]# systemctl start pptpd
7、开放需要的端口(iptables和云服务器的安全组),此步操作完就可以先测试下是否可以连接了
# iptables添加入站规则,1723端口和gre协议(默认INPUT是允许所有的,可以不加)
iptables -A INPUT -p tcp --dport 1723 -j ACCEPT
iptables -A INPUT -p gre -j ACCEPT
#保存规则
[root@VM_centos ~]# service iptables save
#重启生效
[root@VM_centos ~]# systemctl restart iptables
8、增加转发规则,和修改mtu的大小,为了可以连上vpn后上网
#注意这里网段和上面配置文件(/etc/pptpd.conf)网段子网一致,eth0和本机网卡名称一致(本机只有eth0和lo)
[root@VM_centos ~]# iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE
#保存规则
[root@VM_centos ~]# service iptables save
#重启生效
[root@VM_centos ~]# systemctl restart iptables
#修改MTU默认值1396为1500,在exit 0前面加一句
[root@VM_centos ~]# vim /etc/ppp/ip-up
.......
ifconfig $1 mtu 1500
exit 0
#重启下pptpd服务
[root@VM_centos ~]# systemctl restart pptpd
9、win10客户端连接测试(连接后所有上网流量都通过vpn服务器)
win10客户端pptp vpn主要配置参数
win10客户端连接后的信息,上公网和访问内网机器
10、(2020.6.16更新)如果想用本地网络上网,又可以访问连接vpn服务器的网络(连接后上网流量还是通过本地网络)
系统环境总是有些差别,出些错误也正常,我在连接中遇到的错误解决办法:
1,检查1723端口是否开放和gre协议是否开放
2,各项配置文件参数是否有误
3,客户端的配置是否正确
4,连接后不能上公网,重置清空iptables所有规则,然后重新添加上面的iptables规则。
5,修改MTU的数值 CentOS7搭建PPTP服务
总结(有问题请先对照文章内容步骤和文章注释说明,然后再参考下面的问题说明)
此篇文章是以PPTP VPN涉及到哪些文件和需要改动的配置进行搭建,需要有一定linux基础知识和理解
写此篇文章是为了记录下,方便以后用到好找,并不是教程文章,参考过程中有问题就请多 百度|谷歌|搜狗|360|bing ?
如果觉得麻烦或者完全不懂的建议去网上找一键脚本安装的
1:安装ppp和pptp包
2:安装iptables防火墙用于转发
3:修改配置文件:
/etc/pptpd.conf
/etc/ppp/options.pptpd
/etc/ppp/chap-secrets
/etc/sysctl.conf
/etc/ppp/ip-up
连接问题:
4:确认以上的配置文件无误
5:确认pptpd服务和iptables启动正常
6:确认用户名密码常正确
7:确认服务端和客户端正确配置了连接参数
8:确认你服务端的pptp vpn的协议和端口没有被运营商封掉
9:确认放行使用到的tcp端口(云安全组|外网防火墙等安全策略)
上网问题:
10:确认iptables转发规则无误
11:确认系统打开ipv4转发和脚本修改的mtu值
L2TP+IPsec vpn搭建
Centos7搭建Open VPN服务
文章链接地址:https://me.jinchuang.org/archives/517.html
本站文章除注明[转载|引用|来源],均为本站原创内容,转载前请注明出处
楼主您好,配置后win10链接报错ppp链接控制协议终止,是哪里的错囊
你vpn属性里面 - 安全 - 允许使用这些协议 这个勾上
下面的选项也勾上,除了最后一个自动使用···这个选项不勾
您好,我在客户端进行连接时提示“不能建立远程计算机的连接,因此用于此连接的端口已关闭 ”
检查下服务对应的端口是否开放,还有防火墙或者安全组都是否允许访问,1723和47端口(GRE)
为什么按照文档没有出现ppp0 和 ppp1 网卡
这2个网卡是连接了2个客户端,如果没有连客户端连上来是没有这个网卡的
按照教程搭建了,用两个windows服务器分别拨号连上了vpn,都能ping通服务器,但是这两个客户端相互不能ping也不嫩访问,我看服务器上产生了2个ppp(ppp0和ppp1),请问是哪里的配置有问题?
我这边做了测试,两台win10连上后(防火墙都关闭),互相ping从vpn获取到的ip地址可以通的,其中一台安装的nginx服务,另一台访问是可以访问到的。
检查下两个机器的防火墙是否关闭,客户端是否可以通过vpn服务器代理上网。服务器上2个ppp是有两个客户端连上的,默认相互ping分配的vpn ip地址默认是可以通的
清空iptables规则以后重新添加,现在可以上网可以ping通了
还有一个问题,如果客户端A是一个支持pptp的路由器,底下连接一个电脑B,我的另一个pptp客户端C怎样可以访问这个电脑B?
那就打通A和C之间的vpn,路由器之间可以建立多个vpn隧道
你好,连接上以后A和B能相互ping通 但B无妨访问A开启的http页面服务,A的防火墙是关闭全部状态,服务器防火墙打开或者关闭都试过 不行这个是什么问题
连上后AB互通,B访问不了A的http服务的话,应该是哪里还有限制的,不可能默认只通一个icmp协议,看下不能访问报的什么错误,
拔上后获取的Ip地址不是设定给的ip192.168.30.0/24,而是192.168.1.1
获取到不是指定的网段ip,应该是你没有配置好,检查下配置文件里面
很棒 只花了5分钟 一次连上 谢谢博主
操作一遍,连上了,但是没网络
如果连上了,ping下vpn网段其他主机是否通,检查下iptables的转发,可能是转发的问题
我是在自己电脑的虚拟机上的 centos 装的。
你用本机的虚拟机不行,你虚拟机就是通过本机网络上网的,你vpn再连接到虚拟机后,虚拟机也不能上网了,所以你用本机虚拟机不行,你vpn服务端换到其他机器再用本机去连接测试。
iptables 规则也都清空并且重新配置了。还是不行。是不是哪里操作错了
客户端连上了V P N,还连接的 WiFi。但是ip还是本地的(感觉V P N没有生效)。WiFi断开后,客户端的V P N也跟着断开了。