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

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

前言

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

openvpn就是开源的实现。

一、Windows Openvpn方案

客户端:192.168.111.130

服务端:192.168.0.164

构建前:

client---->server 通过

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
相关文章
|
7月前
|
Windows
构建布局良好的Windows程序
构建布局良好的Windows程序
|
7月前
|
缓存 网络协议 数据安全/隐私保护
[运维笔记] - (命令).Windows server常用网络相关命令总结
[运维笔记] - (命令).Windows server常用网络相关命令总结
449 0
|
18天前
|
弹性计算 开发框架 安全
基于云效 Windows 构建环境和 Nuget 制品仓库进行 .Net 应用开发
本文将基于云效 Flow 流水线 Windows 构建环境和云效 Packages Nuget 制品仓库手把手教你如何开发并部署一个 .NET 应用,从环境搭建到实战应用发布的详细教程,帮助你掌握 .NET 开发的核心技能。
|
2月前
|
监控 Ubuntu Linux
视频监控笔记(五):Ubuntu和windows时区同步问题-your clock is behind
这篇文章介绍了如何在Ubuntu和Windows系统中通过设置相同的时区并使用ntp服务来解决时间同步问题。
87 4
视频监控笔记(五):Ubuntu和windows时区同步问题-your clock is behind
|
5月前
|
存储 安全 网络安全
Windows安全防护:构建多层防御体系,守护系统安全
Windows系统的安全性对于保护用户个人信息和企业业务连续运行至关重要。面对日益严峻的网络威胁,我们需要构建多层防御体系,通过采用系统内置的安全防护措施、用户可采取的安全保护措施以及加强用户教育与培训、实施严格的访问控制策略、定期进行系统安全评估与审计、建立应急响应机制以及采用先进的安全防护技术等方式
565 57
|
5月前
|
云安全 安全 网络安全
Windows安全:构建稳固的防线,守护数字世界
随着数据保护法规的不断加强,Windows系统需要更好地满足法规遵从和合规性要求。未来,Windows系统将更加注重用户隐私保护和数据安全合规性方面的功能提升
187 54
|
5月前
|
Linux Apache C++
FFmpeg开发笔记(三十五)Windows环境给FFmpeg集成libsrt
该文介绍了如何在Windows环境下为FFmpeg集成SRT协议支持库libsrt。首先,需要安装Perl和Nasm,然后编译OpenSSL。接着,下载libsrt源码并使用CMake配置,生成VS工程并编译生成srt.dll和srt.lib。最后,将编译出的库文件和头文件按照特定目录结构放置,并更新环境变量,重新配置启用libsrt的FFmpeg并进行编译安装。该过程有助于优化直播推流的性能,减少卡顿问题。
146 2
FFmpeg开发笔记(三十五)Windows环境给FFmpeg集成libsrt
|
5月前
|
存储 安全 数据安全/隐私保护
Windows 32 汇编笔记(一):基础知识
Windows 32 汇编笔记(一):基础知识
|
4月前
|
存储 编译器 Linux
Windows 32 汇编笔记(二):使用 MASM
Windows 32 汇编笔记(二):使用 MASM
|
5月前
|
JavaScript IDE 持续交付
阿里云云效产品使用合集之如何配置 Node.js构建任务让其在Windows环境中进行
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。

相关课程

更多