• CentOs7搭建基于pptp的VPN服务器


      最近想远程连接一下家里的台式机电脑,由于都是局域网,又没有公网ip,所以就没法远程。上网查了一下,发现可以在云服务器上搭建一个VPN,这样两台电脑就在同一个局域网内,就可以完美解决这个问题。现在把搭建方法和遇到的问题做个总结。

    一、VPN服务器的搭建

    1、用xshell连接上xshell的终端,输入以下命令查看是否支持pptp

    modprobe ppp-compress-18 && echo yes
    
    • 1

    在这里插入图片描述

    2、输入:yum -y update 自动更新所有已安装的软件包和依赖项,以确保系统保持最新状态。

    yum -y update
    
    • 1

    3、输入:yum -y install ppp安装ppp

    yum -y install ppp
    
    • 1

    4、输入:yum -y install pptpd 安装pptp守护进程

    yum -y install pptpd
    
    • 1

    5、输入vim /etc/pptpd.conf 配置pptpd.conf

    找到最下面的localip,去掉开始的那个#符号

    • localip是指VPN服务器的本地IP地址,
    • remoteip是指为VPN客户端分配的IP地址,如果客户端比较多的话将remoteip的范围改大一些。

    在这里插入图片描述
    修改完成后按Esc键退出编辑模式,然后输入:wq保存并退出文件。

    6、输入:vim /etc/ppp/options.pptpd 配置options.pptpd的dns

    在这里插入图片描述

    7、输入:vim /etc/ppp/chap-secrets 配置连接VPN客户端要用到的帐号密码

    • client为帐号
    • server是pptpd服务
    • secret是密码,
    • *表示是分配任意的ip
      数据之间用tab隔开
      在这里插入图片描述

    8、输入:vim /etc/sysctl.conf 配置sysctl.conf

    在末尾添加以下两行命令:

    net.ipv4.ip_forward = 1 启用IPv4数据包转发功能
    在这里插入图片描述

    sysctl -p 使更改生效
    :在这里插入图片描述

    9、添加一个规则,允许通过 TCP 协议访问 1723 端口

    iptables -A INPUT -p tcp --dport 1723 -j ACCEPT
    
    • 1

    特别注意:在云服务器的防火墙中也要放行1723这个端口
    在这里插入图片描述

    10、增加转发规则,为了可以连上vpn后可以上网

    iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE
    # 保存规则:
    service iptables save
    
    # 重启生效:
    systemctl restart iptables
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    11、重启pptp服务 systemctl restart pptpd

    systemctl restart pptpd
    # 将PPTP VPN服务添加到开机自启服务列表中,使它在系统启动时自动启动。
    systemctl enable pptpd
    
    • 1
    • 2
    • 3

    二、本地连接配置(以windows11为例)

    1、连接vpn

    依次打开设置网络和InternetVPN连接 添加vpn
    在这里插入图片描述

    2、可以在cmd中查看当前的网络是否连接成功,如果出现配置的ip说明成功

    在这里插入图片描述

    三、遇到的问题总结

    1、如果在连接过程中出现端口不通,说明需要配置防火墙

    systemctl start firewalld.service(开启防火墙)
     
    systemctl stop firewalld.service(关闭防火墙)
     
    systemctl status firewalld(查看是否开启防火墙)
     
    firewall-cmd --list-ports(查看开启的端口)
     
    sudo firewall-cmd --zone=public --permanent --add-port=1723/tcp(开启1723端口)
    sudo firewall-cmd --reload
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    特别注意:在云服务器的防火墙中也要放行1723这个端口
    在这里插入图片描述

    2、如果出现连接被远程计算机终止,需要设计加密格式

    连接成功后,在网络设备管理器中,找到刚才添加的vpn的虚拟网卡
    在这里插入图片描述
    右键网卡,打开属性,将下面两项选择即可
    在这里插入图片描述

    3、如果出现无法访问外网的情况,需要配置路由

    首先在网络设备管理器中,找到刚才添加的vpn的虚拟网卡,右键点击,在属性中选择网络选项卡,然后双击ipv4的设置
    在这里插入图片描述
    在打开的选项卡中点击高级
    在这里插入图片描述
    在IP设置中将“在远程网络上使用默认网关”取消选中
    在这里插入图片描述
    上面这样的设置,就是把所有的网都不走这个vpn网卡了,我们再将特定的网段设置成走vpn即可实现外网不走vpn,特定网段走vpn的功能。

    具体方法如下:

    点击确定以后断开vpn重新连接一次,然后用管理员打开cmd,在cmd中设置路由输入以下命令

    # 显示已经连接的VPN接口以及对应的接口编号,记住最前面的数字,举例:52
    route print | findstr MyVPN
    
    # 添加公司内网IP段,下方的52就是接口编号,IP段举例:192.168.31.0/24
    route add -p 192.168.31.0/24 0.0.0.0 if 52
    
    # 到这里就完成所有配置了,参数 -p 是指添加永久路由表,重启系统仍然保留
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    我这里之前已经添加过,所以已经存在了
    在这里插入图片描述

    四、远程连接

    找到需要远程的机器,连上我们自己搭建的VPN,拿到ip地址,就可以进行远程连接了
    在这里插入图片描述


    参考资料:

    • https://zhuanlan.zhihu.com/p/628587235
    • https://blog.csdn.net/m0_61385351/article/details/128615332
    • https://blog.jtwo.me/configure-routing-table-for-vpn-diversion/

    后记
      个人总结,欢迎转载、评论、批评指正

  • 相关阅读:
    GDP-L-岩藻糖,鸟苷二磷酰岩藻糖,Guanosine 5′-diphospho-β-L-fucose sodium salt
    【vim 学习系列文章 7-- vim vnormap nnoremap nmap map inoremap 区别】
    rh358 003 ansible部署双网卡绑定 DNS原理 bind正向解析
    基于shiro+redis缓存的session共享方案
    玩转python标准库,好用的功能梳理
    【Linux】多线程_8
    每日干货分享:扫描文字识别软件哪个好?
    java毕业设计《组成原理》课程智能组卷mybatis+源码+调试部署+系统+数据库+lw
    深入探讨Java Stream流:数据处理的新思维
    初始Java 8-2 接口和抽象类
  • 原文地址:https://blog.csdn.net/u012559967/article/details/134217206