[笔记]Windows使用OpenVpn构建虚拟局域网

news2024/11/14 1:04:12

文章目录

  • 前言
  • 一、Windows Openvpn方案
    • 1.1 openvpn server windows端安装
      • 目录结构
      • 服务端安装
      • 复制服务端配置文件
      • 修改服务端配置文件
      • 配置8080允许通过防火墙
      • 启动服务端
    • 1.2 openvpn client windows端安装
      • 复制服务端生成的配置文件到客户端的config
      • 启动客户端
  • 二、连通测试
  • 三、常见问题
    • 3.1 客户端报错 'client.crt': No such file or directory


前言

vpn全名 虚拟专用网络 使用这种技术可以使不同的地址的主机处于一个虚拟局域网络,常见的案例就是公司vpn就是让职工能在外网访问到公司的服务器。

而openvpn就是开源的实现。

一、Windows Openvpn方案

客户端:192.168.111.130
服务端:192.168.0.164

构建前:
在这里插入图片描述

client---->server 通过(理论应该不通过的,但是我是虚拟机搭建的,vpnclient和vpnserver共用作为网关的主机)
server----->client 不可

构建后:
在这里插入图片描述
client---->server 通过
server----->client 通过

1.1 openvpn server windows端安装

参考1
参考2
安装包既是客户端又是服务端

目录结构

在这里插入图片描述

服务端安装

一路next,注意要选中以下选项
在这里插入图片描述
依次在同一个bash会话中,运行命令:

cd "C:\Program Files\OpenVPN\easy-rsa"
init-config.bat  # init-config 会把 vars.bat.sample 复制为 var.bat
vars.bat # vars.bat 用来设置一些变量,主要就是配置文件中修改的那部分
clean-all.bat # 会清掉 C: \Program File\OpenVPN\easy-rsa\keys 目录,再把 index.txt 和 serial 文件放进来。
build-ca.bat # 生成根证书
build-hd.bat # 生成 dh1024.pem 文件,Server 使用 TLS(OpenSSL) 必须要有的文件
build-key-server.bat server
# 生成服务端密钥和证书
# server01 是自己定义的参数名,与上相应的就会生成 server01.key、server01.csr 和 server01.crt,也都是在 keys 目录里。
# 这一步像 build-dh.bat 一样有些东西要填写,之后就是该回答 y 的 y 一下,关键就一个:
# Common Name 必须填,且不能与执行 build-dh 时相同,否则会报:
# failed to update database
# TXT_DB error number 2
# 找不到 C:\Program Files\OpenVPN\easy-rsa\keys\*.old
# 三个文件 server01.key、server01.csr 和 server01.crt 也会生成,但文件 server01.crt 的大小是 0 字节无效的,就要重新再来,看到 Data Base Updated 才行。
# 要生成多个服务端的密钥和证书则继续 build-key-server server02 ......

build-key.bat client #客户端生成密钥和证书
# build-ca和build-key-server一样要输入一堆东西,这里注意的是 Common Name 输入client,或者(client1,客户端名依次递增)
..\bin\openvpn --genkey --secret keys\ta.key # 生成 ta.key 文件

然后生成了一堆证书信息
在这里插入图片描述

证书相关文件介绍:
参考:SSL(TLS)

复制服务端配置文件

把key下面文件复制到config

  • ca.crt
  • ca.key
  • server.crt
  • server.csr
  • server.key
  • dh1024.pem
  • ta.key

把sample-config下的以下文件复制到config

  • server.ovpn

config就会有以下文件:(忽略ipp.txt,和openvpn-status.log 这是启动成功后产生的文件)
在这里插入图片描述

修改服务端配置文件

server.ovpn改为如下:

port 8080 # 连接端口
proto tcp  # 协议
dev tun  # tun模式
ca ca.crt # 根证书名
cert server.crt # 服务端证书名
key server.key # This file should be kept secret
;crl-verify vpncrl.pem
dh dh1024.pem
server 192.168.89.0 255.255.255.0 #局域网网段
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1 bypass-dhcp" 
push "dhcp-option DNS 218.85.157.99" 
push "dhcp-option DNS 223.5.5.5" 
push "route 192.168.88.0 255.255.255.0"
client-to-client
;duplicate-cn
keepalive 10 120
tls-auth ta.key 0 # This file is secret
comp-lzo
;max-clients 100
user nobody
group nobody
persist-key
persist-tun
status openvpn-status.log # 日志文件
verb 4

配置8080允许通过防火墙

在这里插入图片描述

启动服务端

点击openvpn-gui.exe

右键托盘下的openvnp选中connect

成功连接如下
在这里插入图片描述

查看此时ip为192.168.89.1

在这里插入图片描述

1.2 openvpn client windows端安装

