【Linux网络】手动部署并测试内网穿透

📢博客主页:https://blog.csdn.net/2301_779549673
📢博客仓库:https://gitee.com/JohnKingW/linux_test/tree/master/lesson
📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!
📢本文由 JohnKi 原创,首发于 CSDN🙉
📢未来很长,值得我们全力奔赴更美好的生活✨

在这里插入图片描述

在这里插入图片描述

文章目录

  • 📢前言
  • 🏳️‍🌈一、获取内网穿透的源码
  • 🏳️‍🌈二、验证win与虚拟机之间的联系
  • 🏳️‍🌈三、运行腾讯云服务器服务端
  • 🏳️‍🌈四、运行虚拟机客户端
  • 🏳️‍🌈五、建立连接
  • 🏳️‍🌈六、测试ssh工具
  • 🏳️‍🌈七、测试网络
  • 👥总结


📢前言

内网穿透​(NAT Traversal 或 Port Forwarding)是一种技术手段,用于让外部网络(如互联网)的设备访问位于内网(如家庭或企业局域网)中的服务或设备。它的核心目的是绕过内网环境中的网络限制​(如路由器NAT、防火墙等),实现内外网络的互联互通。

这里笔者将通过 腾讯云LInux-UbuntuXMware虚拟机-Ubuntu 以及 本地window 模拟一下内网穿透。


🏳️‍🌈一、获取内网穿透的源码

frp下载: https://github.com/fatedier/frp/releases/tag/v0.58.1

在这里插入图片描述
下载好后是这样的一个压缩包,我们先放到win桌面上,然后直接拖到腾讯云
在这里插入图片描述
然后解压
在这里插入图片描述

🏳️‍🌈二、验证win与虚拟机之间的联系

使用虚拟机的命令行窗口
在这里插入图片描述
输入 ifconfig 来获取ipv4地址,192.168.245.128
在这里插入图片描述
如果没法使用 ifconfig,可以使用sudo apt update && sudo apt install net-tools来安装一下ifconfig命令

因为等等要使用scp命令将frp压缩包传到虚拟机上,需要用到ssh命令,所以我们需要先安装相关命令,然后再启动

sudo apt install openssh-server		# 安装 SSH 服务
sudo systemctl start ssh    		# 启动 SSH 服务(Ubuntu 使用服务名 `ssh`,不是 `sshd`)
sudo systemctl enable ssh   		# 设置开机自启
sudo systemctl status ssh   		# 检查服务是否运行

出现 active(running)就代表可以使用了
在这里插入图片描述
如果系统启用了防火墙(如 ufw),放行 22 端口:

sudo ufw allow 22    # 允许 SSH 端口
sudo ufw reload      # 重载防火墙规则

紧接着我们使用win的命令行窗口使用ping命令验证一下两者之间的联系
在这里插入图片描述
进入下载的安装包所在的文件夹中,远程拷贝这个frp安装包到虚拟机中

在这里插入图片描述
在这里插入图片描述
传输成功
在这里插入图片描述
解压出来
在这里插入图片描述

🏳️‍🌈三、运行腾讯云服务器服务端

这里做一个简单的测试,我们将frps.toml里的端口号从7000改成8888,再运行一下frps文件,会发现还是使用的是7000端口号

wzy@VM-20-5-ubuntu:~/lesson/lesson90/frp/frp_0.58.1_linux_amd64$ ./frps
2025-03-18 10:55:48.590 [I] [frps/root.go:107] frps uses command line arguments for config
2025-03-18 10:55:48.790 [I] [server/service.go:237] frps tcp listen on 0.0.0.0:7000
2025-03-18 10:55:48.790 [I] [frps/root.go:114] frps started successfully

所以这里推荐大家使用 -c 操作指定配置文件启动服务

