【内网穿透】打洞笔记

文章目录

  • 前言
  • 原理阐述
    • 公网ssh
    • frp转发服务
  • 实现
    • 前提
    • 第一步:
    • 第二步
    • 第三步
    • 第四步
  • 补充
    • 第五步(希望隧道一直开着)
    • sftp传数据(嫌云服务器上的网太慢)


前言

租了一个云服务器,想用vscode的ssh远程连接,发现有必须要有公网才能进行连接,于是又租了一个月的公网,但还是想知道有没有办法不用租公网也能实现连接,于是在大佬的帮助下成功实现,这里记录一下打洞的笔记。

云服务的镜像
linux 版本:Ubuntu20.04

原理阐述

什么是bash,什么是shell
使用frp进行内网穿透,让本地HTTP网站公开访问

公网ssh

ssh:SSH(Secure Shell)是一种加密的网络协议,用于在网络中传输数据。主要功能之一是提供安全且可靠的远程登录服务。

如果我是用公网来远程的话,终端里直接ssh root@公网ip 就行。
假设公网ip:45.23.13.56

ssh root@45.23.13.56

你的电脑-> sshd(22)
d:daemon,linux上的服务基本都是d结尾的

这里意思是你的电脑连上了服务器公网的22端口,22是ssh协议默认的端口号。
一般来说,也是需要云服务器开放22端口,不过一般默认开放。

frp转发服务

Frp(Fast Remote Port Forwarding)是一款高效、安全、易用的远程端口转发工具,可以在不暴露服务的情况下,通过公网访问内网中的服务。它支持多种协议,包括HTTP、HTTPS、TCP等,能够实现反向代理、内网穿透、SSH隧道等功能。

假设frp的共享公网ip221.23.13.56,外网端口号44333

ssh root@221.23.13.56 -p 44333

你的电脑 -> frp节点服务器(44333) ->(frpc客户端->sshd(22))
(frpc安装在你的linux服务器上)

不加端口号的话是连上服务器本体,会连不上。

其实这个原理是你连接到frp,frp连接到你的本地服务,然后frp当中间人给俩设备转发数据。
(注意:frp网页里的本地指的是frpc运行的本地,也就是要填127.0.0.1 端口22)

实现

前提

1。服务器linux开启ssh功能
2。目标账户root允许密码登录/你设置好了私钥登录
3。阿里云防火墙放通22端口

查看实例信息,满足1,2
在这里插入图片描述
私钥登录在/etc/ssh/sshd_config
里面有个premitrootlogin prohibit-password
改成yes
不改的话root不允许用密码远程登录,防止别人试你的密码的。

实例的安全组的入方向的22端口为开。(实际云服务器的话,这三者都满足。)
在这里插入图片描述
防火墙开启代码

# 如果报错 要你安装 你就安装 类似于 sudo apt install firewall
# 开启
firewall-cmd --zone=public --add-port=9876/tcp --permanent
# 更新 
firewall-cmd --reload
# 查看 所有开放端口
firewall-cmd --list-port

步骤:
1.注册并启动一个frp服务
2.将frpc安装在你的linux云服务器上
2.启动frpc服务开启隧道
3.ssh连接

第一步:

