当前位置: 首页 > news >正文

内网穿透[让你在家里也能榨干学校的服务器]Yep!

内网穿透

问题:什么是内网穿透,内网穿透的作用是什么?

前提!!!!你得拥有超级管理员的权限,比如root,不然后面的一切免提!

应用场景如下:比如你在家,你想连接学校的服务器,但是因为学校的服务器是局域网,172开头的,我们在家也是一个局域网,不同局域网没办法互连,那就需要一个中间人来进行连接,我们都可以和这个中间人进行连接,所以就需要一个公网IP,这样我们在家的电脑和在学校的服务器都可以连接上去,让这个中间人为我们传递数据。如下图所示。以下假设的IP地址没有任何实际意义,只是作为假设,特此声明
在这里插入图片描述

所以引出了内网穿透所需要的资源:
(1)学校服务器的IP地址:这里我们假设是上图的172.22.33.44
(2)公网的IP地址(去阿里云租一个,新用户免费3个月,租ECS服务器,租过的话换个手机号就能租个新的了,或者买一个,学生优惠99一年)服务器IP:8.138.66.121
(3)frp内网穿透工具(注意下载的版本,以下参考是x86的版本,所以下载amd64)

现在我们已经拥有公网的IP了,学校的服务器和家里的电脑都是联网的,所以可以Ping通ECS服务器。现在正式开始配置frp

1. 服务器端,也就是我们租的那台服务器,我们用来作为Service端。

sudo apt-get updatewget https://github.com/fatedier/frp/releases/download/v0.53.2/frp_0.53.2_linux_amd64.tar.gztar -zxvf frp_0.53.2_linux_amd64.tar.gz  #解压缩:tar xvf 文件名cd frp_0.53.2_linux_amd64                #进入解压目录#修改frps.toml文件
sudo vim ./frps.toml

添加以下内容:

# 设置frps端的监听端口
bindPort = 7000

下面方法是一次性的,关机重启之后就要将服务重新开启。

#在frp_0.17.0_linux_amd64目录下,临时启动命令
./frps -c ./frps.toml#后台保持启动
nohup ./frps -c ./frps.toml &

故引出开机自启动服务器,也就是写一个脚本

sudo vim /etc/systemd/system/frps.service

注意ExecStart改为实际的存放路径

[Unit]
# 服务名称,可自定义
Description = frp server
After = network.target syslog.target
Wants = network.target[Service]
Type = simple
# 启动命令,改为实际存放frps的路径
ExecStart = /home/frp_0.53.2_linux_amd64/frps -c /home/frp_0.53.2_linux_amd64/frps.toml[Install]
WantedBy = multi-user.target
# 启动服务
systemctl start frps
# 查看服务状态
systemctl status frps
# 重启服务
systemctl restart frps
# 开机自启动
systemctl enable frps

到此为止 服务器端就配置好了,该配置客户端,也就是我们的学校的服务器,需要超级管理员权限!!!再次提醒。

2. 客户端,学校的服务器

第一步也是先下载frp,但是在客户端使用的是frpc,服务器端是frps

sudo apt-get updatewget https://github.com/fatedier/frp/releases/download/v0.53.2/frp_0.53.2_linux_amd64.tar.gztar -zxvf frp_0.53.2_linux_amd64.tar.gz  #解压缩:tar xvf 文件名cd frp_0.53.2_linux_amd64                #进入解压目录#修改frps.toml文件
sudo vim ./frpc.toml

在frpc.toml中配置文件

serverAddr = "8.138.66.121" #我们租到服务器的递增
serverPort = 7000 #我们在租到服务器中frps.toml写的监听端口号[[proxies]]
name = "test-tcp" #可以随便取一个,但是不要取ssh,可能会发生冲突
type = "tcp" #网络连接方式,不用改
localIP = "127.0.0.1" #不用改
localPort = 22 #不同改
remotePort = 6000 #不用改,6000我们后面会用来连接

临时启动

#临时启动
./frpc -c ./frpc.ini#后台保持启动
nohup ./frpc -c ./frpc.toml &

开机自启动
同样在ExecStart更改为真实的frp工具存放路径

[Unit]
Description=frpc
After=syslog.target  network.target
Wants=network.target[Service]
Type=simple
ExecStart=/usr/local/frp_0.53.2_linux_amd64/frpc -c /usr/local/frp_0.53.2_linux_amd64/frpc.toml
Restart= always
RestartSec=1min[Install]
WantedBy=multi-user.target
# 启动服务
systemctl start frpc
# 查看服务状态
systemctl status frpc
# 重启服务
systemctl restart frpc
# 开机自启动
systemctl enable frpc

这样整个过程就配置好了。

