Windows OpenVPN的安装之服务器自动启动连接

简介

OpenVPN 不管是服务器还是客户端,都是安装相同的软件。仅仅是配置时,采用哪个配置文件的问题。它带了两个配置文件的例子,一个是 client.ovpn,一个是 server.ovpn。直接拿过来修改就好了。具体如何配置,请看本博客之前的文章。

这里描述的是 Windows 上面安装 OpenVPN。

正常安装完成后,它有个 GUI,会在任务栏产生一个图标。鼠标右键点图标,会有菜单。选择菜单里面的【连接】,OpenVPN 开始执行连接操作。

对于服务器来说,同样需要点这个【连接】菜单,才算启动了服务器。然后客户端才可以连接过来。也就是说,需要操作者登录 Windows 桌面,去点那个菜单。

如何自动启动

那么,如何自动启动这个连接,不需要操作者去点菜单?网上查到的资料很简单,说是把配置文件放到 config-auto 文件夹底下。

我这样做了,没有任何效果。

首先,我做好了一个配置文件,放到 config 目录底下,然后鼠标去点【连接】菜单,连接建立正常,没有任何问题。

然后,我把这个配置,放到 config-auto 目录下,重新启动电脑,然后测试发现,连接并没有建立。

网上查了一堆资料,各种说法都有,但都不对。其实这里有个概念的问题,网上大多没说清楚,只说操作。然后按照这些操作做,还是不行。

概念

OpenVPN 安装以后,在 Windows 的服务器里面,有一个服务,名为:OpenVPNService。这个去 Windows 的服务里面查看,应该能看到。这个服务应该是设置为自动启动的。

然后,这个服务,它是从 config-auto 里面查配置文件的。并且,配置文件的名字不重要,任何名字都行,只要它是 xxx.ovpn 这样的后缀名。

我遇到的问题

因为一开始并不明白这个概念,检查了 Windows 系统,有这个 OpenVPNService 服务,并且这个服务确实已经运行了,而且又在 config-auto 目录下放了配置文件,还是不行。并且,这个配置文件是放在 config 目录下,点菜单建立连接,能够正常工作的配置文件。所以我只能乱猜,以为是需要这个配置文件的文件名需要让 Service 知道,需要配置,又不知道去哪里配置。

问题的解决

后面发现,在 OpenVPN 的安装目录底下有一个 log 目录。这个目录底下有 xxx.log 文件。这个 xxx 就是配置文件的名字。如果曾经有个多个不同名字的配置文件,这里就有多个 xxx.log 文件。

打开对应的 log 文件发现一个错误提示:

DEPRECATED OPTION: --cipher set to 'AES-256-CBC' but missing in --data-ciphers (AES-256-GCM:AES-128-GCM:CHACHA20-POLY1305)

拿这个错误提示去问 ChatGPT,它说应该是:

配置文件里面有一行:cipher AES-256-CBC,应该改为:

data-ciphers AES-256-GCM:AES-128-GCM:CHACHA20-POLY1305:AES-256-CBC
data-ciphers-fallback AES-256-CBC

看起来合理。用上述两行去替换掉原来的那一行,重启服务。结果,仍然不行。再看 log,发现问题似乎和那个 fallback 有关。

去掉第二行(有 fallback 那一行),重启服务,好了!

总结:

  1. 概念:OpenVPN 安装了一个服务叫做 OpenVPNService,可以在 Windows 系统的服务里面看到;这个服务需要的配置文件放在 config-auto 目录下;配置文件的名称可以是任意文件名,后缀是 .ovpn 就说明它是 OpenVPN 的配置文件。

  2. 如果上述两个条件(1. 服务自动运行;2. 配置文件在正确目录下),仍然不行,应该去看 log 目录底下的 log 文件,看看问题在哪里。

  3. 关于那个 cipher 的问题:这一行是OpenVPN 安装后附带的例子配置文件带来的。但它是不正确的。不知道为何在 GUI 模式下点菜单启动时没问题。

相关推荐
骇客野人3 分钟前
用python实现一个查询当天天气的MCP服务器
服务器·开发语言·python
吾诺8 分钟前
如何在Linux中找到MySQL的安装目录
linux·运维·mysql
lijwsunyt11 分钟前
Ubuntu虚拟机部署OpenClaw全踩坑实录|本地访问+模型配置一站式解决
linux·运维·ubuntu
夜猫子ing11 分钟前
《UNIX高级环境编程》 第十四章 高级I/O(一文读懂UNIX下高级I/O)
运维·服务器·网络
钰衡大师22 分钟前
MySQL服务器表导入本地开发环境
服务器·mysql
L16247632 分钟前
Nginx+Keepalived 高可用集群实战笔记
运维·笔记·nginx
志栋智能34 分钟前
AI超自动化运维,让IT运维自动化门槛更低
运维·网络·人工智能·安全·自动化
我去流水了42 分钟前
【独家免费】【亲测】在linux下嵌入式linux的web http服务【Get、Post】,移植mongoose,post上传文件
linux·运维·前端
无籽西瓜a42 分钟前
Linux 文件权限与 chmod 详解
linux·服务器·后端
攻城狮在此44 分钟前
Rufus使用教程:Windows/Linux 系统启动盘制作
linux·服务器·windows