Linux Ubuntu系统安装OpenVPN服务

OpenVPN Ubuntu/Linux 服务端安装

官方文档:https://community.openvpn.net/openvpn/wiki/Openvpn24ManPage

介绍

嘿,今天我们要探讨的话题是OpenVPN——那个让你在互联网上以安全又私密的方式冲浪的神奇工具。

首先,你可能会问:“OpenVPN是什么呢?”嗯,让我用通俗易懂的语言解释一下。OpenVPN其实就像个爱心大使管家,它能在你和互联网之间建立一条加密的隧道,以确保你的所有网络通信都是私密的。就像你在冰激凌店里享受美味的时候,OpenVPN会像一个忠实的保镖一样,保护你的数据免受恶意网站和黑客的侵害。

现在你可能会问:“为什么我需要OpenVPN呢?”哦,我的朋友,让我告诉你一个故事。想象一下,你正在咖啡馆用公共Wi-Fi浏览网页,喝着香醇的咖啡,享受着舒适的环境。但你可曾想过,这个可爱的咖啡馆里是否有一些不太友好的人在窥探你的网络活动?嗯,这可不令人愉快。

这时候,OpenVPN就是你的救星。它会加密你的数据流量,使得即使有人想要窥探你的网络活动,他们也只能看到一堆无法理解的乱码。就像你的网络活动穿上了一件看不透的屏障装甲,让那些窥探者束手无策。

而且,OpenVPN还可以帮助你绕过地理限制,解锁那些因为版权或地域政策而被限制访问的网站和资源。它就像是一把神奇的钥匙,打开了通向互联网自由的大门。你可以尽情畅游全球各地的网站,体验不同文化的奇妙之旅。

当然,我必须提醒你,OpenVPN并不是万能的。它只是你保护个人隐私和数据安全的一个工具。你仍然需要采取其他良好的网络安全措施,比如使用强密码、定期更新软件等等。毕竟,互联网就像是一片浩瀚的大海,我们需要保持警惕,以确保航行的安全。

总之,OpenVPN就像是一位值得信赖的网络保镖,它能够保护你的数据不受侵害,并帮助你享受更加自由的互联网体验。无论你是在公共场所上网,还是追逐心仪的海外资源,OpenVPN都能为你提供一把安全可靠的通行证。现在,让我们一起握紧这个虚拟世界的金钥匙,畅游互联网的海洋吧!

下载openvpn的安装脚本

拉取脚本

curl -O https://raw.githubusercontent.com/angristan/openvpn-install/master/openvpn-install.sh

注意:此文件内需要下载EasyRSA文件,是github内的,可能因为网络问题拉取不下来,但是此脚本是正常运行的,运行的服务可能会有问题,也可以微信公众号搜索:一颗星宇宙,发送:vpn,获取脚本,脚本内的EasyRSA文件下载地址变成国内地址了

授于文件权限

chmod +x openvpn-install.sh

执行脚本命令

sudo ./openvpn-install.sh

安装选项默认就行

安装结果

image-20230821180318634

会在当前目录生成客户端配置

image-20230823094545945

查看进程

 ps -ef | grep vpn

打印

nobody    684710       1  0 18:00 ?        00:00:00 /usr/sbin/openvpn --daemon ovpn-server --status /run/openvpn/server.status 10 --cd /etc/openvpn --script-security 2 --config /etc/openvpn/server.conf --writepid /run/openvpn/server.pid

IP地址查询

ip addr

会多出一个tun0的网口

image-20230821184308024

查看OpenVPN运行状态

systemctl status openvpn-server@server.service

image-20230822143411334

OpenVPN安装目录,配置文件也在此目录下

 cd /etc/openvpn/

image-20230821181553171

如果客户端运行后连接不上服务端,开启nat转发

  1. 修改/etc/sysctl.conf文件增加net.ipv4.ip_forward = 1 ,执行 sysctl -p配置重新生效
  2. 修改iptables规则

