一键部署超级简单易用的openvpn服务器,支持多证书+多账号[密码]认证

一. 服务器端部署

项目地址:https://github.com/guoew/openvpn-install

1.1. 下载安装

# git clone https://github.com/guoew/openvpn-install.git
# cd openvpn-install && bash openvpn-install.sh
Welcome to this OpenVPN "road warrior" installer! I need to ask you a few questions before starting the setup.
You can leave the default options and just press enter if you are ok with them. First, provide the IPv4 address of the network interface you want OpenVPN
listening to.
IP address: 172.27.0.2 #默认获取本机ip,直接回车 This server is behind NAT. What is the public IPv4 address or hostname?
Public IP address / hostname: 18.24.64.250 #输入主机公网ip Which protocol do you want for OpenVPN connections?
1) UDP (recommended)
2) TCP
Protocol [1-2]: 1 #选择连接协议 What port do you want OpenVPN listening to?
Port: 1194 #设置openvpn监听端口 Which DNS do you want to use with the VPN?
1) Current system resolvers
2) 1.1.1.1
3) Google
4) OpenDNS
5) Verisign
DNS [1-5]: 1 #选择DNS Finally, tell me your name for the client certificate.
Please, use one word only, no special characters.
Client name: client #设置客户端名称 Okay, that was all I needed. We are ready to set up your OpenVPN server now.
Press any key to continue... #任意键继续
...
An updated CRL has been created.
CRL file: /etc/openvpn/server/easy-rsa/pki/crl.pem Created symlink /etc/systemd/system/multi-user.target.wants/openvpn-iptables.service → /etc/systemd/system/openvpn-iptables.service.
Created symlink /etc/systemd/system/multi-user.target.wants/openvpn-server@server.service → /lib/systemd/system/openvpn-server@.service. Finished! #最终看到Finished时表示安装完毕 Your client configuration is available at: /root/client.ovpn #客户端配置文件路径
If you want to add more clients, you simply need to run this script again!

将客户端配置文件 /root/client.ovpn,下载到本地以备客户端使用

1.2. 添加账号

在openvpn目录下的userfile.sh中添加用户和密码,以空格隔开

# cat /etc/openvpn/userfile.sh
guoew guoew123
yakexi yakexi123

截止现在一个超级简单的openvpn服务就已经搭建好了,接下来将使用客户端连接openvpn服务器(以win10为例)

二. 客户端部署使用

2.1. 安装openvpn客户端

  1. 客户端下载地址:https://swupdate.openvpn.org/community/releases/openvpn-install-2.4.0-I602.exe

    安装步骤略(可自定义安装路径)

2.2. 配置客户端

将安装好的客户端打开,点击Import file 把准备好的客户端配置文件导入进去。

2.3. 连接openvpn服务器

打开客户端,点击Connect,使用服务器端已添加的账号登录


END

附:

安装完毕后,再次执行脚本openvpn-install.sh 会有四个菜单选项(添加、撤销、卸载、退出),可根据自身实际情况应用,如下:

Looks like OpenVPN is already installed.

What do you want to do?
1) Add a new user
2) Revoke an existing user
3) Remove OpenVPN
4) Exit
Select an option [1-4]:

这里有个不足之处是,当使用多证书时,账号是通用的。即同一个账号,可以应用于不同的证书。

如果想要不同用户使用不同的证书进行登录[无账号],欢迎访问原项目地址:

https://github.com/Nyr/openvpn-install

