首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >在Linux系统上搭建内网VPN

在Linux系统上搭建内网VPN

作者头像
姜同学
修改于 2022-10-28 01:11:51
修改于 2022-10-28 01:11:51
11.2K00
代码可运行
举报
文章被收录于专栏:姜同学姜同学
运行总次数:0
代码可运行

在Linux系统上搭建内网VPN

由于疫情的影响,姜同学要居家办公啦,远程桌面如teamViewer,向日葵之类用的总是不爽,姜同学虽然水平不咋地,但是怎么说也是一名程序员,该有的的极客精神还是有的,so姜同学决定在公司内网搭建vpn,快乐自己的同时也能方便其它同事,这可能就是程序员的快了吧。 于是姜同学便是踏上了漫漫的google之旅,功夫不负有心人,姜同学发现了openvpn这款产品以及Nyr大佬在github上开源的openvpn搭建脚本。

一键安装openvpn服务端

首先献上大佬的github地址感谢大佬

安装过程

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
This server is behind NAT. What is the public IPv4 address or hostname?
Public IPv4 address / hostname [101.33.76.24]:       #公网IP,默认就好,我这是假的
Which protocol should OpenVPN use?
1) UDP (recommended)
2) TCP
Protocol [1]: 2             #协议我这里使用TCP
What port should OpenVPN listen to?
Port [1194]:                #端口可以额外制定,或者默认1194
Select a DNS server for the clients:
1) Current system resolvers
2) Google
3) 1.1.1.1
4) OpenDNS
5) Quad9
6) AdGuard
DNS server [1]: 1                       #DNS我这里选择1 系统默认
Enter a name for the first client:
Name [client]: jiangtongxue                     #创建用户
...
The client configuration is available in: /root/jiangtongxue.ovpn
New clients can be added by running this script again.
[root@VM-0-10-centos ~]# sz /root/jiangtongxue.ovpn    #下载证书

下载openvpn客户端开始上网

创建新的用户

大佬的一键安装脚本讲服务端的证书,配置以及用来生成证书的easy-rsa都放在/etc/openvpn/server下面了,生成新的客户端证书需要用到最开始的ca证书,所以我们把大佬的easy-rsa复制一份就好了。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cp -r /etc/openvpn/server/easy-rsa /etc/openvpn/client/

创建用户脚本

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# ! /bin/bash

set -e

OVPN_USER_KEYS_DIR=/etc/openvpn/client/jiangtongxue/keys
EASY_RSA_DIR=/etc/openvpn/client/easy-rsa
PKI_DIR=$EASY_RSA_DIR/pki

for user in "$@"
do
  if [ -d "$OVPN_USER_KEYS_DIR/$user" ]; then
    rm -rf $OVPN_USER_KEYS_DIR/$user
    rm -rf  $PKI_DIR/reqs/$user.req
    sed -i '/'"$user"'/d' $PKI_DIR/index.txt
  fi
  cd $EASY_RSA_DIR
  # 生成客户端SSL证书文件
  ./easyrsa build-client-full $user nopass
  # 整理下生成的文件
  mkdir -p  $OVPN_USER_KEYS_DIR/$user
  cp $PKI_DIR/ca.crt $OVPN_USER_KEYS_DIR/$user/   # CA 根证书
  cp $PKI_DIR/issued/$user.crt $OVPN_USER_KEYS_DIR/$user/   # 客户端证书
  cp $PKI_DIR/private/$user.key $OVPN_USER_KEYS_DIR/$user/  # 客户端证书密钥
  cp /etc/openvpn/client/sample.ovpn $OVPN_USER_KEYS_DIR/$user/$user.ovpn # 客户端配置文件
  sed -i 's/client.crt/'"$user".crt'/g' $OVPN_USER_KEYS_DIR/$user/$user.ovpn
  sed -i 's/client.key/'"$user".key'/g' $OVPN_USER_KEYS_DIR/$user/$user.ovpn
  cd $OVPN_USER_KEYS_DIR
  zip -r $user.zip $user
done
exit 0

别忘了/etc/openvpn/client/sample.ovpn哦,用大佬生成的jjiangtongxue.ov**就可以了

使用自动创建脚本创建用户

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sh create_vpn_user.sh jiangtongxue

复制证书和私钥制作新的客户端证书

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
client
dev tun
proto tcp
remote ip你也想看? 1194
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
auth SHA512
cipher AES-256-CBC
ignore-unknown-option block-outside-dns
block-outside-dns
verb 3
<cert>
jiangtongxue.crt
</cert>
<key>
jiangtongxue.key
</key>

然后将证书导入openvpn客户端就可以快乐上网啦~

删除用户

del_vpn_user.sh

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制

