什么是V-P-N

V-P-N即虚拟专用网络,它的功能是:在公用网络上建立专用网络,进行加密通讯。

V-P-N网关通过对数据包的加密和数据包目标地址的转换实现远程访问。V-P-N有多种分类方式,主要是按协议进行分类。

V-P-N可通过服务器、硬件、软件等多种方式实现。本文记录的是 Linux 系统下V-P-N服务器的搭建。

实验环境

  1. VMware Workstations
  2. 一台最小化安装的CentOS7,内网IP(仅主机模式):192.168.50.128,外网IP(NAT模式):192.168.204.133
  3. 一台Windows7,内网IP(仅主机模式):192.168.50.129

检查网络连通性

CentOS上执行以下命令:

# 检查centos到windows之间的网络连通性
ping -c 4 192.168.50.129
# 检查centos到互联网的网络连通性
ping -c 4 www.baidu.com

安装pptpd软件包

yum install -y epel*
yum install -y ppp pptpd

修改配置文件options.pptpd

vim /etc/ppp/options.pptpd

查找ms-dns选项,解除本行注释,同时修改NDS地址

修改配置文件pptpd.conf

vim /etc/pptpd.conf

查找ppp选项,解除本行注释

查找localip选项和remoteip选项

其中localip代表虚拟专用网络的本机地址,remoteip代表虚拟专用网络客户端的地址池

修改chap-secrets配置文件,添加登录用户

vim /etc/ppp/chap-secrets

其中,client代表用户名,secret表示密码,IP addressses表示允许登录的IP地址(*代表不限制登录IP)

启动服务

systemctl restart pptpd
systemctl status pptpd

关闭防火墙

setenforce 0
systemctl stop firewalld.service
systemctl disable firewalld.service
firewall-cmd --state

开启Linux的路由功能

iptables -A FORWARD -i ens37 -j ACCEPT
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o ens33 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward
cat /proc/sys/net/ipv4/ip_forward

解释(ens37为内网网卡,ens33为外网网卡):

第一条命令:让发送至内网网卡的数据全部通过

第二条命令:修改数据报头信息

第三条命令:开启Linux的路由功能

第四条命令:查看是否启用了路由功能,1代表启用,0代表禁用

具体命令需要根据自己的网卡名称进行修改

设置开机自启

将 开启Linux路由功能 的命令写成shell脚本

vim /root/nat.service

添加如下内容(具体命令需要根据自己的网卡名称进行修改):

#!/bin/bash
iptables -A FORWARD -i ens37 -j ACCEPT
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o ens33 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward
cat /proc/sys/net/ipv4/ip_forward

添加可执行限权

chmod +x /root/nat.service

将脚本添加到开机自启目录

echo -e "/bin/bash /root/nat.service" >> /etc/rc.local
chmod +x /etc/rc.local

添加pptpd服务开机自启

systemctl enable pptpd

Windows7上配置连接V_P_N

右击网络,选择属性

设置新的连接或网络

连接到工作区







填写V-P-N服务器的IP地址(即V-P-N服务器的内网IP)







输入用户名密码,点击连接



查看连接状态



查看IP信息(可见V-P-N连接分配的IP地址)



检查互联网的连通性



访问网页

本文链接:https://www.cnblogs.com/connect/p/linux-service-virtual-private-network.html

