深度Linux 居家办公 内网穿透 ssh反向映射 访问公司办公内网 局域网的一个简单方案 + vnc图形界面

news2024/11/25 12:35:48

1. 公网服务器

自行参考以下项目:

 x86_64: Docker

arm64: Docker

2. 处于内网的办公机器

2.1 vpn客户端

        BIOS配置定时开机(一般在电源选项或者唤醒设置里)

        安装vpn客户端,配置好证书

        配置开机自动,参考配置

/usr/lib/systemd/system/openvpn.service 

[Unit]
Description=openvpn 2 dev
Documentation=man:ntpd(8)
After=network.target

[Service]
Type=simple
ExecStart=/bin/bash /home/yeqiang/bash_script/ovpn2dev.sh
PrivateTmp=true

[Install]
WantedBy=multi-user.target

 /home/yeqiang/bash_script/ovpn2dev.sh

#!/bin/bash

sudo openvpn --config /home/yeqiang/Documents/openvpn-config/yeqiang-new2.ovpn

配置服务自启动

sudo systemctl daemon-reload
sudo systemctl enable openvpn --now

2.2 配置本地sshd 22端口转发

配置免密登录

sudo su
ssh-copy-id root@192.168.1.25

/home/yeqiang/bash_script/revertLocalhostSsh2Dev.sh

#!/bin/bash

while [ 1 -eq 1 ]
do
        date
        ssh -v -o ServerAliveInterval=10000 root@192.168.1.25 -R 2222:0.0.0.0:22 -N
        sleep 3
done

服务配置

/usr/lib/systemd/system/revertssh.service

[Unit]
Description=revert ssh 2 dev
After=openvpn.service

[Service]
Type=simple
ExecStart=/bin/bash /home/yeqiang/bash_script/revertLocalhostSsh2Dev.sh
PrivateTmp=true

[Install]
WantedBy=multi-user.target

开启启动配置

sudo systemctl daemon-reload
sudo systemctl enable revertssh --now

2.3 创建专用用户

useradd sshproxy
#交互式设置密码
passwd sshproxy

3.处于公网vpn内部网络的服务器

映射的端口状态

注意Localhost Address 是127.0.0.1,只允许本地接入

部署一个nginx,将此127.0.0.1:2222暴露到0.0.0.0:12222

编译配置项

configure arguments: --with-stream 

nginx.conf

# 转到公司  电脑的代理
stream {
	upstream office_yeqiang_proxy {
		server 127.0.0.1:2222;
	}
	server {
		listen 12222;
		proxy_responses 1;
		proxy_timeout 120s;
		proxy_pass office_yeqiang_proxy;
	}
}

4. 处于公网(家里)的电脑

4.1 用同样的vpn拨入

4.2 直接连接映射出来的12222端口,获得一个具有办公内网的shell

ssh yeqiang@192.168.1.25 -p 2222

4.3 连接成功后,即可在shell内访问任意内网资源

5. 图形界面

5.1 处于公司的办公机器

安装tigervnc

sudo apt install tigervnc-standalone-server tigervnc-common -y

/usr/lib/systemd/system/vncserver.service

[Unit]
Description=Remote desktop service (VNC)
After=openvpn.service

[Service]
Type=forking
User=sshproxy
Group=sshproxy
Environment="HOME=/home/sshproxy"
Environment="DISPLAY=:0"
Environment="XAUTHORITY=/home/sshproxy/.Xauthority"
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/usr/bin/vncserver %i
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'

[Install]
WantedBy=multi-user.target

配置vnc用户账号密码

sudo su sshproxy
# 交互式设置密码
vncpasswd

服务自启动

sudo systemctl daemon-reload
sudo systemctl enable vncserver --now

网络状态

创建端口转发脚本及服务

/home/yeqiang/bash_script/revertLocalhostVnc2Dev.sh

#!/bin/bash
  
while [ 1 -eq 1 ]
do
        date
        ssh -v -o ServerAliveInterval=10000 root@192.168.1.25 -R 5901:0.0.0.0:5901 -N
        sleep 3
done

/usr/lib/systemd/system/revertvnc.service

[Unit]
Description=revert vnc 2 dev
After=openvpn.service

[Service]
Type=simple
ExecStart=/bin/bash /home/yeqiang/bash_script/revertLocalhostVnc2Dev.sh
PrivateTmp=true

[Install]
WantedBy=multi-user.target

启动服务

sudo systemctl daemon-reload
sudo systemctl enable revertvnc --now

5.2 处于公网vpn的内部服务器

 nginx.conf

        upstream office_yeqiang_proxy_vnc {
                server 127.0.0.1:5901;
        }
        server {
                listen 15901;
                proxy_responses 1;
                proxy_timeout 120s;
                proxy_pass office_yeqiang_proxy_vnc;
        }

5.3 家里的电脑

