Centos7搭建pptp

        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 (我这里使用云服务器)
ppppptpd
iptables (我这里使用iptables
win10客户端(连接测试使用)

1.查看是否支持

modprobe ppp-compress-18 && echo yes

显示yes

cat /dev/ppp

显示

cat: /dev/ppp: 没有那个设备或地址

2、禁用firewalld防火墙和安装需要的包

停止和禁用firewalld

systemctl stop firewalld
systemctl disable firewalld

增加epel yum源

yum install epel-release -y

安装需要的包

yum install ppp ppp-devel pptpd iptables iptables-services -y

3、修改配置文件pptpd.conf option.pptpd

vim /etc/pptpd.conf

#找到此处去掉前面注释
localip xxx.xxx.xxx.xxx  #自定义一个ip或者内网ip地址
remoteip 192.168.0.10-20  #自定义分配给客户端的网段和地址池
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

vim /etc/ppp/chap-secrets

#添加用户格式:用户名 pptpd 密码 *

# Secrets for authentication using CHAP
# client    server    secret            IP addresses
test    * 123456 *

5、打开系统ipv4转发 sysctl.conf

vim /etc/sysctl.conf
#有此项的话修改数值为1 没有的新添加一条
net.ipv4.ip_forward=1

#应用生效
sysctl -p

6、启动pptpd服务

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

#保存规则
service iptables save
#重启生效
systemctl restart iptables

8、增加转发规则,和修改mtu的大小,为了可以连上vpn后上网

#注意这里网段和上面配置文件(/etc/pptpd.conf)网段子网一致,eth0和本机网卡名称一致(本机只有eth0和lo)
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE

#保存规则
service iptables save
#重启生效
systemctl restart iptables

#修改MTU默认值1396为1500,在exit 0前面加一句
vim /etc/ppp/ip-up
.......
ifconfig $1 mtu 1500

exit 0

#重启下pptpd服务
systemctl restart pptpd

9win10客户端连接测试(连接后所有上网流量都通过vpn服务器)

win10客户端pptp vpn主要配置参数

win10客户端连接后的信息,上公网和访问内网机器

10如果想用本地网络上网,又可以访问连接vpn服务器的网络(连接后上网流量还是通过本地网络)

系统环境总是有些差别,出些错误也正常,我在连接中遇到的错误

解决办法:

1,检查1723端口是否开放和gre协议是否开放
2,各项配置文件参数是否有误
3,客户端的配置是否正确
4,连接后不能上公网,重置清空iptables所有规则,然后重新添加上面的iptables规则。
5,修改MTU的数值 CentOS7搭建PPTP服务

总体过程

1:安装ppppptp
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

配置CentOS PPTP客户端

  1. 执行如下命令,安装PPTP软件包。

yum install -y ppp pptp pptp-setup

回显如下图所示,表示PPTP安装成功。

  1. 执行如下命令, 连接VPN服务端。

pptpsetup --create test --server [$IP] --username [$User] --password [$Password] --encrypt --start

说明

[$IP][$User][$Password]VPN服务端的IP地址、用户名和密码。

回显如下图所示,表示已成功连接VPN服务端。

iptables --insert INPUT 1 --source 0.0.0.0/0.0.0.0 --destination 0.0.0.0/0.0.0.0 --jump ACCEPT --protocol gre --in-interface ens192

  1. 当系统提示已经被分配了192.168.0.234的客户端地址时,执行如下命令,可以看到ppp0网卡。

ifconfig | grep -A 10 ppp

回显如下图所示,表示命令执行成功。

  1. 执行如下命令,增加默认路由。

ip route replace default dev ppp0

route add default dev ppp0

  route add -net 10.13.0.0 netmask 255.255.0.0 dev ppp0

PS:第一条是用于使用远程的默认网关进行外网访问,第二条是用于访问对端的内网

如果是使用本地网络拨号至海外VPN如需要访问海外网站还需要设置DNS服务器为8.8.8.8修改文件为/etc/resolv.conf

回显如下图所示,表示命令执行成功。

  1. 增加路由后,您就可以访问VPN服务器。

常见问题

浏览器无法打开网页

搭建PPTP VPN后,测试可以连接,可以PING通网站域名,但浏览器无法打开网页。一般是MTU设置不正确导致的。请参考以下方案解决问题。

  • 方案一
    1. 登录连接配置VPN的CentOS服务器。
    2. 输入执行ifconfig ppp0 mtu 1472命令。
    3. 通过浏览器测试是否能打开网页。当出现类似如下返回信息时,表示问题已经解决。

说明 

此方案可以临时生效,如果您需要长期生效的方案,请完成方案二。

  • 方案二
    1. 登录连接配置VPN的CentOS服务器。
    2. 输入执行vi /etc/ppp/ip-up命令,进入/etc/ppp/ip-up文件中。
    3. /etc/ppp/ip-up文件中添加ifconfig ppp0 mtu 1472 命令。

回显如下图所示,表示命令添加成功。

    1. 通过浏览器测试是否能打开网页。

当出现类似如下返回信息时,表示问题已经解决。

获取到错误的IP地址

客户端成功连接VPN后,获取到错误的地址。获取的地址不是VPN服务端分配的地址,而是云服务器ECS实例的内网网卡地址。如果出现这种情况,假设配置的VPN客户端配置名称是testvpn,可以参照如下步骤尝试处理。

操作步骤
  1. 登录连接配置VPN的CentOS服务器。
  2. 输入执行vi /etc/ppp/peers/testvpn命令,进入ppp客户端/etc/ppp/peers/testvpn配置文件中。在如下图位置上添加noipdefault参数。​​​​​​​
  3. 执行如下命令重启客户端。重新连接后通常可获取到正确的IP地址。
  4. poff testvpn
pon testvpn

说明 

重启客户端时,noipdefault参数可能会被服务端传递过来的参数覆盖。如果noipdefault参数被覆盖,您需要检查服务端的配置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值