wzy@VM-20-5-ubuntu:~/lesson/lesson90/frp/frp_0.58.1_linux_amd64$ ./frps -c ./frps.toml
2025-03-18 10:57:18.446 [I] [frps/root.go:105] frps uses config file: ./frps.toml
2025-03-18 10:57:18.549 [I] [server/service.go:237] frps tcp listen on 0.0.0.0:8888
2025-03-18 10:57:18.549 [I] [frps/root.go:114] frps started successfully

此时我们使用 netstat -nltp 能够看到端口号为8888的服务已经启动了

wzy@VM-20-5-ubuntu:~$ netstat -nltp
(Not all processes could be identified, non-owned process infowill not be shown, you would have to be root to see it all.)
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 127.0.0.53:53           0.0.0.0:*               LISTEN      -                   
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      -                   
tcp        0      0 127.0.0.1:6010          0.0.0.0:*               LISTEN      -                   
tcp        0      0 127.0.0.1:6011          0.0.0.0:*               LISTEN      -                   
tcp6       0      0 :::8888                 :::*                    LISTEN      509917/./frps       
tcp6       0      0 ::1:6010                :::*                    LISTEN      -                   
tcp6       0      0 ::1:6011                :::*                    LISTEN      -                   
tcp6       0      0 :::22                   :::*                    LISTEN      -    

🏳️‍🌈四、运行虚拟机客户端

首先我们需要配置一下虚拟机客户端的配置信息,也就是frpc.toml
在这里插入图片描述
里面的服务端地址和端口号目前都不匹配,所以更改一下
具体服务端地址就是腾讯云服务器的ip地址
端口号就是刚刚更改的8888
在这里插入图片描述
至于下面的

localPort = 22
remotePort = 6000

我们可以按上图理解,也就是服务端可以通过6000端口来访问客户端的22号端口(sshd),也就能建立好链接

wzy@wzy-virtual-machine:~/frp/frp_0.58.1_linux_amd64$ sudo netstat -nltp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 127.0.0.53:53           0.0.0.0:*               LISTEN      661/systemd-resolve 
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1020/sshd: /usr/sbi 
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      989/cupsd           
tcp6       0      0 :::22                   :::*                    LISTEN      1020/sshd: /usr/sbi 
tcp6       0      0 ::1:631                 :::*                    LISTEN      989/cupsd   

🏳️‍🌈五、建立连接

腾讯云服务器端运行服务端程序,指定配置文件
虚拟机运行客户端程序,指定配置文件

两者都运行后就能连接好了
在这里插入图片描述

在这里插入图片描述
然后需要重新建立一个连接上虚拟机的会话
在这里插入图片描述
双击运行后,输入已存在的用户名和密码就登陆上了虚拟机了
在这里插入图片描述

🏳️‍🌈六、测试ssh工具

然后我们就可以发现我们的服务端已经可以运程访问到虚拟机的信息,我们再在桌面上创建一个txt文件试试看,创立成功了!
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

🏳️‍🌈七、测试网络

然后我们需要验证一下frp能否使得开远程访问虚拟机网络

这是一般条件下虚拟机的网页
在这里插入图片描述

我们额外在frpc.toml中添加一个http的映射(frp允许多个映射关系)

在这里插入图片描述
然后重启服务端、客户端,并使用netstat -nltp重新看一下端口使用情况
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
然后在网页中输入 服务器ip:8082 就能够远程连接到虚拟机的网页中
在这里插入图片描述

我们其实这里访问的就是 nginx 的默认页面,我们可以更改一下里面的内容
在这里插入图片描述
提示:没有写入权限的话用sudo

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

重新启动客户端,再刷新一下浏览器
在这里插入图片描述

解释一下,为什么这里能在win上面获取到虚拟机的网页

因为我们的linux服务器是起到中转站的作用,他先获取到了虚拟机上的内容,然后我们在win网页上通过ip地址获取到服务器上的内容,然后借用8082端口映射到虚拟机上80号端口就得到了虚拟机上网页的内容


👥总结