3.测试

在我们租阿里云服务器上输入指令,下面的User是你要连接的用户名

ssh -p 6000 User@127.0.0.1

然后输入你用户的密码就可以连接上去了。

4. 应用:在Vscode上登录,且完成免密登录。

(1)下载插件Remote-SSH
在这里插入图片描述
(2)然后点击图标,如下图
在这里插入图片描述
(3)接着修改配置文件,点击小齿轮
在这里插入图片描述
(4)进入配置文件,修改配置文件,第一个Host,需要填我们在阿里云租到服务器的公网IP,第二个Host只需要改最后一行的那个数字改为公网IP就行了。

Host 8.138.66.121 HostName 8.138.66.121 User rootPort 22
Host 127.0.0.1HostName 127.0.0.1Port 6000User XXXProxyCommand ssh -W %h:%p 8.138.66.121 

(5)这样我们点击连接127.0.0.1就会连接到我们的服务器了,简单来说,就是把公网服务器作为跳板,跳到了我们的学校的服务器。但是需要输入俩次密码,是不是很麻烦!!!!

5.免密登录

免密登录需要用到id_rsa.pub这个文件和authorized_keys这个文件
(1)先免密登录到我们的跳板,也就是租的阿里云服务器。将我们本地下生成的id_rsa.pub文件复制到阿里云服务器上,如果本地没有,就先生成,生成代码如下:

ssh-keygen -t rsa

一般来说会在c:\users\XXX.ssh下出现这个文件。
(2)复制的方式可以通过终端文件windterm或MobaXterm直接上传,或者使用命令scp传输,具体scp命令可以自己搜一下,反正要将id_rsa.pub复制到阿里云服务器上,然后为了防止覆盖authorized_keys文件,我们使用拼接的方式,如下:

cat id_rsa.pub > authorized_keys

这样我们就实现了免密登录到阿里云服务器,完成了第一次飞跃。
(3)接下来同样的方式完成第二次飞跃,将在本地电脑,也就是我们第一次复制到阿里云服务器上的id_rsa.pub同样复制到学校服务器上的.ssh文件夹下,完成第二步同样的操作。

这样我们就可以免密登录了

6. 需要注意的问题

(1)如果在下载frp的时候过慢,可以在本地下载好,在移动到服务器上去,因为是在github上下载的
下载链接https://github.com/fatedier/frp/releases。注意需要下载的版本。./frpc: cannot execute binary file: Exec format error,就是版本不对,确认一下版本。
(2)自启动脚本的frp工具的实际路径得设置好
(3)如果阿里云服务器上和学校的服务器上没有.ssh文件,可以自己生成,生成方式如第五点免密登录的第一步,生成后,可以删掉原本的id_rsa.pub,用我们复制过来的。

7. 引用

[1] https://blog.csdn.net/deng_xj/article/details/88952420
[2] https://zhuanlan.zhihu.com/p/572431267
[3] https://blog.csdn.net/xuzhongyi103/article/details/134363523
[4] https://blog.csdn.net/weixin_43863869/article/details/135042123
[5] https://blog.csdn.net/lixuande19871015/article/details/98613711

相关文章:

内网穿透[让你在家里也能榨干学校的服务器]Yep!

内网穿透 问题:什么是内网穿透,内网穿透的作用是什么? 前提!!!!你得拥有超级管理员的权限,比如root,不然后面的一切免提! 应用场景如下:比如你…...

构建基于RHEL9系列(CentOS9,AlmaLinux9,RockyLinux9等)的支持63个常见模块的PHP8.1.20的RPM包

本文适用:rhel9系列,或同类系统(CentOS9,AlmaLinux9,RockyLinux9等) 文档形成时期:2023年 因系统版本不同,构建部署应略有差异,但本文未做细分,对稍有经验者应不存在明显障碍。 因软件世界之复杂和个人能力…...

你知道什么是Java中的类型强转吗?

强制类型转换 强转存在与父转子的时候,子转父不需要进行强转,如 Object o "hello"; //String类是Object类的子类,无需进行强转类型强转分为两种情况: Ⅰ、向下转型:将父类对象引用转换为子类对象引用&am…...

【2023】ArrayList和LinkedList详解介绍对比

一、ArrayList 1、概述 ArrayList是实现了List接口的动态数组,所谓动态数组就是他的大小是可变的。实现了所有可选列表操作,并允许包括Null在内的所有元素。除了实现 List 接口外,此类还提供一些方法来操作内部用来存储列表的数组的大小。 …...

【软件工程】基于领域建模的产品与技术方案设计(领域驱动设计DDD)

