Centos7 搭建PPTP-VPN 服务
· 技术积累 · Linux Centos7 VPN

(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 搭建PPTP-VPN 服务

声明:本文仅限用于企业远程办公或企业跨境电商用途参考

搭建环境:
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

Centos7 搭建PPTP-VPN 服务


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

Centos7 搭建PPTP-VPN 服务


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

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

Centos7 搭建PPTP-VPN 服务


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

Centos7 搭建PPTP-VPN 服务

Centos7 搭建PPTP-VPN 服务

Centos7 搭建PPTP-VPN 服务

Centos7 搭建PPTP-VPN 服务

Centos7 搭建PPTP-VPN 服务


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

Centos7 搭建PPTP-VPN 服务

Centos7 搭建PPTP-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服务


本文最后更新时间 2024-04-13
文章链接地址:
https://me.jinchuang.org/archives/517.html
本站文章除注明[转载|引用],均为本站原创内容,转载前请注明出处
统计文本中每个字符出现的次数
Nali 离线ip数据库文件
苹果CMS v10内容管理系统搭建
bin/ld: Dwarf Error: found dwarf version '5', this reader only handles version 2, 3 and 4 information.

HTML中文字的CSS 渐变样式

Protege-本体编辑开发工具

留言列表

  1. 小江
    Android 10 QQ 浏览器
    中国广东省东莞市电信

    谢谢,博主,还给私发邮件,我是pptp类型的vpn

    1. J.C
      J.C
      Windows 10 Google Chrome
      中国上海市联通

      确实只有pptp出现这个问题,其他类型都没见过这个错误

  2. 小江
    Android 10 QQ 浏览器
    中国广东省东莞市电信

    博主在不,请教你一个问题,在同一个网络环境,win7拔vpn没有问题,但win10家庭版或专业版拔vpn时,提示无法建立远程连接,此端口己关闭

    1. J.C
      J.C
      Windows 10 Google Chrome
      中国上海市联通

      这个错误,我也遇到得有,但是没找到解决的办法。我是换个网络环境就可以连上

  3. 董二
    Windows 10 Google Chrome
    中国上海市电信

    博主你好。
    使用虚拟机搭建完成后,虚拟机windows7是可以连得,我本机也是可以连上的,但是上不了网。让分公司的同事连了一下也连不上,ping不通,配置都没问题,是虚拟机的原因吗,另IPtables规则怎么清空呢

  4. 小编
    Windows 10 Google Chrome
    中国上海市联通IDC机房

    vim /etc/pptpd.conf 这个是啥意思??博主

    1. J.C
      J.C
      Windows 10 Google Chrome
      中国天津市联通

      修改pptp的主配置文件,主要修改本地的ip地址和分配给客户端的ip地址段

      1. 小编
        Windows 10 Google Chrome
        中国上海市联通IDC机房

        -bash: vim: 未找到命令 我输入的时候他提示的是这个

        1. J.C
          J.C
          Windows 10 Google Chrome
          中国天津市联通

          你没有安装vim命令,安装命令:yum install vim -y

          1. 小编
            Windows 10 Google Chrome
            中国上海市电信

            vim 修改了 咋保存呀

            1. J.C
              J.C
              Windows 10 Google Chrome
              中国上海市电信

              :wq 或者 :x 保存退出, 这些命令操作建议你百度搜搜怎么用的。

  5. 小晃晃
    Windows 10 Google Chrome
    中国广东省深圳市电信

    博主,有没有支持安卓和苹果手机的vpn搭建方法,最好是l2tp ipsec的

    1. J.C
      J.C
      Windows 10 Google Chrome
      中国上海市电信

      l2tp vpn、openvpn都支持安卓和苹果,不过openvpn比较麻烦,l2tp/ipsec vpn搭建:L2TP+IPsec vpn搭建

  6. 咸鱼王
    Windows 10 Google Chrome
    中国上海市电信

    博主你好,请问连接VPN提示“不能建立到远程计算机的链接,因此用于此连接的端口已关闭”这个是哪里出现了问题吗?

    1. J.C
      J.C
      Windows 10 Google Chrome
      中国天津市联通

      这个问题我认为是网络或者上网的设备的原因造成的,我也有遇到这个问题,客户端怎么修改都连不了
      我本地用联通和电信两个不同带宽都连不上,这2条带宽都从一个路由器出去的。
      如果用电脑连接手机4G热点,然后再连vpn,瞬间连上。但是切换为本地的有线或wifi,就是连不上

      1. aa
        aa
        Windows 10 Google Chrome
        中国广东省东莞市电信

        同样的状况,不过后来咨询客服,发现华为路由上有一个PPTP的传输,把它勾选了就连上了

      2. 咸鱼王
        Windows 10 Google Chrome
        中国上海市电信

        好的,谢谢,很奇怪,我在你的另一个帖子里 使用L2TP的方法就能正常连接

        1. J.C
          J.C
          Windows 10 Google Chrome
          中国天津市电信IDC机房

          嗯,我有问题那个电脑也是的,用l2tp是正常的,就是连不上PPTP,毕竟他们用到的协议不同

  7. 小象
    Windows 10 Google Chrome
    中国天津市联通

    按照步骤来的,但是在另一台电脑上连上我的vpn的时候,显示没有网络,防火墙也关了。百度了一下也没找到原因

    1. J.C
      J.C
      Windows 10 Google Chrome
      中国上海市电信

      连上后不能上网 可能是iptables转发的问题。iptables关了话转发就不生效的

      1. 小象
        Windows 10 Google Chrome
        中国天津市联通

        重新启动了iptables 也还是不行,方便留个联系方式不,有偿

        1. J.C
          J.C
          Windows 10 Google Chrome
          中国上海市电信

          点我网站上面的QQ图标链接就可以联系我了,不需要有偿

  8. 小白
    Windows 10 Firefox
    中国上海市电信

    systemctl start pptpd 提示unit not found

    1. J.C
      J.C
      Windows 10 Google Chrome
      中国上海市松江区电信

      你pptpd服务没有安装,你的yum源没有添加epel源?

      1. 小白
        Windows 10 Firefox
        中国天津市联通

        一直显示 ”未进行远程连接,因为远程访问服务器的名称问题没有解决“ 是什么问题啊

      2. 小白
        Windows 10 Firefox
        中国天津市联通

        好了,我在添加vpn的时候,那个ip应该放哪一个,还有账号和密码

        1. J.C
          J.C
          Windows 10 Google Chrome
          中国上海市松江区电信

          哪个ip? 如果是localip 后面这个ip,就写你服务器的ip地址,如果是云服务器就写内网ip地址
          账号密码话的 就在chap-secrets文件里面按格式添加就可以了

          1. 小白
            Windows 10 Firefox
            中国天津市联通

            搞定了 还是感谢博主的耐心回答

留言已关闭