新手向导:轻松离线搭建最新版OpenVPN(含一键安装脚本)

简介: OpenVPN 是常用的虚拟私有网络工具,通过 Docker 搭建非常简单。但常用的 kylemanna/openvpn 镜像已三年未更新,停留在 OpenVPN 2.4 版本。为了升级到最新版本(如 2024 年 2 月发布的 v2.6.9),可以通过官方开源社区获取最新安装包并手动编译安装。步骤包括安装依赖、下载并编译 OpenSSL 和 OpenVPN、生成证书和配置文件等。此外,GitHub 上有一键安装脚本 openvpn-install.sh,简化了安装过程,但其版本可能不是最新的。安装完成后,还需配置 iptables 以确保客户端能正常使用代理网络。

最常见的openvpn搭建方式就是通过docker,非常的简单、方便。如果是搭建过openvpn应该会知道这个镜像kylemanna/openvpn,但是它一直没有更新了,也就是三年前更新过然后就再也没更新过了,版本停留在openvpn2.4的版本。


添加图片注释,不超过 140 字(可选)


那么如何升级openvpn到最新版本呢?可以到官方的开源社区找到最新的安装版本,可以看到最近一次更新是在2024年2月份openvpn v2.6.9。可以看到2.6.7  2.6.8  2.6.9 官方的开源社区更新还是很频繁的。

添加图片注释,不超过 140 字(可选)


以下是详细的安装步骤:

一、离线包安装步骤

1、openvpn安装

  • 官方下载最新版本openvpn
  • 安装前先安装以下依赖,不然会报错

apt install -y gcc libnl-genl-3-dev  libcap-ng-dev pkg-config liblzo2-dev libssl-dev libpam0g-dev ./configure

  • 安装openssl

checking additionally if OpenSSL is available and version >= 1.0.2... configure: error: OpenSSL version too old

  • 下载编译安装,opensslv1.1.1最新的一个版本是1.1.1w。如果你的版本是3.x好像也不行,只能是1.1.1x的版本。

wget https://www.openssl.org/source/old/1.1.1/openssl-1.1.1w.tar.gztar -zxvf openssl-1.1.1w.tar.gz cd openssl-1.1.1w apt install -y gcc make zlib1g-dev ./config --prefix=/usr/local/openssl shared zlib make -j32  (j32使用多线程,比make会快一些) make install

  • 备份旧版本openssl,设置新版本

mv /usr/bin/openssl /usr/bin/openssl.bak ln -sv /usr/local/openssl/bin/openssl /usr/bin/openssl #更新动态链接库数据 echo "/usr/local/openssl/lib" >>sudo /etc/ld.so.conf ldconfig -v openssl version

如果openssl version报以下错

openssl: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory

继续执行以下命令

sudo ln -sv /usr/local/openssl/lib/libssl.so.1.1 /usr/lib/ sudo ln -sv /usr/local/openssl/lib/libcrypto.so.1.1 /usr/lib/ openssl version

如果openssl version已经是最新版本,但还是提示too old可以执行以下命令:

apt install libssl-dev

执行就可以了,最后,确认一下版本:

# openssl version OpenSSL 1.1.1w  11 Sep 2023

继续./configure

configure: error: No compatible LZ4 compression library found. Consider --disable-lz4

如果报以上错误的话就执行:

./configure --disable-lz4

如果正常就成功了,如果报以下错误:

configure: error: libpam required but missing

apt install libpam0g-dev

执行后应该就没错了  

接着就是执行

make -j32 make install


添加图片注释,不超过 140 字(可选)


看到以上结果就完成安装了,也可以看看openvpn的版本信息。

openvpn --version


添加图片注释,不超过 140 字(可选)


2、证书生成

  • 初始化密钥

cd  /usr/share/easy-rsa ./easyrsa init-pki

初始化,程序将自动创建pki并生成相应的密钥文件


添加图片注释,不超过 140 字(可选)


完成后会生成pki目录


添加图片注释,不超过 140 字(可选)



添加图片注释,不超过 140 字(可选)


  • 编辑easyrsa的配置文件 vars:


添加图片注释,不超过 140 字(可选)


