本文中操作系统是centos7完整版,自带wget、tra等下载和解压命令。
一、环境准备
1、软件:VMware Workstation Pro、WinSCP
2、系统环境准备
1)PPTP服务器:
操作系统:CentOS 7.9
内网IP地址:172.16.10.50 (VMnet6) 不用管这个地址,这个是连接到vpn后分配的内部地址
模拟的公网IP地址:192.168.80.100(VMnet8) 服务器的地址虚拟机配置,所以不是真实公网ip地址。
2)客户端:
windows10 操作系统 模拟的公网IP地址:192.168.80.122(VMnet8) 电脑公网ip需要和服务器公网ip有路由节点可以通讯。
二、PPTP服务端安装
1、检查是否支持pptp,返回ok即表示支持
[root@localhost ~]# modprobe ppp-compress-18 && echo ok
2、安装ppp服务,Centos7.9默认已经安装ppp服务,如果是Centos7.9系统,这步不需要操作
[root@localhost ~]# yum install -y ppp
成功返回 软件包 ppp-2.4.5-34.el7_7.x86_64 已安装并且是最新版本 无需任何处理
3、接下来需要安装pptpd。
[root@localhost ~]# wget https://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/p/pptpd-1.4.0-2.el7.x86_64.rpm
4、安装pptpd服务
[root@localhost ~]# ls
anaconda-ks.cfg initial-setup-ks.cfg pptpd-1.4.0-2.el7.x86_64.rpm 公共 模板 视频 图片 文档 下载 音乐 桌面
[root@localhost ~]# rpm -ivh pptpd-1.4.0-2.el7.x86_64.rpm
5、修改 etc/pptpd.conf 文件,配置本地隧道网卡地址,及客户端地址池,需要同一网段
[root@localhost ~]# vim /etc/pptpd.conf 进入后去掉前面#注释改为以下内容
localip 172.16.10.50
remoteip 172.16.10.100-110
6、修改 etc/ppp/options.pptpd 文件,配置隧道DNS
[root@localhost ~]# vim /etc/ppp/options.pptpd
ms-dns 223.5.5.5
ms-dns 8.8.8.8
7、修改 etc/ppp/chap-secrets 文件,添加pptp vpn账号与密码,格式:用户名 pptpd 密码 ip地址
[root@along ~]# vim /etc/ppp/chap-secrets
client(客户端登录账号) server(服务) secret(密码) IP addresses(ip范围)
admin pptpd 123456 * (*代表允许所有ip) 此行为插入的文本内容及格式---用户名 pptpd 密码 ip地址
8、修改 etc/sysctl.conf 文件,允许系统路由转发, wq退出后修文件后执行命令 sysctl -p 立即生效
[root@localhost ~]# vim /etc/sysctl.conf
net.ipv4.ip_forward=1 在文本末尾插入的内容,输入 :wq 保存退出文档
[root@localhost ~]# sysctl -p
net.ipv4.ip_forward = 1
9、启用pptpd服务,并设置开关自动启动
[root@localhost ~]# systemctl start pptpd
[root@localhost ~]# systemctl enable pptpd
Created symlink from /etc/systemd/system/multi-user.target.wants/pptpd.service to /usr/lib/systemd/system/pptpd.service.
10、防火墙配置,添加masquerade
[root@localhost ~]# firewall-cmd --add-masquerade
success
[root@localhost ~]# firewall-cmd --permanent --add-masquerade
success
[root@localhost ~]# firewall-cmd --query-masquerade
yes
[root@localhost ~]# firewall-cmd --permanent --zone=public --add-port=1723/tcp
success
[root@localhost ~]# firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 0 -i ens32 -p gre -j ACCEPT
success
[root@localhost ~]#
[root@localhost ~]# firewall-cmd --reload
success
[root@localhost ~]# firewall-cmd --permanent --zone=public --add-port=1723/tcp
Warning: ALREADY_ENABLED: 1723:tcp
success
[root@localhost ~]# ss -nutlp |grep pptpd
tcp LISTEN 0 3 *:1723 *:* users:(("pptpd",pid=4335,fd=6))
[root@localhost ~]# iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j MASQUERADE
11、因为执行完以上步骤后任然无法连接,所以我加了这一步 关闭防火墙 如果你会防火墙可以不用执行全部关闭
[root@localhost ~]# systemctl stop firewalld
自此pptp vpn搭建完成 进入win10 电脑进行连接测试。
win10开始------设置-----vpn----添加vpn
vpn供应商-----windows内置
连接名称-----任意取名字
服务器名称或地址-------centos的公网IP地址或对应域名 此处为实验接上面模拟的公网IP地址192.168.80.100
vpn类型-----点对点隧道协议(PPTP)
登陆信息的类型-----用户名和密码
用户名---- 步骤7中vim编辑输入的 admin
密码(可选)-----步骤7中vim编辑输入的123456
自此连接成功 检查电脑获取的IP地址 尝试ping服务器centos的步骤5中输入的localip 172.16.10.50
win+r--cmd--ping 172.16.10.50 成功通讯。
本文为实验环境,所以不知道这种部署的vpn能否实现电脑的公网ip变成服务器的公网ip。