文章目录 1、领域建模2、产品方案、技术方案3、领域驱动设计DDD 1、领域建模 领域模型(domain model) 是对领域内的概念类或现实世界中对象的可视化表示。领域模型也成为概念模型、领域对象模型和分析对象模型。域模型是一种概念模型,也叫问题域模型。它表述的是某…...

跨境电商账号频繁?你的IP可能“不干净”了

疫情促进了跨境电商行业的加速发展,许多卖家也抓住了这波流量红利,跨境电商月入数万,数十万甚至数百万的造福神话也不断在上演,但由于国内外电商运营模式不同,多店运营、用户数据收集、刷单等行为都受到了国外平台的严…...

Docker数据卷与拦截与目录拦截

目录 高级容器挂载技术深度解析引言数据卷挂载原理解析应用场景使用介绍 目录挂载原理解析应用场景使用介绍 总结 高级容器挂载技术深度解析 引言 容器技术的快速发展使得容器挂载技术变得愈发重要。在容器化应用中,数据卷挂载和目录挂载是两种常见的挂载方式&…...

Python 元类 metaclass 详解

元类(metaclass)是 Python 中一个高级且相对较少使用的概念。元类可以被视为类的类,它控制类的创建过程。 一、基本概念 在 Python 中,一切皆对象。为了避免混淆,我们约定两个术语: 类实例:当…...

HCIA基础知识

IP地址、静态路由、动态路由、交换机 OSPF RIP DHCP VLAN ACL NAT OSI TCP/IP UDP TCP 三次握手,四次挥手,报头 什么是网络? 由网络连接设备通过传输介质将网络终端设备连接起来,进行资源共享、信息传递的平台。 OSI七…...

翻译: Streamlit从入门到精通 部署一个机器学习应用程序 四

Streamlit从入门到精通 系列: 翻译: Streamlit从入门到精通 基础控件 一翻译: Streamlit从入门到精通 显示图表Graphs 地图Map 主题Themes 二翻译: Streamlit从入门到精通 构建一个机器学习应用程序 三 1. 5. 如何部署一个Streamlit应用 部署是将应用程序从开发…...

AI时代Python量化交易实战:ChatGPT引领新时代

文章目录 《AI时代Python量化交易实战:ChatGPT让量化交易插上翅膀》关键点内容简介作者简介购买链接 《AI时代架构师修炼之道:ChatGPT让架构师插上翅膀》关键点内容简介作者简介 赠书活动 《AI时代Python量化交易实战:ChatGPT让量化交易插上翅…...

国科大软件安全原理期末复习笔记

1 软件安全总论 1.软件的三大特性:复杂性、互连性、可扩展性; 2.基本概念:缺陷、漏洞、风险 缺陷(bug):软件在设计和实现上的错误;漏洞(vulnerability):漏洞…...

人工智能软件测试2024年主要趋势

人工智能软件测试领域在未来可能面临多个发展趋势,其中一些趋势可能会对测试方法、工具和流程产生深远的影响。以下是塑造人工智能软件测试未来的主要趋势: 自动化和自动学习测试:随着人工智能的发展,测试自动化将变得更加智能和自…...

【JAVA】Java 中什么叫单例设计模式?请用 Java 写出线程安全的单例模式

🍎个人博客:个人主页 🏆个人专栏:JAVA ⛳️ 功不唐捐,玉汝于成 目录 前言 正文 懒汉式(Lazy Initialization): 双重检查锁定(Double-Checked Locking)…...

常见的反爬虫风控 | 验证码风控

一.前言 在当今信息技术迅速发展的背景下,网站和在线服务面临着日益增长的自动化访问威胁,这些大多来自于各类爬虫程序。这种大量的自动化访问不仅对网站的正常运行构成压力,还可能导致敏感数据的泄露,甚至被用于不正当竞争和恶意…...

ClickHouse(21)ClickHouse集成Kafka表引擎详细解析

