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

news2025/3/22 17:47:36

📢博客主页: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 info
 will 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.coloradmin.cn/o/2319702.html

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

相关文章

java项目之在线购物系统(源码+文档)

项目简介 在线购物系统实现了以下功能: 使用在线购物系统的用户分管理员和用户两个角色的权限子模块。 管理员所能使用的功能主要有:主页、个人中心、用户管理、商品分类管理、商品信息管理、系统管理、订单管理等。 用户可以实现主页、个人中心、我的…

OO_Unit1

第一次作业 UML类图 代码复杂度分析 其中Expr中的toString方法认知复杂度比较高,主要源于多层条件嵌套和分散的字符串处理逻辑,重构时可重点关注这两部分的解耦。 代码量分析 1.”通用形式“ 我觉得我的设计的最大特点就是“通用形式”,具…

重要重要!!fisher矩阵元素有什么含义和原理; Fisher 信息矩阵的形式; 得到fisher矩阵之后怎么使用

fisher矩阵元素有什么含义和原理 目录 fisher矩阵元素有什么含义和原理一、对角线元素( F i , i F_{i,i} Fi,i​)的含义与原理二、非对角线元素( F i , j F_{i,j} Fi,j​)的含义与原理Fisher 信息矩阵的形式矩阵的宽度有位置权重数量决定1. **模型参数结构决定矩阵维度**2.…

[已解决]jupyter notebook报错 500 : Internal Server Error及notebook闪退

jupyter notebook出现如上图的报错,可以在黑色窗口中检查是为什么报错。 我检查发现是nbconvert导致的问题,卸载重装nbconvert。 但是这时候出现,jupyter notebook闪退问题。jupyter的黑色窗口出现一秒钟就没了。 在Anaconda Prompt中检查ju…

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

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

Redis分布式锁如何实现——简单理解版

目录 前言 满足条件 加锁之后产生的问题 避免死锁的方法 Lua脚本实现避免释放其他锁 看门狗判断过期 扩展 Lua脚本 Redission 前言 在如今开发的某些项目中,多个进程必须以互斥的方式独占共享资源,这时用分布式锁是最直接有效的,分布式…

数字化转型驱动卫生用品安全革新

当315晚会上晃动的暗访镜头揭露卫生巾生产车间里漂浮的异物、纸尿裤原料仓中霉变的碎屑时,这一触目惊心的场景无情地撕开了“贴身安全”的遮羞布,暴露的不仅是部分企业的道德缺失,更凸显了当前检测与监管体系的漏洞,为整个行业敲响…

自适应柔顺性策略:扩散引导控制中学习近似的柔顺

24年10月来自斯坦福大学和 TRI 的论文“Adaptive Compliance Policy: Learning Approximate Compliance for Diffusion Guided Control”。 柔顺性在操作中起着至关重要的作用,因为它可以在不确定的情况下平衡位置和力的并发控制。然而,当今的视觉运动策…

SVN简明教程——下载安装使用

SVN教程目录 一、开发中的实际问题二、简介2.1 版本控制2.2 Subversion2.3 Subversion的优良特性2.4 工作原理2.5 SVN基本操作 三、Subversion的安装与配置1. 服务器端程序版本2. 下载源码包3. 下载二进制安装包4. 安装5. 配置版本库① 为什么要配置版本库?② 创建目…

“智改数转”新风口,物联网如何重构制造业竞争力?

一、政策背景 为深化制造业智能化改造、数字化转型、网络化联接,江苏省制定了《江苏省深化制造业智能化改造数字化转型网络化联接三年行动计划(2025-2027年)》,提出到2027年,全省制造业企业设备更新、工艺…

从数据洪流到智能洞察:人工智能如何解锁大数据的价值?

引言:数据洪流时代,企业的机遇与挑战 在这个信息爆炸的时代,数据正以前所未有的速度增长。IDC预测,全球数据量将在未来几年内持续飙升,企业每天都会产生海量的用户行为数据、市场交易数据、设备传感数据等。理论上&…

蓝桥杯 之 数论

文章目录 习题质数找素数 LCM报数游戏 快速幂数字诗意 组合数与错位排序小蓝与钥匙 同余取模 数论,就是一些数学问题,蓝桥杯十分喜欢考察,常见的数论的问题有:取模,同余,大整数分解,素数&#x…

SpringBoot的启动原理?

大家好,我是锋哥。今天分享关于【SpringBoot的启动原理?】面试题。希望对大家有帮助; SpringBoot的启动原理? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 Spring Boot的启动原理主要是通过 SpringApplication 类来…

从零开始搭建向量数据库:基于 Xinference 和 Milvus 的文本搜索实践

引言 在 AI 和大数据时代,向量数据库正成为处理非结构化数据(如文本、图像)的利器。最近,我尝试用 Xinference 和 Milvus 搭建一个简单的文本搜索系统,从读取本地文本文件到实现交互式查询和高亮显示匹配结果&#xf…

scrapy入门(深入)

Scrapy框架简介 Scrapy是:由Python语言开发的一个快速、高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据,只需要实现少量的代码,就能够快速的抓取。 新建项目 (scrapy startproject xxx):新建一个新的…

docker模拟Dos_SYN Flood拒绝服务攻击 (Ubuntu20.04)

目录 ✅ 一、实验环境准备(3 个终端) 👉 所以最终推荐做法: 2️⃣ 配置 seed-attacker 为攻击者,开启 telnet 服务: 3️⃣ 配置 victim-10.9.0.5 为受害者服务器,开启 telnet 客户端并监听&…

基于PySide6的CATIA自动化工具开发实战——空几何体批量清理系统

一、功能概述 本工具通过PySide6构建用户界面,结合PyCATIA库实现CATIA V5的自动化操作,提供两大核心功能: ​空几何体清理:智能识别并删除零件文档中的无内容几何体(Bodies)​空几何图形集清理&#xff1…

Spring 声明式事务应该怎么学?

1、引言 Spring 的声明式事务极大地方便了日常的事务相关代码编写,它的设计如此巧妙,以至于在使用中几乎感觉不到它的存在,只需要优雅地加一个 Transactional 注解,一切就都顺理成章地完成了! 毫不夸张地讲&#xff…

从 0 到 1 掌握鸿蒙 AudioRenderer 音频渲染:我的自学笔记与踩坑实录(API 14)

最近我在研究 HarmonyOS 音频开发。在音视频领域,鸿蒙的 AudioKit 框架提供了 AVPlayer 和 AudioRenderer 两种方案。AVPlayer 适合快速实现播放功能,而 AudioRenderer 允许更底层的音频处理,适合定制化需求。本文将以一个开发者的自学视角&a…

支持多系统多协议且可提速的下载工具

在网络下载需求日益多样的当下,一款好用的下载器能极大提升效率。今天就给大家介绍 AB Download Manager,它免费又开源,能适配 Windows 和 Linux 系统,带来超便捷的下载体验。 AB Download Manager 采用先进的多线程技术&#xf…