set_var EASYRSA_REQ_COUNTRY     "hanko" set_var EASYRSA_REQ_PROVINCE    "hanko" set_var EASYRSA_REQ_CITY        "hanko" set_var EASYRSA_REQ_ORG         "hanko" set_var EASYRSA_REQ_EMAIL       "hanko@hanko.com" set_var EASYRSA_REQ_OU          "hanko" set_var EASYRSA_KEY_SIZE        2048 set_var EASYRSA_ALGO            "rsa" set_var EASYRSA_DIGEST          "sha256" set_var EASYRSA_CA_EXPIRE       365000 set_var EASYRSA_CERT_EXPIRE     365000 set_var EASYRSA_CERT_RENEW      18000 set_var EASYRSA_CRL_DAYS        6000

  • 输入以下命令,生成根证书:

./easyrsa build-ca


添加图片注释,不超过 140 字(可选)


PEM pass phrase,这个就是根证书密码,后面好几个步骤需要用到它,出现 “Common Name” 的时候直接敲回车默认即可。

  • 服务器证书生成:

./easyrsa gen-req server nopass


添加图片注释,不超过 140 字(可选)


Common Name直接回车使用默认名称:server

  • 签发服务器证书:

./easyrsa sign-req server server


添加图片注释,不超过 140 字(可选)


出现 “Type the word ‘yes’ to continue” 的时候输入: yes

然后输入刚才在上一步设置的根证书密码。

  • 生成Diffie-Hellman

./easyrsa gen-dh

至此,我们就完成了全部所需证书文件的生成,下面将这些零散的文件集中聚合到 keys 目录中去:

  • 把文件复制到 /etc/openvpn

mkdir -p /etc/openvpn cp /usr/share/easy-rsa/pki/ca.crt  /etc/openvpn/ cp /usr/share/easy-rsa/pki/private/server.key  /etc/openvpn/ cp /usr/share/easy-rsa/pki/issued/server.crt  /etc/openvpn/ cp /usr/share/easy-rsa/pki/dh.pem  /etc/openvpn/dh2048.pem cp /usr/share/easy-rsa/pki/issued/y-client.crt  /etc/openvpn/ cp /usr/share/easy-rsa/pki/private/y-client.key  /etc/openvpn/

  • tls密钥生成ta.key

tls密钥生成:openvpn --genkey secret ta.key这个密钥由openvpn主程序生成,起作用是用密钥取代密码输入

openvpn --genkey secret ta.key

  • 复制server.conf配置文件

cp /usr/local/src/openvpn-2.6.8/sample/sample-config-files/server.conf /etc/openvpn/ port 1194 proto udp dev tun ca ca.crt cert server.crt key server.key   dh dh2048.pem server 10.8.0.0 255.255.255.0 ifconfig-pool-persist ipp.txt keepalive 10 120 tls-auth ta.key 0 cipher AES-256-CBC persist-key persist-tun status openvpn-status.log verb 3 explicit-exit-notify 1

  • 启动openvpn

openvpn --config /etc/openvpn/server.conf

  • 生成client证书

./easyrsa gen-req client nopass ./easyrsa sign-req client client cp /usr/share/easy-rsa/pki/private/client.key  /etc/openvpn/ cp /usr/share/easy-rsa/pki/issued/client.crt  /etc/openvpn/

  • client.ovpn

client dev tun proto udp remote 10.9.2.79 1194 resolv-retry infinite nobind persist-key persist-tun ca ca.crt cert client.crt key client.key remote-cert-tls server tls-auth ta.key 1 cipher AES-256-CBC verb 3

  • 安装windows或linux版本客户端,使用client.ovpn文件生成的client.crt、client.key、ta.key连接openvpn服务端


添加图片注释,不超过 140 字(可选)


至此安装就完成了。

二、一键安装脚本


⭐⭐⭐⭐⭐

重点来了↓↓↓

一键安装,来了!!!

如果感到上面的命令太多、太麻烦。那么可以看看这个github上的大牛们做成了一键安装的命令openvpn-install.sh,一键安装。


添加图片注释,不超过 140 字(可选)



添加图片注释,不超过 140 字(可选)


安装完客户端文件也会自动生成,直接下载使用就可以了。