vncviewer 192.168.1.25:15901

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[附源码]Nodejs计算机毕业设计基于的扶贫产品展销平台Express(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程。欢迎交流 项目运行 环境配置: Node.js Vscode Mysql5.7 HBuilderXNavicat11VueExpress。 项目技术: Express框架 Node.js Vue 等等组成,B/S模式 Vscode管理前后端分…

架构设计(三):引入缓存

架构设计(三):引入缓存 作者:Grey 原文地址: 博客园:架构设计(三):引入缓存 CSDN:架构设计(三):引入缓存 缓存是一个…

红黑树详解及代码实现(C++)

红黑树定义 红黑树是一种二叉搜索树,但在每个节点上增加一个存储位标识节点的颜色,RED或BLACK。通过对任何一条从根到叶子的路径上各个结点着色方式的限制,红黑树确保没有一条路径会比其他路径长出两倍,因而接近平衡。&#xff0…

共同转债,新化转债上市价格预测

共同转债基本信息转债名称:共同转债,评级:A,发行规模:3.8亿元。正股名称:共同药业,今日收盘价:32.66,转股价格:27.14。当前转股价值 转债面值 / 转股价格 * …

TPU编程竞赛系列|基于TPU-MLIR实现UNet模型部署,比“快”更快!

由算能举办的TPU编程竞赛-AI应用挑战赛正式开赛啦!本次大赛会为选手们提供一个预训练的分割模型UNet及数据集,无需训练模型,选手使用算能的MLIR开源编译器进行编译、量化及调优,兼顾精度与推理速度,最终实现UNet模型在…

社媒营销14问

👇点击一键关注主笔:邹小困、邝晴岚主持人:增长黑盒分析师刘千出品:增长黑盒研究组前言移动互联网和智能终端的发展,共同催生了很多社交媒体,并吸引了大批量的用户。社交媒体已经成为日常生活的一部分&…

RTOS概念及线程的引入

目录 RTOS的概念 用人来类比单片机程序和RTOS 程序简单示例 提出问题 RTOS的概念 用人来类比单片机程序和RTOS 妈妈要一边给小孩喂饭,一边加班跟同事微信交流,怎么办? 对于单线条的人,不能分心、不能同时做事,她只…

深入解读云场景下的网络抖动 | 龙蜥技术

文/eBPF 技术探索 SIG 一、网络抖动背景 延时高,网络卡,卡住了美好! 应用抖,业务惊,惊扰了谁的心? 当你在观看世界杯梅西主罚点球突然视频中断了几秒钟 当你在游戏中奋力厮杀突然手机在转圈圈无法响应…

毕业设计-基于大数据的新闻推荐系统-python

目录 前言 课题背景和意义 实现技术思路 实现效果图样例 前言 📅大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力。近几年各个学校要求的毕设项目越来越难,有不少课题是研究生级别难度的,对本科…

Qt第四十三章:弹出框QDialog

弹出框类型 ①模态框(阻塞窗口):QDialog().exec() ②窗口模态框(阻塞当前窗口):QDialog().open() ③非模态框(非阻塞):QDialog().show() 弹出框事件 ①触发accept()信号返回1 ②触发reject()信号返回0 ③触发done(int)信号返回int ④擦除弹…

MySql 事务的ACID与实现原理

数据库的事务是并发控制的基本单位,是指逻辑上的一组操作,要么全部执行,要么全部不执行。 一、事务的ACID: (1)原子性:事务是一个不可分割的工作单元,事务里的操作要么都成功&…

华秋干货分享|PCB电气安全间距设计规则

PCB工程师在设计电子产品的过程中,不能只考虑设计出来的精度以及完美要求,还有很大一个制约条件就是生产工艺的能力问题,因此DFM可制造性分析非常重要。避免设计出来的产品无法生产浪费时间及成本的问题发生。 那么走线层的可制造性都有那些…

nodejs092学生考勤请假管理系统vue

目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1 nodejs简介 4 2.3 B/S结构 4 2.4 MySQL数据库 4 前端技术:nodejsvueelementui 前端:HTML5,CSS3、JavaScript、VUE 系统…

我阳了

大家好,我是kaiyuan。我阳了。太开心可以如此轻松自由地公开说出这三个字,毕竟在不久之前,这三个字可能会让我的生活走向完全改变,所有人也都是对这3个字讳莫如深。所以虽然在阳的期间身体非常难受,心理倒是十分轻松舒…

6种更优雅书写Python代码!

1 简介 一些比较熟悉pandas的读者朋友应该经常会使用query()、eval()、pipe()、assign()等pandas的常用方法,书写可读性很高的「链式」数据分析处理代码,从而更加丝滑流畅地组织代码逻辑。 但在原生Python中并没有提供类似shell中的管道操作符|、R中的…

MMPs-PEG-BSA 多基质金属蛋白酶-聚乙二醇-牛血清白蛋白

产品名称:多基质金属蛋白酶-聚乙二醇-牛血清白蛋白 英文名称:MMPs-PEG-BSA 质量控制:95% 原料分散系数PDI:≤1.05 存储条件:-20C,避光,避湿 用 途:仅供科研实验使用,不用…

RK3399平台开发系列讲解(中断篇)掌握信号处理

🚀返回专栏总目录 文章目录 一、信号的基本概念二、信号处理流程三、可重入与异步信号安全3.1、可重入函数3.2、异步信号安全沉淀、分享、成长,让自己和他人都能有所收获!😄 📢信号在操作系统中有悠久的历史,信号的概念和使用方式都非常简单,但是要编写出真正实用而稳…

Py根据对象的某个属性排序,比大小

目录 核心代码 一个练习题 核心代码 方法1 不对原来的list进行改变 m sorted(需要排序的list集合, keylambda x: x.对象的属性名) 括号中加上reverseTrue表示反转顺序,你默认的顺序是从小到大加上之后变成从大到小OK 方法2 对原来的list进行排序 cmp operator…

javaSE -面向对象编程(包,继承,组合,多态,抽象类,接口)

一、包(package) 1.1、包(package)是组织类的一种方式 包里存的基本上都是类,而这些类都是别人写好的。我们只需要拿着用。前提是导入对应的包 比如说:打印数组 import java.util.Arrays; public class T…

鲜花店如何数字化转型,鲜花店管理小程序

鲜花的用途非常广泛,除了平时祝福送亲友外,还有七夕/情人节送情侣/爱人等,商圈中的各品牌花店也都不少,并且其收益也相当可观,虽然是非必需品,但却又不可缺。 雨科网观察了鲜花行业相关数据报告后&#xff…