文章目录 Kafka表集成引擎配置Kerberos 支持 虚拟列 资料分享参考文章 Kafka表集成引擎 此引擎与Apache Kafka结合使用。 Kafka 特性: 发布或者订阅数据流。容错存储机制。处理流数据。 老版Kafka集成表引擎参数格式: Kafka(kafka_broker_list, kaf…...

JSP-概念

一、引子 很多读者可能听过JSP,并且知道这是一门过时的技术了。在Spring,SpringBoot已经成为主流的今天,笔者为什么还要介绍JSP的相关内容呢?笔者常常提到一个概念:理解一门技术,要理解这个技术为什么产生…...

sqlite插入语句id自增列问题

sqlite给主键id设置AUTOINCREMENT自增在插入数据的时候报错table has x columns but x-1 values were supplied 为什么自增列要显示不提供,sqlite需要提供自增列table ResTools has 7 columns but 6 values were supplied SQL Statement:insert into ResTools values(管理系统w…...

C#,字符串匹配(模式搜索)AC(Aho Corasick)算法的源代码

Aho-Corasick算法简称AC算法,也称为AC自动机(Aho-Corasick)算法,1975年产生于贝尔实验室(The Bell Labs),是一种用于解决多模式字符串匹配的经典算法之一。 the Bell Lab 本文的运行效果: AC算法以模式树…...

【网络取证篇】Windows终端无法使用ping命令解决方法

【网络取证篇】Windows终端无法使用ping命令解决方法 以Ping命令为例,最近遇到ping命令无法使用的情况,很多情况都是操作系统"环境变量"被改变或没有正确配置导致—【蘇小沐】 目录 1、实验环境(一)无法ping命令 &a…...

用PLC控制Labview自动运行

博图软件设置注意数据位正确下图为Labview读取CSV文件的位置测试数据如下图所示实现方法:在1分支内创建好条件,当PLC心跳为True那么就去跑True里面的流程(CSM框架)...

妙趣AI:开源Agent工具链与AI导航平台的工程实践

1. 妙趣AI:一个AI工具导航与开源Agent生态的实践如果你和我一样,每天被各种新冒出来的AI工具、模型和概念搞得眼花缭乱,同时又对“AI Agent”这个听起来很酷但落地很虚的东西充满好奇,那么“妙趣AI”这个项目可能正是你需要的。它…...

Sora 2与3D Gaussian结合实战指南(工业级部署避坑手册)

更多请点击: https://intelliparadigm.com 第一章:Sora 2与3D Gaussian结合的工业级部署全景图 Sora 2作为OpenAI新一代视频生成模型,在长时序建模与物理一致性方面取得显著突破;而3D Gaussian Splatting(3DGS&#x…...

Encounter/Innovus GIFT TCL 脚本流程索引清单

目录 一、 布局阶段 (Placement) 二、 布线阶段 (Routing) 三、 时序阶段 (Timing) 四、 电源阶段 (Power) 五、 IO 与端口处理 六、 调试与辅助工具 一、 布局阶段 (Placement) 脚本名称 核心用途 调用场景 userAddAllHInsts.tcl 为源模块中的每个扇出添加缓冲器 解决高扇…...

5分钟极速指南:免费将Word文档完美转换为LaTeX的终极工具docx2tex

5分钟极速指南:免费将Word文档完美转换为LaTeX的终极工具docx2tex 【免费下载链接】docx2tex Converts Microsoft Word docx to LaTeX 项目地址: https://gitcode.com/gh_mirrors/do/docx2tex 还在为Word文档转换LaTeX格式而烦恼吗?每次手动调整公…...

形转化理论:基本概念、深刻机制与研究框架的系统性阐述

摘要形转化理论(Form-Transformation Theory, FTT)是一种基于信息本体论的全新物理范式,旨在将宇宙的基本实在重新界定为永恒、离散的信息处理网络动力学。本文系统阐述该理论的核心概念体系、两大支柱性数学框架及从微观网络到宏观物理的涌现…...

C++ 特殊成员函数详解:构造、析构、拷贝与移动

C 特殊成员函数详解:构造、析构、拷贝与移动 目录 概述基础成员函数 默认构造函数虚析构函数 拷贝操作 拷贝构造函数拷贝赋值运算符 移动操作(C11) 移动构造函数移动赋值运算符 常见问题解析 为什么拷贝参数是 const T&?为什…...

如何突破窗口限制:3分钟掌握WindowResizer强制调整技巧

如何突破窗口限制:3分钟掌握WindowResizer强制调整技巧 【免费下载链接】WindowResizer 一个可以强制调整应用程序窗口大小的工具 项目地址: https://gitcode.com/gh_mirrors/wi/WindowResizer 还在为那些无法拖拽大小的应用程序窗口而烦恼吗?Win…...

终极指南:EdgeDB内置迁移系统实现零停机数据库演进的完整方案

终极指南:EdgeDB内置迁移系统实现零停机数据库演进的完整方案 【免费下载链接】edgedb Gel supercharges Postgres with a modern data model, graph queries, Auth & AI solutions, and much more. 项目地址: https://gitcode.com/gh_mirrors/ed/edgedb …...

Cursor插件实现网页数据AI就绪:从智能抓取到实时搜索的完整方案

1. 项目概述:将任意网页转化为AI就绪数据的Cursor插件 如果你经常用Cursor写代码、做研究,或者处理网络数据,那你肯定遇到过这样的场景:看到一个网页,想把里面的内容扒下来,整理成结构化的Markdown或者JSO…...