CentOS搭建V~P~N服务,实现虚拟专用网络的更多相关文章

  1. DevOps之虚拟专用网络VPN

    唠叨话 关于德语噢屁事的知识点,仅提供专业性的精华汇总,具体知识点细节,参考教程网址,如需帮助,请留言. <虚拟专用网络VPN(Virtual Private Network)> 关于虚拟 ...

  2. 基于centos搭建微信小程序服务,配置及数据库等

    基于centos搭建小程序, ps:请提前20天准备将域名备案,申请ssl证书 实验上机地址:https://cloud.tencent.com/developer/labs/lab/10004 准备 ...

  3. CentOS搭建NAT和DHCP服务,实现共享上网

    什么是NAT? NAT(Network address translation)即网络地址转换,作为一种过渡解决手段,可以用来减少对全球合法IP地址的需求.简单的说,NAT就是在内部专用网络中使用内部 ...

  4. Open虚拟专用网络

    目录 一:OpenVPN虚拟网络专用 1.简介: 2.OpenVPN的作用 3.远程访问VPN服务 4.OpenVPN两种类型的VPN体系结构 5.全面解析OpenVPN执行流程 6.Openvpn定 ...

  5. 虚拟专用网络VPN

    寒假回到家里需要下载论文,怎样才能访问学校图书馆的数据库呢?解决方法是学校图书馆在内网中架设一台VPN服务器,VPN服务器有两块网卡,一块连接内网,一块连接公网.然后就可以通过互联网找到VPN服务器, ...

  6. 基于CentOS搭建VNC远程桌面服务

    系统要求:CentOS 7.2 64 位操作系统 安装.启动 VNC VNC 远程桌面原理 名词解释: Xorg:在 Linux 用户中非常流行,已经成为图形用户程序的必备条件,所以大部分发行版都提供 ...

  7. 基于 CentOS 搭建 WordPress 个人博客

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 腾讯云提供了开发者实验室帮助用户搭建 WordPress 个人博客,教程内容如下,用户可以点击开发者实验室快速上机完成实验. 准备 LNMP ...

  8. centos 搭建 git 服务端和客户端

    centos 搭建git需要设置远程服务端和客户端.远程代码存放在服务端,多个客户端可以共享和维护服务端代码. 一.服务端主机 1.创建ssh,大部分默认已经安装,有ssh就跳过 yum instal ...

  9. centos搭建dns服务

    原文:(https://www.myjinji.top/articles/2020/04/02/1585800289945.html)[https://www.myjinji.top/articles ...

随机推荐

  1. (网页)Angular.js 中 copy 赋值与 = 赋值 区别

    转自st.gg Angular.js 中 copy 赋值与 = 赋值 区别 为什么用 $scope.user = $scope.master; $scope.master 会跟着 $scope.use ...

  2. (网页)jQuery的时间datetime控件在AngularJs中使用实例

    百度一下,自己也想了一下,有一种简单,无脑的方式分享给你: <input ng-model="start" id="start" placeholder= ...

  3. linux查找某段时间修改的文件的总大小

    1.统计 2017-10-25 16:30:00 至 2017-10-25 19:30:00 修改的文件的总大小 b= for i in `find -type f \( -newermt '2017 ...

  4. 简单整理关于C#和Java的区别

    相信每个程序猿都有自己最喜欢的编程语言,然而对于编程语言似乎形成一条独特的鄙视链,就如Java和C#常常两边的开发者都是相互鄙视,然后他们一起共同鄙视全世界最好的编程语言——PHP 哈哈,但是其实我想 ...

  5. 浅谈C#依赖注入

    什么是依赖注入?不管是js中的一些前端框架还是,java,C#,php等中的一些后端开发框架中,都会涉及这个看着逼格略高的词语:依赖注入,越是看着好像很厉害的东西越是会让许多人学习产生恐惧,好像很厉害 ...

  6. scp 实现远程异地备份

    1.先做好脚本 2.再使用crontab 定时执行计划任务 0 1 * * * /usr/bin/expect /root/script/scpautodown.sh  #执行,也可先定义环境变量 0 ...

  7. js入门-文本框输入特定内容控制另一个文本框

    在填写表单时,有时需要某些文本框隐藏,当一文本框输入特定内容时才会显示隐藏的文本框,这一功能可以用onchange事件或oninput事件实现.下面对比下两种方法实现的区别: onchange()定义 ...

  8. VScode启动后cup100%占用的解决方法

    新安装的vscode,版本1.29.1.启动后,cpu占用一直是100%,非常的卡.百度以下,找到了解决方法,整理一下. 解决方法:在VScode中文件->首选项->设置->搜索-& ...

  9. 第 16 章 C 预处理器和 C 库(条件编译)

    /*-------------------------------------- names_st.h -- names_st 结构的头文件 ----------------------------- ...

  10. Mac快速上手指南

    上周刚入手了2017版MacBookPro,预装macOS High Sierra.第一次接触Mac系统,经过一周的使用,简单总结下与Windows相比最常用的功能,快速上手. 1.Mac键盘实现Ho ...