设置nat转发规则,SERVER-IP是服务器的公网IP

iptables -t nat -A POSTROUTING -o venet0 -j SNAT --to SERVER-IP  
iptables -A FORWARD -i venet0 -o tun0 -m state --state RELATED,ESTABLISHED -j ACCEPT  
iptables -A FORWARD -i tun0 -o venet0 -j ACCEPT

转发上网:

iptables -A FORWARD -s 10.8.0.0/24 -j ACCEPT  
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT 

或者执行此命令

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j MASQUERADE

保存规则:service iptables save

重启(初始化):systemctl restart iptables

如果没有iptables则需要安装

安装iptables:

yum install -y iptables
yum install iptables-services

设置开机启动:systemctl enable iptables

查询规则:iptables -L --line-numbers OR iptables -L -t nat

删除规则:iptables -D FORWARD 1 ,1位行号



下篇:OpenVPN客户端安装:https://blog.csdn.net/A_yonga/article/details/132456307

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/89628.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

用正则处理Unicode 编码的文本

Unicode(中文:万国码、国际码、统一码、单一码)是计算机科学领域里的一项业界标准。它对世界上大部分的文字进行了整理、编码。Unicode 使计算机呈现和处理文字变得简单。 现在的 Unicode 字符分为 17 组编排,每组为一个平面&…

什么是住宅ip,静态和动态怎么选?

上文我们介绍了数据中心代理,这次我们来介绍下住宅代理ip,住宅代理ip分类两种类型:静态住宅代理和动态住宅代理,他们有什么区别又能用在什么场景呢?我们先从他们是如何运作开始。 一、什么是住宅代理ip isp住宅代理i…

C++内存模型

目录 内存模型分类 堆和栈的区别 C中new的工作过程 堆和栈的区别 为什么堆区要比栈区大 内存模型分类 文本段(ELF)(数据区):主要用于存放我们编写的代码,但是不是按照代码文本的形式存放,而…

打开软件提示msvcp140.dll丢失的解决方法,msvcp140主要丢失原因

今天,我将为大家介绍一种非常常见的问题——msvcp140.dll丢失。这个问题可能会导致许多应用程序无法正常运行,甚至崩溃。但是,请不要担心,我会为大家提供5种解决方法,帮助大家轻松解决问题。 首先,我们来看…

分布式搜索引擎----elasticsearch

目录 1、初识elasticsearch 1.1、什么是elasticsearch 1.2.ELK技术栈 2、正向索引和倒排索引 2.1、正向索引 2.2、倒排索引 2.3、正向索引和倒排索引的区别 3、elasticsearch中的概念理解 3.1、文档和字段 3.2、索引和映射 3.3、mysql与elasticsearch 1、初识elasti…

【C++11】future和async等

C11的future和async等关键字 1.async和future的概念 std::async 和 std::future 是 C11 引入的标准库功能,用于实现异步编程,使得在多线程环境中更容易处理并行任务。它们可以帮助你在不同线程中执行函数,并且能够方便地获取函数的结果。 在…

Spring Boot(Vue3+ElementPlus+Axios+MyBatisPlus+Spring Boot 前后端分离)【二】

😀前言 本篇博文是关于Spring Boot(Vue3ElementPlusAxiosMyBatisPlusSpring Boot 前后端分离)【二】的,希望你能够喜欢 🏠个人主页:晨犀主页 🧑个人简介:大家好,我是晨犀,希望我的文…

命令全局安装 ts

1.全局安装 typeScript编译 npm install -g typescript2.查看版本 tsc-v安装成功的画面

Spring与Mybatis整合aop整合pageHelper分页插件

前言 Spring与MyBatis整合的意义在于提供了一种结合优势的方式,以便更好地开发和管理持久层(数据库访问)代码。 这里也是总结了几点主要意义 简化配置:Spring与MyBatis整合后,可以通过Spring的配置文件来管理和配置M…