一键部署open***服务的更多相关文章

  1. 一键部署nginx 服务

    一键部署nginx服务 老样子安装包都拖到opt里! 脚本如下 source 执行! #!/bin/bash #======编译安装nginx服务====== #安装所需开发包和编译环境.编译器 yu ...

  2. Docker实战 | 第二篇:IDEA集成Docker插件实现一键自动打包部署微服务项目,一劳永逸的技术手段值得一试

    一. 前言 大家在自己玩微服务项目的时候,动辄十几个服务,每次修改逐一部署繁琐不说也会浪费越来越多时间,所以本篇整理通过一次性配置实现一键部署微服务,实现真正所谓的一劳永逸. 二. 配置服务器 1. ...

  3. 容器镜像服务联手 IDE 插件,实现一键部署、持续集成与交付

    容器技术提供了一种标准化的交付方式,将应用的代码以及代码环境依赖都打包在一起,成为一个与环境无关的交付物,可以被用在软件生命周期的任何阶段,彻底改变了传统的软件交付方式. 甚至可以说,是在容器技术之后 ...

  4. 容器镜像服务 联手 IDE 插件,实现一键部署、持续集成与交付

    容器技术提供了一种标准化的交付方式,将应用的代码以及代码环境依赖都打包在一起,成为一个与环境无关的交付物,可以被用在软件生命周期的任何阶段,彻底改变了传统的软件交付方式. 甚至可以说,是在容器技术之后 ...

  5. netcore一键部署到linux服务器以服务方式后台运行

    @font-face { font-family: octicons-link; src: url("data:font/woff;charset=utf-8;base64,d09GRgAB ...

  6. 用Ant来做一键部署

    部署Java Web项目到远程服务器上,以前经常用的操作方式: 1.在eclipse上导出项目war包 2.把war包通过ftp方式传到服务器上,比如Tomcat的webapps目录下 3.启动tom ...

  7. Jenkins实现测试环境到生产环境一键部署(Windows)

    前言: 因为dotnet在发布站点后,然后再上传服务时,会因为各种的网速问题,导致站点瞬间挂掉!那么通过一键部署,先在测试站点测试好的文件,复制到正式站点上的一个缓冲区,进行预热配置,之后再本机进行文 ...

  8. Centos 环境一键部署脚本(shell脚本)

    谨以此文纪念吊炸天的Centos环境一键部署方案的新鲜出炉 辛苦大半年,产品准备上线了,BOSS亲自体验安装部署,看着超过200+页的安装文档直接崩溃了(需要部署23个基础服务),经历了超过3个小时的 ...

  9. ASP.NET Core 一步步搭建个人网站(2)_一键部署和用户注册登录

    俗话说,磨刀不费砍柴工.为了更方便的进行项目管理,我们先将个人网站项目配置一下,满足以下2个目标: VS2017中支持Git存储库,绑定Github项目,实现本地VS程序与线上Github一键代码提交 ...

随机推荐

  1. MySQL分页查询的性能优化

    MySQL limit分页查询的性能优化 Mysql的分页查询十分简单,但是当数据量大的时候一般的分页就吃不消了. 传统分页查询:SELECT c1,c2,cn… FROM table LIMIT n ...

  2. 信息竞赛进阶指南--区间最值问题的ST算法

    void ST_prework() { for (int i = 1; i <= n; i++) f[i][0] = a[i]; int t = log(n) / log(2) + 1; for ...

  3. 全网最简单明了的MySQL连接Eclipse方法(JDBC详细安装方式及简单操作)2020新版

    Step 1 你得有Eclipse 没有出门右拐,我教不了你. Step 2 你得有Mysql MySQL的详细安装过程,我在另一篇博客中给出.戳我 Step 3 安装JDBC 可以去官网下,如果用的 ...

  4. HDU2937 YAPTCHA(威尔逊定理)

    YAPTCHA Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Subm ...

  5. CodeForces - 260C

    CodeForces - 260C Little Vasya had n boxes with balls in the room. The boxes stood in a row and were ...

  6. 跟哥一起学Python(1) - python简介

    01—写在前面 我做了十几年的程序猿,码过代码.带过项目.做过产品经理.做过软件架构师.因为我是做通信设备软件的,面向底层操作系统,所以我的工作主要以C语言为主.Python在我的工作中通常用来写一些 ...

  7. Python第三方库之Numpy库

    概述 Numpy  最基本的库,是用于处理含有同种元素的多维数组运算的第三方库 —科学计算包,python数据分析及科学计算的基础库,几乎支撑所有其他库 —支持N维数组运算.处理大型矩阵.成熟的广播函 ...

  8. Java 面向对象和封装

    目录 面向对象思想的概述 类和对象的关系 什么是类 什么是对象 类和对象的关系 局部变量和成员变量的区别 this关键字 构造方法 一个标准的类 面向对象思想的概述 面向过程:当需要实现一个功能的时候 ...

  9. LeetCode--To Lower Case && Remove Outermost Parentheses (Easy)

    709. To Lower Case(Easy)# Implement function ToLowerCase() that has a string parameter str, and retu ...

  10. C# 9.0 新特性预览 - 空参数校验

    C# 9.0 新特性预览 - 空参数校验 前言 随着 .NET 5 发布日期的日益临近,其对应的 C# 新版本已确定为 C# 9.0,其中新增加的特性(或语法糖)也已基本锁定,本系列文章将向大家展示它 ...