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 模式下点菜单启动时没问题。

相关推荐
筑梦之路10 小时前
Jenkins 构建部署多模块Java应用流水线参考——筑梦之路
java·运维·jenkins
秋风不问归客10 小时前
linux 网络相关命令 及常用场景
linux·服务器·网络
金牌归来发现妻女流落街头10 小时前
【线程池 + Socket 服务器】
java·运维·服务器·多线程
牛奶咖啡1310 小时前
Linux文件快照备份工具rsnapshot的实践教程
linux·服务器·文件备份·文件快照备份·rsnapshot·定时备份本地或远程文件·查看指定命令的完整路径
大模型铲屎官10 小时前
【操作系统-Day 47】揭秘Linux文件系统基石:图解索引分配(inode)与多级索引
linux·运维·服务器·人工智能·python·操作系统·计算机组成原理
乾元11 小时前
Network-as-Code:把 HCIE / CCIE 实验脚本转为企业级 CI 工程化流程
运维·网络·人工智能·安全·web安全·ai·架构
拾光Ծ11 小时前
Linux 进程控制:进程终止与等待・waitpid 选项参数与状态解析(告别僵尸进程)
linux·运维·服务器·进程控制
2501_9307992411 小时前
vllm部署时的nginx 配置
运维·nginx·vllm
linux修理工11 小时前
ubuntu 2204 tsinghua
linux·运维·ubuntu
琥珀.11 小时前
查看linux下java服务进程是否正常
java·linux·运维