安装步骤同服务端,

复制服务端生成的配置文件到客户端的config

C:\Program Files\OpenVPN\easy-rsa\keys目录下的文件复制到config:

  • client.crt
  • client.csr
  • client.key
  • ca.key
  • ca.crt
  • ta.key
    (以上文件均为服务端生成的)

复制sample-config/client.ovpn到config下,并修改为:

client
dev tun
proto tcp
 
remote 192.168.0.164 8080 # 服务端ip和映射端口
;remote my-server-2 8080
 
;remote-random
 
resolv-retry infinite
nobind
user nobody
group nobody
;route 192.168.0.0 255.255.252.0
persist-key
persist-tun
 
;http-proxy-retry # retry on connection failures
;http-proxy [proxy server] [proxy port #]
 
ca ca.crt
cert client.crt
key client.key
 
ns-cert-type server
tls-auth ta.key 1
comp-lzo
# Set log file verbosity.
verb 4

启动客户端

点击openvpn-gui.exe
右键托盘下的openvnp选中connect

查看此时客户端ip会发现还有一个192.168.89.6
在这里插入图片描述

二、连通测试

192.168.89.1 ping 192.168.89.6
在这里插入图片描述

三、常见问题

3.1 客户端报错 ‘client.crt’: No such file or directory

Options error: --cert fails with ‘client.crt’: No such file or directory
Options error: --key fails with ‘client.key’: No such file or directory

原因:很有可能是生成证书名时使用client 而不是带序号的 故文件名为client1.crt
解决方案:

  • client1.crt 改为 client.crt
  • client1.key 改为 client.key

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/488871.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数字孪生可视化平台开发 打通现实与虚拟世界

大数据时代背景下,数字孪生技术被应用到智慧建设中,数字孪生是指在虚拟世界中1:1构建一个与现实世界的物体、场景和其他方面都完全相同的孪生景象。数字孪生可视化平台是一种基于虚拟现实技术的数字化模型,通过将真实世界中的物体或场景数字化…

Ubuntu---mysql出现ERROR1698(28000):Access denied for user root@localhost错误解决方法

查看mysql版本: 安装完成后,登录mysql的时候就出现了如下错误: 因为安装的过程中没让设置密码,可能密码为空,但无论如何都进不去mysql。 下面是处理过程: Step1:修改mysqld.cnf配置文件 在ubun…

ModuleNotFoundError: No module named ‘mmcv._ext‘

mmsegmentation使用pyinstaller打包出现问题 mmsegmentation是商汤开源的语义分割框架,里面包含了大量SOTA模型,十分适合从事语义分割工作的小白学习。 最近想将mmsegmentation打包成exe进行使用,但是遇到了一个问题,在打包的过…

server2012 安装mysql5.6.50.0 msi

1. 安装包下载(包括依赖插件) 下载地址 提取码:pb8z 2.安装依赖插件:NDP452-KB2901907-x86-x64-AllOS-ENU.exe 3. 开始安装mysql5.6 双击 mysql-installer-community-5.6.50.0 安装,接受用户许可协议。 选择安装类型: 1)Developer Defaul…

得物直播低延迟探索 | 得物技术

1.背景 直播的时效性保证了良好的用户体验,根据经验在交易环节,延迟越低转化效果也会越好。传统的直播延迟问题已经成为了一个不容忽视的问题,高延迟不仅破坏了用户的观看体验,也让主播难以实时获取到用户的反馈。为了进一步优化…

【计算机网络(二)】DNS协议

什么是DNS DNS(DOMAIN NAME SYSTEM)是一个域名系统,是万维网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串 DNS 工作流程 客户端发送域名解析请求到本地域名服务器 发…

ESP32(二):GPIO

一.创建例程 打开命令面板&#xff1a;ctrlshiftp&#xff0c;输入&#xff1a;esp-idf:example&#xff1b;选择hello_world工程&#xff0c;点击 Create project using example hello_world&#xff0c;选择保存工程&#xff1b;工具使用代码&#xff1a; #include <stdi…

关于软件卸载

卸载软件 想必大家以前都这样删过软件的吧&#xff1a;把桌面上的图标直接拉进垃圾站 然而想卸载也必然也是因为空间占满了吧 所以今天决定介绍几个卸载的方法和工具。 我也是第一次尝试&#xff0c;毕竟我要毕业了&#xff0c;某些软件我忍他们很久了 浅浅地尝试几个 &am…

压测工具Jmeter

腾讯下载地址&#xff1a;https://mirrors.cloud.tencent.com/apache/jmeter/ index of /apache/jmeter/binaries/xxx.zip 这是windows系统使用 index of /apache/jmeter/binaries/xxx.tgz 这是linux系统使用 安装需要java环境 进到解压文件的bin目录下&#xff0c;双击 jmeter…