31、springboot 配置HTTP服务端口及如何通过WebServer实例动态获取项目中的HTTP端口

配置HTTP服务端口及如何通过WebServer实例动态获取项目中的HTTP端口 ★ 设置HTTP服务端口: - server.port或者SERVER_PORT环境变量——总结来说,其实就是要配置server.port外部配置属性。▲ 同样遵守如下优先级: 这些都是外部配置源&#x…

基于javaweb的新生报到系统

摘 要 随着信息技术和网络技术的飞速发展,人类已进入全新信息化时代,传统管理技术已无法高效,便捷地管理信息。为了迎合时代需求,优化管理效率,各种各样的管理系统应运而生,各行各业相继进入信息管理时代&…

Vue路由(详解)

目录 路由原理 路由到底有什么作用? 路由安装和使用(vue2) 路由跳转 跳转实例: 路由的传值和取值 传值实例: 查询参和路由参的区别: 嵌套路由 嵌套实例: 路由守卫 守卫实例&#xff1…

如何使用CSS实现一个响应式轮播图?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 使用CSS实现响应式轮播图的示例⭐ HTML 结构⭐ CSS 样式 (styles.css)⭐ JavaScript 代码 (script.js)⭐ 实现说明⭐ 写在最后 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带…

EMR电子病历系统 SaaS电子病历编辑器源码 电子病历模板编辑器

EMR(Electronic Medical Record)指的是电子病历。它是一种基于电子文档的个人医疗记录,可以包括病人的病史、诊断、治疗方案、药物处方、检查报告和护理计划等信息。EMR采用计算机化的方式来存储、管理和共享这些信息,以便医生和医…

在Linux中使用gcc/g++编译代码

gcc/g 1.方法速记2.具体过程2.1 预处理阶段2.2 编译阶段2.3 汇编阶段2.4链接阶段2.4.1 链接的细节 gcc和g的操作一样,g的方法就仅需把gcc换成g即可。 1.方法速记 直接编译语法:将text.c文件或者text.cpp文件直接编译成text文件。 gcc text.c -o text /…

ElementUI中的日历组件加载无效的问题

在ElementUI中提供了一个日历组件。在某些场景下还是比较有用的。只是在使用的时候会有些下坑&#xff0c;大家要注意下。   官网提供的信息比较简介。我们在引入到项目中使用的时候可以能会出现下面的错误提示。 Unknown custom element: <el-calendar> - did you …

git通过fork-merge request实现多人协同

一、问题 对于一个项目&#xff0c;如果需要多人协同开发&#xff0c;大家都在原始仓库中进行修改提交&#xff0c;经常会发生冲突&#xff0c;而且一不小心会把别人的代码内容覆盖掉。为了避免这样的问题&#xff0c;git提供了fork-merge request这样的协同方式。 二、仓库框…

【C++】—— 简述C++11新特性

序言&#xff1a; 从本期开始&#xff0c;我将会带大家学习的是关于C11 新增的相关知识&#xff01;废话不多说&#xff0c;我们直接开始今天的学习。 目录 &#xff08;一&#xff09;C11简介 &#xff08;二&#xff09;统一的列表初始化 1、&#xff5b;&#xff5d;初始…

【业务功能篇74】三高微服务项目springboot-springcloud

三高指的是&#xff1a;高性能、高并发、高可用 2.项目架构 2.1 系统架构图 整体的项目架构图如下 2.2 业务组成 整体的项目业务组成如下

GB28181设备接入侧如何对接外部编码后音视频数据并实现预览播放

技术背景 我们在对接GB28181设备接入模块的时候&#xff0c;遇到这样的技术诉求&#xff0c;好多开发者期望能提供编码后&#xff08;H.264/H.265、AAC/PCMA&#xff09;数据对接&#xff0c;确保外部采集设备&#xff0c;比如无人机类似回调过来的数据&#xff0c;直接通过模…