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

本文详细介绍了在Windows系统上安装和配置OpenVPN服务端和客户端的步骤,包括安装过程、配置文件修改、防火墙设置以及连通性测试。在服务端,重点讲解了生成证书和密钥、配置8080端口等操作;在客户端,强调了配置文件的复制和修改。常见问题部分解答了客户端报错找不到证书的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


前言

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
要在Windows系统上安装并配置OpenVPN,请按照以下步骤操作: ### 安装 OpenVPN **第一步:下载 OpenVPN** 访问 OpenVPN 的官方网站 (https://openvpn.net/) 下载适用于 Windows 系统的 OpenVPN 安装包。 **第二步:运行安装程序** 双击下载的 `.exe` 文件启动安装向导。 **第三步:完成安装** 根据提示选择默认选项进行安装即可。通常情况下,可以选择“典型”或“完全”安装,并允许添加到系统路径中以便于在命令行中直接使用 OpenVPN 工具。 ### 配置 OpenVPN 安装完成后,需要生成配置文件以及设置服务器和客户端证书等信息。以下是基本的配置过程: #### 创建 OpenVPN 配置文件 (`server.conf` 或 `client.conf`) 打开文本编辑器(如 Notepad++、Sublime Text 等),创建一个新的配置文件。下面是一个简单的示例配置用于创建一个本地服务器端口443的例子: ```plaintext dev tun proto tcp port 443 ca ca.crt cert server.crt key server.key dh dh2048.pem server 192.168.1.0 255.255.255.0 push "redirect-gateway def1 bypass-dhcp" keepalive 10 120 tls-auth ta.key 0 # This is the same as the name of your .key file without ".key" at the end. cipher AES-256-CBC auth SHA256 verb 3 ``` 这里,你需要替换上述示例中的 `ca.crt`, `server.crt`, `server.key`, 和 `ta.key` 文件名及内容。 #### 获取 SSL 证书 为了使服务器能够验证客户端身份并安全地连接,您需要获取或自动生成一对 CA (Certificate Authority) 和服务器证书。通常,这一步骤包括: 1. **生成 CA**:使用 OpenSSL 来生成 CA。 ```bash openssl genrsa -out ca-key.pem 2048 openssl req -x509 -new -nodes -key ca-key.pem -sha256 -days 3650 -out ca.crt ``` 2. **生成服务器证书和私钥**:基于您的域名或IP地址生成。 ```bash openssl genrsa -out server-key.pem 2048 echo "CN=localhost" | openssl req -new -sha256 -key server-key.pem -out server.csr openssl x509 -req -in server.csr -CA ca.crt -CAkey ca-key.pem -set_serial 01 -out server.crt ``` #### 验证配置文件 确认所有参数都已正确填写,并检查是否有语法错误。 #### 运行 OpenVPN 在命令行中输入以下命令开始服务器: ``` cd \path\to\your\openvpn\folder openvpn --config path\to\your\configuration_file.ovpn ``` 对于客户端,使用类似于的服务: ``` openvpn --config path\to\your\client_configuration_file.ovpn ``` ### 使用 OpenVPN - 对于服务器,确保其正在运行并且正确配置了网络规则以允许从外部设备连接。 - 对于客户端,通过将相应的配置文件指定给 `openvpn` 命令来进行连接。 ###
评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

二进制怪兽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值