# ! /bin/bash

set -e
OVPN_USER_KEYS_DIR=/etc/openvpn/client/jiangtongxue/keys
EASY_RSA_DIR=/etc/openvpn/client/easy-rsa/
for user in "$@"
do
  cd $EASY_RSA_DIR
  echo -e 'yes\n' | ./easyrsa revoke $user
  ./easyrsa gen-crl
  # 吊销掉证书后清理客户端相关文件
  if [ -d "$OVPN_USER_KEYS_DIR/$user" ]; then
    rm -rf $OVPN_USER_KEYS_DIR/${user}*
  fi
  systemctl restart openvpn-server@server.service
done
exit 0

遇到的问题

服务器异常关机啦,打开之后v**可以连接但是却无法上网。 执行如下命令

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j MASQUERADE
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-08-06T,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
行人检测--OpenCV与TensorFlow SSD对比
OpenCV行人检测我们使用HOG特征提取+SVM训练,使用默认API检测,详细了解可参考:https://zhuanlan.zhihu.com/p/75705284
Color Space
2020/01/13
3.4K0
行人检测--OpenCV与TensorFlow SSD对比
使用Tensorflow Object Detection API实现对象检测
Tensorflow Object Detection API自从发布以来,其提供预训练模型也是不断更新发布,功能越来越强大,对常见的物体几乎都可以做到实时准确的检测,对应用场景相对简单的视频分析与对象检测提供了极大的方便与更多的技术方案选择。tensorflow object detection提供的预训练模型都是基于以下三个数据集训练生成,它们是:
OpenCV学堂
2018/07/26
1.1K0
使用Tensorflow Object Detection API实现对象检测
体感游戏 | 手势识别玩飞机大战游戏(四) 使用深度学习实现手势识别玩飞机大战游戏
今天是第四部分:使用深度学习实现手势识别玩飞机大战游戏的功能。这里标题我把TensorFlow实现改为了深度学习实现,这里识别手势主要用到的是目标检测,当然不止TensorFlow可以实现,其他能够做到实时的目标检测网络也很多,比如最近比较火的YoloV4/V5。这里演示我为了方便,就用我以前训练好的SSD手势识别模型,你只需要使用下面的代码,加载模型就可以测试:
Color Space
2021/01/22
1.8K0
Tensorflow Object Detection API 终于支持tensorflow1.x与tensorflow2.x了
基于tensorflow框架构建的快速对象检测模型构建、训练、部署框架,是针对计算机视觉领域对象检测任务的深度学习框架。之前tensorflow2.x一直不支持该框架,最近Tensorflow Object Detection API框架最近更新了,同时支持tensorflow1.x与tensorflow2.x。其中model zoo方面,tensorflow1.x基于COCO数据集预训练支持对象检测模型包括:
OpenCV学堂
2020/09/08
1.2K0
Tensorflow Object Detection API 终于支持tensorflow1.x与tensorflow2.x了
tensorflow object detection API使用之GPU训练实现宠物识别
之前写过几篇关于tensorflow object detection API使用的相关文章分享,收到不少关注与鼓励,所以决定再写一篇感谢大家肯定与支持。在具体介绍与解释之前,首先简单说一下本人测试与运行的系统与软件环境与版本
OpenCV学堂
2019/11/13
2.4K1
基于OpenCV与tensorflow实现实时手势识别
基于OpenCV与tensorflow object detection API使用迁移学习,基于SSD模型训练实现手势识别完整流程,涉及到数据集收集与标注、VOC2012数据集制作,tfrecord数据生成、SSD迁移学习与模型导出,OpenCV摄像头实时视频流读取与检测处理,整个过程比较长,操作步骤比较多,这里说一下主要阶段与关键注意点。
OpenCV学堂
2018/09/29
5.5K1
基于OpenCV与tensorflow实现实时手势识别
ubunu16.04 TensorFlow object detection API 应用配置
TensorFlow object detection API应用–配置 主要参考 : https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/installation.md https://www.cnblogs.com/zongfa/p/9662832.html
用户1148525
2019/05/26
5750
tensorflow Object Detection API使用预训练模型mask r-cnn实现对象检测
Mask R-CNN是何凯明大神在2017年整出来的新网络模型,在原有的R-CNN基础上实现了区域ROI的像素级别分割。关于Mask R-CNN模型本身的介绍与解释网络上面已经是铺天盖地了,论文也是到处可以看到。这里主要想介绍一下在tensorflow中如何使用预训练的Mask R-CNN模型实现对象检测与像素级别的分割。tensorflow框架有个扩展模块叫做models里面包含了很多预训练的网络模型,提供给tensorflow开发者直接使用或者迁移学习使用,首先需要下载Mask R-CNN网络模型,这个在tensorflow的models的github上面有详细的解释与model zoo的页面介绍, tensorflow models的github主页地址如下: https://github.com/tensorflow/models
OpenCV学堂
2018/09/29
5.8K2
tensorflow Object Detection API使用预训练模型mask r-cnn实现对象检测
MaskRCNN 基于OpenCV DNN的目标检测与实例分割
这里主要记录基于 OpenCV 4.x DNN 模块和 TensorFlow MaskRCNN 开源模型的目标检测与实例分割 的实现.
AIHGF
2019/05/13
1.9K0
MaskRCNN 基于OpenCV DNN的目标检测与实例分割
Python 数据科学入门教程:TensorFlow 目标检测
你好,欢迎阅读 TensorFlow 目标检测 API 迷你系列。 这个 API 可以用于检测图像和/或视频中的对象,带有使用边界框,使用可用的一些预先训练好的模型,或者你自己可以训练的模型(API 也变得更容易)。
ApacheCN_飞龙
2022/12/01
1.5K0
Python 数据科学入门教程:TensorFlow 目标检测
利用Tensorflow构建自己的物体识别模型(一)
利用Tensorflow训练搭建自己的物体训练模型,万里长征第一步,先安装tensorflow。
月小水长
2019/07/31
6270
利用Tensorflow构建自己的物体识别模型(一)
Faster RCNN 基于 OpenCV DNN 的目标检测实现
在前面已经测试过 YOLOV3 和 SSD 基于 OpenCV DNN 的目标检测实现,这里再简单实现下 Faster RCNN 基于 DNN 的实现.
AIHGF
2019/05/13
1.1K0
Faster RCNN 基于 OpenCV DNN 的目标检测实现
深度学习入门篇--手把手教你用 TensorFlow 训练模型
该文介绍了如何使用TensorFlow实现YOLO v2神经网络模型对图像进行分类,并给出了代码示例和训练过程的详细步骤。
付越
2017/10/16
9.9K2
深度学习入门篇--手把手教你用 TensorFlow 训练模型
TensorFlow 目标检测模型转换为 OpenCV DNN 可调用格式
在 OpenCV4.X 版本(OpenCV3.4.1之后版本) 可以采用 cv2.dnn.readNetFromTensorflow(pbmodel, pbtxt) 函数直接调用 TensorFlow 训练的目标检测模型.
AIHGF
2019/05/13
2.6K0
TensorFlow 目标检测模型转换为 OpenCV DNN 可调用格式
目标检测_1
注:上编的路径尽量使用绝对路径,不要使用相对路径和~符号 可能报错 生成frozen_inference_graph.pb文件 及其他文件
Dean0731
2020/05/08
5550
Auto-Tinder-训练AI玩打火机刷卡游戏
Auto Tinder是一个纯粹出于娱乐和教育目的而创建的概念项目。绝不能滥用它来伤害任何人或向平台发送垃圾邮件。自动绑定脚本不应与您的绑定文件一起使用,因为它们肯定违反了绑定服务条款。
代码医生工作室
2019/10/31
1.7K0
Auto-Tinder-训练AI玩打火机刷卡游戏
[Tensorflow] 使用SSD-MobileNet训练模型
因为Android Demo里的模型是已经训练好的,模型保存的label都是固定的,所以我们在使用的时候会发现还有很多东西它识别不出来。那么我们就需要用它来训练我们自己的数据。下面就是使用SSD-MobileNet训练模型的方法。
wOw
2018/09/18
14K3
Mask-RCNN模型的实现自定义对象(无人机)检测
打开标注工具PixelAnnotation 选择好dataset路径之后,顺序开始标注数据即可!
OpenCV学堂
2019/08/09
1.9K2
Mask-RCNN模型的实现自定义对象(无人机)检测
干货 | tensorflow模型导出与OpenCV DNN中使用
Deep Neural Network - DNN 是OpenCV中的深度神经网络模块,支持基于深度学习模块前馈网络运行、实现图像与视频场景中的
OpenCV学堂
2019/04/29
5K0
干货 | tensorflow模型导出与OpenCV DNN中使用
使用TensorFlow一步步进行目标检测(5)
本教程进行到这一步,您选择了预训练的目标检测模型,转换现有数据集或创建自己的数据集并将其转换为TFRecord文件,修改模型配置文件,并开始训练模型。接下来,您需要保存模型并将其部署到项目中。
云水木石
2019/07/01
5520
使用TensorFlow一步步进行目标检测(5)
推荐阅读
相关推荐
行人检测--OpenCV与TensorFlow SSD对比
更多 >
LV.1
这个人很懒,什么都没有留下~
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档