本篇博文对 手动部署并测试内网穿透 做了一个较为详细的介绍,不知道对你有没有帮助呢

觉得博主写得还不错的三连支持下吧!会继续努力的~

请添加图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL中的锁机制:从全局锁到行级锁

目录 1. 锁的基本概念 2. 全局锁 2.1 全局锁的定义 2.2 全局锁的类型 2.3 全局锁的使用场景 2.4 全局锁的实现方式 2.5 全局锁的优缺点 2.6 全局锁的优化 3. 表级锁 3.1 表级锁的类型 3.2 表级锁的使用场景 3.3 表级锁的优缺点 4. 意向锁(Intention Lo…

2025年渗透测试面试题总结- 某亭-安全研究员(题目+回答)

网络安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。 目录 一、SQL注入过滤单引号绕过方法 二、MySQL报错注入常用函数 三、报错注入绕WAF 四、MySQL写文件函数…

MacOS安装 nextcloud 的 Virtual File System

需求 在Mac上安装next cloud实现类似 OneDrive 那样,文件直接保存在服务器,需要再下载到本地。 方法 在 官网下载Download for desktop,注意要下对版本,千万别下 Mac OS默认的那个。 安装了登录在配置过程中千万不要设置任何同…

1.8 函数的连续性和间断点

1.连续的定义 2.间断点的定义 3.间断点的分类

Unity 云渲染本地部署方案

Unity Render Streaming 云渲染环境搭建 0.安装 Unity Render Streaming 实现原理: 服务器与客户端实现功能包括: 详细内容见官方文档: 官方文档: https://docs.unity3d.com/Packages/com.unity.renderstreaming3.1/manual/tutorial.html Unity 流送云渲染介绍: …

每日一题力扣3248.矩阵中的蛇c++

3248. 矩阵中的蛇 - 力扣&#xff08;LeetCode&#xff09; class Solution { public:int finalPositionOfSnake(int n, vector<string>& commands) {int i 0;int j 0;for (int k0;k<commands.size();k) {if (commands[k] "RIGHT")j;else if (comma…

本地基于Ollama部署的DeepSeek详细接口文档说明

前文&#xff0c;我们已经在本地基于Ollama部署好了DeepSeek大模型&#xff0c;并且已经告知过如何查看本地的API。为了避免网络安全问题&#xff0c;我们希望已经在本地调优的模型&#xff0c;能够嵌入到在本地的其他应用程序中&#xff0c;发挥本地DeepSeek的作用。因此需要知…

FPGA 以太网通信(三)

一、UDP协议 UDP&#xff08;User Datagram Protocol Protocol&#xff09;&#xff0c;即用户数据报协议&#xff0c;是一种面向无连接的传输层协议。UDP和TCP协议都属于传输层协议&#xff0c;在网络传输中同一 IP 服务器需要提供各种不同的服务&#xff0c;为了区别不同的服…

期刊分区表2025年名单下载(经济学、管理学)

2025年期刊分区表包括SCIE、SSCI、A&HCI、ESCI和OAJ&#xff0c;共设置了包括自然科学、社会科学和人文科学在内的21个大类 本次分享的是期刊分区表2025年名单经济学类、管理学类&#xff0c;一共7631025条 一、数据介绍 数据名称&#xff1a;期刊分区表2025年名单 数据…

如何在MCU工程中启用HardFault硬错误中断

文章目录 一、HardFault出现场景二、启动HardFault三、C代码示例 一、HardFault出现场景 HardFault&#xff08;硬故障&#xff09; 错误中断是 ARM Cortex-M 系列微控制器中一个较为严重的错误中断&#xff0c;一旦触发&#xff0c;表明系统遇到了无法由其他异常处理机制解决…

智能体开发革命:灵燕平台如何重塑企业AI应用生态

在AI技术深度渗透产业的今天&#xff0c;**灵燕智能体平台**以“全生命周期管理”为核心&#xff0c;为企业提供从智能体开发、协作到落地的闭环解决方案&#xff0c;开创了AI应用工业化生产的新模式。 三位一体的智能体开发体系 1. Agent Builder&#xff1a;零门槛构建专属…

机器学习之支持向量机(SVM)算法详解

文章目录 引言一、 什么是支持向量机&#xff08;SVM&#xff09;二、 SVM的基本原理三、数学推导1.线性可分情况2. 非线性可分情况3. 核函数 四、SVM的优缺点优点&#xff1a;缺点&#xff1a; 五、 应用场景六、 Python实现示例七、 总结 引言 支持向量机&#xff08;Suppor…

【C++进阶】深入探索类型转换

目录 一、C语言中的类型转换 1.1 隐式类型转换 1.2. 显式类型转换 1.3.C语言类型转换的局限性 二、C 类型转换四剑客 2.1 static_cast&#xff1a;静态类型转换&#xff08;编译期检查&#xff09; 2.2 dynamic_cast&#xff1a;动态类型转换&#xff08;运行时检查&…

机器学习之KL散度推导

机器学习之KL散度推导 预备知识 熵、交叉熵、条件熵 熵 (Entropy) 这一词最初来源于热力学。1948年&#xff0c;克劳德爱尔伍德香农将热力学中的熵引入信息论&#xff0c;所以也被称为香农熵 (Shannon entropy)、信息熵 (information entropy)。 对于具体熵的定义和用法推荐…

使用PlotNeuralNet绘制ResNet50模型

一、下载所需软件 1、下载MikTex 作用:将.tex文件转换为PDF文件 下载官网链接:Getting MiKTeX 2、下载Git 作用:将PlotNeuralNet库从GitHub上下载下来,在cmd使用命令行: git clone https://github.com/SamuraiBUPT/PlotNeuralNet-Windows.git 就可以将PlotNeuralNet…

10分钟打造专属AI助手:用ms-swift实现自我认知微调

想象一下&#xff0c;你是辛辛苦苦利用开源模型打造一个专属的AI产品助手。这个助手不仅能高效解答客户的问题&#xff0c;还能自豪地告诉大家&#xff1a;“我是某某打造的某某助手&#xff0c;代表着我们的品牌和价值观。” 然而&#xff0c;当前市面上的开源AI模型虽然技术先…

尝试使用tauri2+Django+React的项目

前言 使用Tauri2前端&#xff0c;本质是进程间的通信。并非前后端。 而想使用nw&#xff0c;先后端打包exe&#xff0c;再和前端打包成exe&#xff0c;并没有完成成功。 而笔者从Tauri中看到这种可能性。很有可能成功基于SeaORMMySQLTauri2ViteReact等的CRUD交互项目-CSDN博…

【JavaWeb学习Day27】

Tlias前端 员工管理 条件分页查询&#xff1a; 页面布局 搜索栏&#xff1a; <!-- 搜索栏 --><div class"container"><el-form :inline"true" :model"searchEmp" class"demo-form-inline"><el-form-item label…

Milvus WeightedRanker 对比 RRF 重排机制

省流:优先选择WeightedRanker 以rag为例,优先选择bm25全文检索,其次选择向量检索 Milvus混合搜索中的重排机制 Milvus通过hybrid_search() API启用混合搜索功能&#xff0c;结合复杂的重排策略来优化多个AnnSearchRequest实例的搜索结果。本主题涵盖了重排过程&#xff0c;…

PLY格式文件如何转换成3DTiles格式——使用GISBox软件实现高效转换

一、概述 在三维GIS和数字孪生领域&#xff0c;3DTiles格式已成为主流的数据格式之一。它由Cesium团队提出&#xff0c;专为大规模3D数据可视化设计&#xff0c;能够高效地加载和展示海量模型数据。而PLY格式则是一种常见的三维模型文件格式&#xff0c;主要用于存储点云数据或…