p.s.一键安装比较简单,但也存在一个问题就是版本不是最新的,脚本使用的是apt install方式安装openvpn,apt install源最新版本是2.5.x。截止2024年3月最新版本应该是v2.6.9。


三、相关问题

  • 安装好后,客户端正常连接至服务器,但无法使用代理网络。

增加以下配置:

iptables -t nat -A POSTROUTING -s 10.8.0.0/16 -o eth0 -j MASQUERADE




目录
相关文章
|
4天前
|
调度 云计算 芯片
云超算技术跃进,阿里云牵头制定我国首个云超算国家标准
近日,由阿里云联合中国电子技术标准化研究院主导制定的首个云超算国家标准已完成报批,不久后将正式批准发布。标准规定了云超算服务涉及的云计算基础资源、资源管理、运行和调度等方面的技术要求,为云超算服务产品的设计、实现、应用和选型提供指导,为云超算在HPC应用和用户的大范围采用奠定了基础。
179562 18
|
11天前
|
存储 运维 安全
云上金融量化策略回测方案与最佳实践
2024年11月29日,阿里云在上海举办金融量化策略回测Workshop,汇聚多位行业专家,围绕量化投资的最佳实践、数据隐私安全、量化策略回测方案等议题进行深入探讨。活动特别设计了动手实践环节,帮助参会者亲身体验阿里云产品功能,涵盖EHPC量化回测和Argo Workflows量化回测两大主题,旨在提升量化投研效率与安全性。
云上金融量化策略回测方案与最佳实践
|
13天前
|
人工智能 自然语言处理 前端开发
从0开始打造一款APP:前端+搭建本机服务,定制暖冬卫衣先到先得
通义灵码携手科技博主@玺哥超carry 打造全网第一个完整的、面向普通人的自然语言编程教程。完全使用 AI,再配合简单易懂的方法,只要你会打字,就能真正做出一个完整的应用。
9157 23
|
17天前
|
Cloud Native Apache 流计算
资料合集|Flink Forward Asia 2024 上海站
Apache Flink 年度技术盛会聚焦“回顾过去,展望未来”,涵盖流式湖仓、流批一体、Data+AI 等八大核心议题,近百家厂商参与,深入探讨前沿技术发展。小松鼠为大家整理了 FFA 2024 演讲 PPT ,可在线阅读和下载。
4846 12
资料合集|Flink Forward Asia 2024 上海站
|
17天前
|
自然语言处理 数据可视化 API
Qwen系列模型+GraphRAG/LightRAG/Kotaemon从0开始构建中医方剂大模型知识图谱问答
本文详细记录了作者在短时间内尝试构建中医药知识图谱的过程,涵盖了GraphRAG、LightRAG和Kotaemon三种图RAG架构的对比与应用。通过实际操作,作者不仅展示了如何利用这些工具构建知识图谱,还指出了每种工具的优势和局限性。尽管初步构建的知识图谱在数据处理、实体识别和关系抽取等方面存在不足,但为后续的优化和改进提供了宝贵的经验和方向。此外,文章强调了知识图谱构建不仅仅是技术问题,还需要深入整合领域知识和满足用户需求,体现了跨学科合作的重要性。
|
25天前
|
人工智能 自动驾驶 大数据
预告 | 阿里云邀您参加2024中国生成式AI大会上海站,马上报名
大会以“智能跃进 创造无限”为主题,设置主会场峰会、分会场研讨会及展览区,聚焦大模型、AI Infra等热点议题。阿里云智算集群产品解决方案负责人丛培岩将出席并发表《高性能智算集群设计思考与实践》主题演讲。观众报名现已开放。
|
13天前
|
人工智能 容器
三句话开发一个刮刮乐小游戏!暖ta一整个冬天!
本文介绍了如何利用千问开发一款情侣刮刮乐小游戏,通过三步简单指令实现从单个功能到整体框架,再到多端优化的过程,旨在为生活增添乐趣,促进情感交流。在线体验地址已提供,鼓励读者动手尝试,探索编程与AI结合的无限可能。
三句话开发一个刮刮乐小游戏!暖ta一整个冬天!
|
13天前
|
消息中间件 人工智能 运维
12月更文特别场——寻找用云高手,分享云&AI实践
我们寻找你,用云高手,欢迎分享你的真知灼见!
991 66