【Zynq7010 ebaz4205矿渣变废为宝(此教程包含如何更改PL侧的电路,使得能够正常使用PL侧的资源)】

一、时钟 时钟部分的电路图如下图所示&#xff0c;如果想用PL侧的晶振的话&#xff0c;需要手动焊接一个50MHZ的晶振&#xff0c;并将R1372和L29用0欧姆电阻连通。也可以加上一坨锡连通。我使用的是订书器钉。将订书器钉截取一部分&#xff0c;可以很好的替代0欧姆电阻。 ​ 50…

CTFshow misc PNG隐写入门赛

目录 One PieNG 1 One PieNG 2 One PieNG 3 One PieNG 4 One PieNG 5 One PieNG 6 One PieNG 7 One PieNG 8 One PieNG 9 One PieNG 10 One PieNG 11 One PieNG 12 One PieNG 13 One PieNG 14 One PieNG 15 One PieNG 16 One PieNG 17 One PieNG 18 One Pie…

Python实现哈里斯鹰优化算法(HHO)优化LightGBM分类模型(LGBMClassifier算法)项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档视频讲解&#xff09;&#xff0c;如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 2019年Heidari等人提出哈里斯鹰优化算法(Harris Hawk Optimization, HHO)&#xff0c;该算法有较强的全…

Chapter4:频率响应法(中)

第四章:频率响应法 Exercise4.13 已知控制系统的开环对数幅频渐近特性如下,确定各最小相位系统的开环传递函数。 解: 【图 ( a ) ({\rm a}) (a)】 确定系统积分环节或微分环节个数。 因为对数幅频渐近特性曲线的低频渐近线的斜率为

行为型模式-责任链模式

责任链模式 概述 在现实生活中&#xff0c;常常会出现这样的事例&#xff1a;一个请求有多个对象可以处理&#xff0c;但每个对象的处理条件或权限不同。例如&#xff0c;公司员工请假&#xff0c;可批假的领导有部门负责人、副总经理、总经理等&#xff0c;但每个领导能批准…

【SpringMVC】| 使用SpringMVC实现文件上传 | 下载功能

MVC目录 一. &#x1f981; 前言二. &#x1f981; 文件上传 & 下载1. 文件上传Ⅰ. 上传单个文件Ⅱ. 上传多个文件Ⅲ. 异步上传Ⅳ. 跨服务器上传1. 添加跨服上传依赖2. 创建控制器方法 2. 文件下载 三. &#x1f981; 总结 一. &#x1f981; 前言 SpringMVC是一个Web框架…

Qt的UI入门

二、UI入门 1. QWidget类 QWidget类是Qt中所有组件和窗口的基类&#xff0c;其内部规定了组件和窗口的基本规则和功能。 Qt中每个属性的文档中都有Access functions部分&#xff0c;表示其支持的读写&#xff08;getter和setter&#xff09;函数&#xff0c;Qt中的getter和sett…

Redis实现延迟队列方法介绍

延迟队列&#xff0c;顾名思义它是一种带有延迟功能的消息队列。那么&#xff0c;是在什么场景下我才需要这样的队列呢&#xff1f; 1. 背景 我们先看看以下业务场景&#xff1a; 当订单一直处于未支付状态时&#xff0c;如何及时的关闭订单如何定期检查处于退款状态的订单是…

神秘的IP地址8.8.8.8地址到底是什么?为什么会被用作DNS服务器地址呢?

当我们在配置网络连接或者路由器时&#xff0c;经常会遇到需要填写DNS服务器地址的情况。而在这些情况下&#xff0c;很多人都会听到一个神秘的数字地址&#xff1a;8.8.8.8。那么&#xff0c;这个地址到底是什么&#xff0c;为什么会被用作DNS服务器地址呢&#xff1f;本文将详…

分流稳压器TL431/TLV431

分流稳压器&#xff08;Shunt Regulator&#xff09;指的是依靠调节Ik电流来稳定输出电压&#xff0c;分流指的就是Ik来分流。 分流稳压器&#xff0c;也叫做并联电压稳压器&#xff0c;相对地&#xff0c;还有串联电压稳压器。 1、常见型号 TL431TLV431Vref2.5V1.24VVoutVref…

作为一个java工程师,你还记得java的基本数据类型有那些吗?他们的取值范围是多少?

Java是一种强类型编程语言&#xff0c;因此所有的变量都必须先声明后使用。Java基本数据类型指的是Java语言中最基本的数据类型&#xff0c;包括整型、浮点型、字符型、布尔型等。 Java基本数据类型一共有8种&#xff0c;它们分别是&#xff1a; byte&#xff08;字节型&#…