什么是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. JAVA学习笔记:注释、变量的声明和定义、

    本文内容: 注释 变量的声明和定义 成员变量和局部变量 首发时间:2018-03-16 15:59 注释: 单行注释:// 多行注释:/* - */ 变量: 变量是内存中的一个存储区域,变量的定义就是 ...

  2. python第十二天 生成器,迭代器,内置函数

    第二模块学习:  生成器,迭代器,内置函数 生成器特点:只有在调用时才会生成相应的数据,运行的速度快! 示例: def fil(max):#斐波那契数 n,a,b=0,0,1 #定义初始数据 whil ...

  3. js中var的有或无--重复声明和以后的声明

    js中var的有或无--重复声明和以后的声明 使用var语句多次声明一个变量不仅是合法的,而且也不会造成任何错误. 如果重复使用的一个声明有一个初始值,那么它担当的不过是一个赋值语句的角色. 如果重复 ...

  4. CSS:float: right 靠右换行的解决方法

    1.float: right的使用用法:使用html代码<span style="float: right">*****</SPAN>,其中*****就是你 ...

  5. JavaScript高级特性-实现继承的七种方式

    声明和约定: 在C++和Java中,我们可以通过关键字class来声明一个类,在JavaScript中没有这个关键字,但我们知道可以通过new一个function创建对象,这个function类似C+ ...

  6. windows任务管理器怎么知道多个IIS网站进程分别对应哪个网站

    摘要: 1.IIS网站对应的进程名一般叫w3wp.exe (windows2008系统为例,其他类似) 2.windows默认的任务管理器只能看到多个同名的进程名w3wp.exe,没法区别分别对应哪个 ...

  7. Gogs基本使用介绍

    Gogs简介 Gogs 是一款类似GitHub的开源文件/代码管理系统(基于Git),Gogs 的目标是打造一个最简单.最快速和最轻松的方式搭建自助 Git 服务.使用 Go 语言开发使得 Gogs ...

  8. Qt实现同步(阻塞式)http get等网络访问操作

    Qt的网络操作类是异步(非阻塞的),但有时想做一些阻塞的事情就不方便了,可用如下几行代码轻松实现: QByteArray MyNetworkAccess::get(const QString & ...

  9. tidb在DDL语句方面的测试

    Mysql与tidb测试数据为8000万行. 1.修改一个字段的列名,比如将“ctime”修改为“cctime”. Tidb测试: MySQL测试: 2.同一属性之间切换,即修改一个字段的属性大小.比 ...

  10. C++基础算法学习——汉洛塔问题

    汉诺塔问题古代有一个梵塔,塔内有三个座A.B.C,A座上有64个盘子,盘子大小不等,大的在下,小的在上(如图).有一个和尚想把这64个盘子从A座移到C座,但每次只能允许移动一个盘子,并且在移动过程中, ...