进入frp第三方平台,注册。(https://www.natfrp.com/)
然后点击隧道列表,点击创建。
在这里插入图片描述
服务器都差不多,显示的都是推荐而已,我们这里要做穿透,选穿透就行。
在这里插入图片描述
远程端口你可以留空自动随机选一个,也可以手动指定,但是得慢慢试,很多已经被别人占用了,这里留空。
注:这里访问本地不是你自己电脑的意思 是你安装客户端frpc的位置,即你的云服务器的本地。

创建之后
在这里插入图片描述
点击配置文件 会出现
最上面一个框框里有一个
-f xxxxxxxx:xxxxx
这样的东西
linux上从sakurafrp下载一个frpc
然后运行
frpc -f xxxxxxxx:xxxx这条指令,就打开了隧道

第二步

安装frpc
下载地址:https://www.natfrp.com/tunnel/download 复制链接 使用wget(web get)下载

# 下载
wget https://nya.globalslb.net/natfrp/client/frpc/0.51.0-sakura-7.3/frpc_linux_amd64
# 赋予其执行权限
chmod +x frpc_linux_amd64 
# 移动move至/usr/local/bin目录下 确保所有用户都能访问它
sudo mv frpc_linux_amd64 /usr/local/bin/frpc
# 确认安装完毕
frpc --version

第三步

运行第一步获取到的信息

frpc -f xxxxxxxx:xxxx

即启动成功,
会告诉你
在这里插入图片描述
开启成功后,隧道列表也会显示绿标表示开启成功

第四步

就可以在终端ssh成功
-p 表示端口号

ssh root@221.23.13.56 -p 44333

如果是在vscode上实现ssh远程
即左下角ssh 添加新的ssh主机

ssh root@221.23.13.56 -p 44333 -A

补充

若是

第五步(希望隧道一直开着)

我们希望隧道一直开着
使用supervisor将这个进程挂后台
supervisor:管理和控制进程的工具,开机会自启动

# 1.安装
sudo apt-get install supervisor
# 2.创建 Supervisor 配置文件:在 /etc/supervisor/conf.d/ 目录下创建一个新的配置文件,例如 my_process.conf。
sudo nano /etc/supervisor/conf.d/my_process.conf

3.配置Supervisor

[program:my_process]
command=/usr/local/bin/frpc -f xxxxxxxx:xxxx
directory=/root/
autostart=true
autorestart=true
stderr_logfile=/var/log/my_process.err.log
stdout_logfile=/var/log/my_process.out.log
user=root

解释:
command:你要运行的命令。
directory:命令运行的工作目录。
autostart:是否在 Supervisor 启动时自动启动该进程。
autorestart:进程崩溃后是否自动重启。
stderr_logfile 和 stdout_logfile:日志文件路径。
user:运行进程的用户。

# 4.更新 Supervisor 配置
sudo supervisorctl reread
sudo supervisorctl update
# 5.启动进程
sudo supervisorctl start my_process
# 6.监控进程
sudo supervisorctl status

这样就可以使得可以一直用隧道的公网IP直接在vscode上远程了。

如图:
在这里插入图片描述

sftp传数据(嫌云服务器上的网太慢)

有时候我们嫌云云服务器上的网太慢 例微软的网站或者github上网站下东西太慢。
SFTP(Secure File Transfer Protocol)是一种安全的文件传输协议,通常用于在本地计算机和远程服务器之间安全地复制文件。

终端上sftp

# 连接云服务器
sftp root@xxx.xxx.xxx.xxx -p 44333
# 上传
put "E:\Users\REM2\Downloads\rocketmq-client-cpp-2.2.0.amd64.deb" /root/

put 是上传
第一个是本地的文件的地址
第二个是云服务器上文件夹地址

即可上传
例: [==================================>] 4.60M 1.62MB/s in 2.8s

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

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

相关文章

Java面试八股之简述redis常见的性能问题和解决方案

简述redis常见的性能问题和解决方案 Redis作为一款高性能的键值存储系统,虽然设计用于提供低延迟的读写操作,但在特定场景下仍可能出现性能瓶颈。下面列出了一些常见的Redis性能问题及其解决方案: 常见性能问题 内存使用过高 Redis是内存…

支付宝低代码搭建电商小程序,无需编程,可视化操作

大家好,我是小悟 在数字化浪潮的推动下,为了更快速、高效地搭建电商小程序,支付宝低代码平台凭借其独特优势,为商家提供了便捷的解决方案。 支付宝低代码平台犹如一座精心打造的智慧工坊,让电商小程序的搭建变得轻而易…

生成树(STP)协议

一、生成树的技术背景 1、交换机单线路上链,存在单点故障,上行线路及设备都不具备冗余性,一旦链路或上行设备发生故障,网络将面临断网。 总结:以下网络不够健壮,不具备冗余性。 2、因此引入如下网络拓扑结构: 上述冗余拓扑能够解决单点故障问题,但同时冗拓扑也带来了…

多级表头固定列问题

父级的width,是需要固定的列的width的总和 参考: el-table 多级表头下对应列的固定

国产麒麟、uos在线编辑word文件并控制编辑区域(局部编辑)

windows系统也适用,该插件可同时支持windows和国产系统 在实际项目开发中,以下场景可能会用到Word局部编辑功能: 合同审批公文流转策划设计报告汇签单招投标(标书文件)其他,有模板且需要不同人员协作编辑…

OpenGL笔记十三之Uniform向量数据传输、使用glUniform3f和glUniform3fv

OpenGL笔记十三之Uniform向量数据传输、使用glUniform3f和glUniform3fv —— 2024-07-14 晚上 bilibili赵新政老师的教程看后笔记 code review! 文章目录 OpenGL笔记十三之Uniform向量数据传输、使用glUniform3f和glUniform3fv1.glUniform3f1.1.运行1.2.vs1.3.fs1.4.shader.…

<数据集>竹子缺陷检测数据集<目标检测>

数据集格式:VOCYOLO格式 图片数量:2953张 标注数量(xml文件个数):2953 标注数量(txt文件个数):2953 标注类别数:3 标注类别名称:[Bud, Sprouted_Bud, Damage_Bud] 序号类别名称图片数框数1Bud2288229…

LintcCode 468 · 对称二叉树【简单 二叉树 递归 Java】

题目 题目链接: https://www.lintcode.com/problem/468/description?showListFetrue&page1&problemTypeId2&tagIds371&orderingid&pageSize50 思路 递归 Java代码 /*** Definition of TreeNode:* public class TreeNode {* public int…

推送Prometheus数据到N9E并通过Grafana展示

小编在上篇文章中已经通过安装jenkins并构建自动化测试项目并发送了消息通知,但是这只是群内的通知,如何通过大盘展示呢?经过讨论,暂时选择采用的实现思路:通过jenkins自动化执行结果来推送Prometheus数据到N9E&#x…

opencv学习:图像视频的读取截取部分图像数据颜色通道提取合并颜色通道边界填充数值计算图像融合

一、计算机眼中的图像 1.图像操作 构成像素点的数字在0~255之间 RGB叫做图像的颜色通道 h500,w500 2.灰度图像 3. 彩色图像 4.图像的读取 5.视频的读取 cv2.VideoCapture()--在OpenCV中,可以使用VideoCapture来读取视频文件,或是摄像头数…

专业电脑硬盘修复教程,教你轻松搞定!

电脑硬盘作为电脑存储系统的重要组成部分,其健康状态直接影响到数据的安全和系统的运行速度。硬盘出现问题可能导致数据丢失、系统崩溃,甚至无法启动。及时进行硬盘修复,不仅可以恢复数据,还能延长硬盘的使用寿命。本文将详细介绍…

【经验分享】关于静态分析工具排查 Bug 的方法

文章目录 编译器的静态分析cppcheck安装 cppcheck运行 cppcheck 程序员的日常工作,不是摸鱼扯皮,就是在写 Bug。虽然这是一个梗,但也可以看出,程序员的日常一定绕不开 Bug。而花更少的时间修复软件中的 Bug,且不引入新…

华为USG6000V防火墙安全策略用户认证

目录 一、实验拓扑图 二、要求 三、IP地址规划 四、实验配置 1🤣防火墙FW1web服务配置 2.网络配置 要求1:DMZ区内的服务器,办公区仅能在办公时间内(9:00-18:00)可以访问,生产区的设备全天可以访问 要求2:生产区不…

(01)Unity使用在线AI大模型(使用百度千帆服务)

目录 一、概要 二、环境说明 三、申请百度千帆Key 四、使用千帆大模型 四、给大模型套壳 一、概要 在Unity中使用在线大模型分为两篇发布,此篇文档为在Python中使用千帆大模型,整体实现逻辑是:在Python中接入大模型—>发布为可传参的…

NSSCTF中24网安培训day2中web题目【下】

[NISACTF 2022]easyssrf 这道题目考察的是php伪协议的知识点 首先利用file协议进行flag查找 file:///flag.php 接着我们用file协议继续查找fl4g file:///fl4g 接着我们访问此文件,得到php代码如下 这里存在着stristr的函数&#x…

CREC晶振产品分类

CREC晶振大类有石英晶体谐振器、石英晶体振荡器、石英晶体滤波器 其中石英晶体谐振器: KHZ石英谐振器 车规级32.768KHz石英谐振器 专为汽车RTC应用而设计,通过AECQ-200可靠性测试,满足汽车电子的高标准时频需求,为客户提供可靠…

打破平台限制,使智能手机和平板电脑上无缝运行Windows x86/x64架构的软件和游戏的一款安卓应用

大家好,今天给大家分享一款专为Android设备设计的模拟器应用Winlator。其核心功能是能够在基于ARM架构的智能手机和平板电脑上无缝运行Windows x86/x64架构的软件和游戏。 Winlator是一款Android应用程序,它允许用户使用Wine和Box86/Box64在Android设备上…

通过Dockerfile构建镜像

案例一: 使用Dockerfile构建tomcat镜像 cd /opt mkdir tomcat cd tomcat/ 上传tomcat所需的依赖包 使用tar xf 解压三个压缩包vim Dockerfile FROM centos:7 LABEL function"tomcat image" author"tc" createtime"2024-07-16"ADD j…

4. JavaSE ——【移位运算符】

📖 开场白 亲爱的读者,大家好!我是一名正在学习编程的高校生。在这个博客里,我将和大家一起探讨编程技巧、分享实用工具,并交流学习心得。希望通过我的博客,你能学到有用的知识,提高自己的技能&…

《后端程序员 · Nacos 常见配置 · 第一弹》

📢 大家好,我是 【战神刘玉栋】,有10多年的研发经验,致力于前后端技术栈的知识沉淀和传播。 💗 🌻 CSDN入驻不久,希望大家多多支持,后续会继续提升文章质量,绝不滥竽充数…