纯技术手段实现内网穿透,免注册免收费

news2025/1/12 19:55:18

纯技术手段实现内网穿透,免注册免收费

    • 一、内网穿透
    • 二、方法分类
      • 2.1 基于隧道协议的内网穿透
      • 2.2 基于反向代理的内网穿透
      • 2.3 基于SSH的内网穿透
      • 具体工具的分类如下:
        • 基于隧道协议
        • 基于反向代理
        • 基于SSH
    • 三、本文方法
    • 四、具体操作
      • 4.1 安装服务端
      • 4.2 安装客户端
    • 五、完结

大家好,我是比特桃。互联网时代大家都需要一个身份标识自己,对于普通用户来说,创作的内容是基础,所以一个平台的 UID 就可以代表了用户本身。但对于开发者来说,所开发的服务是基础,为了让自己的服务能够更好的进行测试或提供给其他人,就需要因特网能够唯一识别的域名或 IP 来定位自己提供的服务。

一、内网穿透

平常我们上网会用到域名,虽然现在移动互联网,大家都很少直接接触具体的域名了。但实际软件背后都会通过具体的域名来定位到具体的 IP 地址,从而和软件平台进行通讯。由于 IPv4 的地址已经接近枯竭,所以现在大家都会转战到 IPv6 的地址上来。IPv6 是下一代互联网协议,拥有128位地址空间,可以提供约340个十亿亿亿个地址,几乎无限的地址空间。这也是物联网的基础,这个话题我们就不再展开。重点是对于普通人来说,我们如何获取因特网能够唯一识别的 IP。

免责声明:很多公司禁止通过私自搭建内网穿透的方式入侵公司内网,有的公司有正规的手续办理内部的 VPN 使用。在进行该操作之前请确定方式及提供的服务合法合规。

二、方法分类

实现内网穿透的方法有很多种,可以根据技术原理大致分为以下几类:

2.1 基于隧道协议的内网穿透

这些工具通过建立隧道协议,将内网服务映射到外网,达到穿透防火墙的效果。

  • Ngrok:通过建立加密的隧道,将本地服务映射到公共URL,从而实现内网穿透。
  • Natapp:类似于Ngrok,通过隧道协议将本地服务映射到外网。
  • Frp:使用TCP、UDP等协议建立隧道,实现内网穿透。支持多种协议和复杂配置。
  • Spike:也是一种隧道协议工具,用于将本地服务暴露到公网。
  • Cpolar:通过隧道协议将本地服务映射到外网,支持HTTP、HTTPS、TCP等多种协议。

2.2 基于反向代理的内网穿透

这些工具通过反向代理技术,将外部请求转发到内网服务,从而实现内网穿透。

  • 花生壳:通过反向代理技术,将公网请求代理到内网设备上。
  • Lanproxy:使用反向代理的方式,将内网服务通过代理服务器暴露到外网。

2.3 基于SSH的内网穿透

这些工具利用SSH协议的端口转发功能,实现内网穿透。

  • SSH:通过SSH的本地端口转发和远程端口转发功能,可以将内网服务映射到外网。
  • autossh:在SSH的基础上增加了自动重连功能,确保隧道的稳定性。

具体工具的分类如下:

基于隧道协议
  • Ngrok
  • Natapp
  • Frp
  • Spike
  • Cpolar
基于反向代理
  • 花生壳
  • Lanproxy
基于SSH
  • SSH
  • autossh

这些工具在使用场景和实现细节上各有不同,可以根据具体需求选择合适的工具。例如,Ngrok和Natapp适合快速临时的内网服务暴露,Frp适合更复杂和多样化的需求,SSH和autossh适合熟悉命令行和需要稳定性的用户。

三、本文方法

由于开发者通常需要暴露的是一个本机计算机上的端口,其安全性还是值得重视的。所以关于需要注册的跳板机,出于安全和性价比多方面考虑都不会使用。本文重点推荐的是基于开源项目:frp实现的一种内网穿透。

在这里插入图片描述

这里是一张FRP服务技术原理图:

• FRP Server:位于图的顶部,负责在外部网络中接收来自FRP客户端的连接请求,并将这些请求转发给内部网络中的实际服务。

• Client with Service:左下角表示内部网络中的实际服务客户端,它通过FRP客户端连接到FRP服务器。

• FRP Client:中央位置,负责在内部网络中建立隧道并将流量转发给FRP服务器。

• Client with Browser:右下角表示外部网络中的浏览器客户端,它通过HTTP/HTTPS请求与FRP服务器通信。

具体的连接方式

• 服务流量(Service Traffic) :从实际服务客户端到FRP客户端的连接。

• 隧道(Tunnel) :从FRP客户端到FRP服务器的连接,形成一个隧道以传输流量。

• HTTP/HTTPS请求和响应(HTTP/HTTPS Request & Response) :从外部浏览器客户端到FRP服务器的请求和响应。

FRP通过隧道将内部网络中的服务暴露给外部网络,从而实现内网穿透的功能。

四、具体操作

由于 frp 的服务端和客户端都是开源的,所以我们只需要将拥有公网 IP 的电脑安装好服务端;将准备内网穿透的电脑安装好客户端。就可以搭配进行内网穿透,实现被因特网上所有机器进行访问。这里推荐直接跟着 frp 的中文文档进行。

作者本人的环境是有一台公网 IP 的 NAS 作为服务端,异地有一台可以访问互联网的电脑作为客户端。

4.1 安装服务端

NAS 是群晖的系统,熟悉群晖的小伙伴应该知道,可以直接像 Linux 一样使用它。先准备好配置文件,现在 frp 的配置文件是toml格式的。作者使用的服务端配置文件如下所示:

[common]
bind_addr = "0.0.0.0"
bind_port = 7000
bind_udp_port = 7001
kcp_bind_port = 7000
vhost_http_port = 10080
vhost_https_port = 10443
dashboard_addr = "0.0.0.0"
dashboard_port = 7500
dashboard_user = "admin"
dashboard_pwd = "admin"
log_file = "./frps.log"
log_level = "info"
log_max_days = 3
disable_log_color = false
token = "12345678"
allow_ports = "2000-3000,3001,3003,4000-50000"
max_pool_count = 5
max_ports_per_client = 0
subdomain_host = "frps.com"
tcp_mux = true

将上面的这个配置文件保存成frps.toml,然后通过 Docker 启动 frp 容器:

在这里插入图片描述

双击安装 frps 的服务端,将配置文件及相关端口映射出来。配置文件映射路径为:/你本机的路径/frps.toml:/etc/frp/frps.toml

在这里插入图片描述

看一下日志窗口,确定启动成功后即可。

4.2 安装客户端

其实 frp 可以安装在诸多平台上,Windows、Linux都可以。我这里客户端是一台 Ubuntu:

#下载
wget https://github.com/fatedier/frp/releases/download/v0.59.0/frp_0.59.0_linux_amd64.tar.gz
#解压
tar -zxvf frp_0.59.0_linux_amd64.tar.gz
#进入目录
cd frp_0.59.0_linux_amd64/

进入目录后可以发现既有 Server 又有 Client,只用关注客户端这俩文件即可:
在这里插入图片描述

先修改一下 Client的配置文件,改成如下:

serverAddr = "你的公网ip"
serverPort = 7000
auth.token = "12345678"

[[proxies]]
name = "test-tcp"
type = "tcp"
localIP = "127.0.0.1"
localPort = 2001
remotePort = 2001

其中localPort就是本机想要公开出去的端口,remotePort就是服务端的端口,这俩做了一个映射。可以依次写很多个映射,这里就举个例子。
修改完配置文件后,直接脚本启动:./frps -c ./frps.toml。然后就可以通过服务端对应的IP:端口进行访问了。

最后,一般推荐大家通过 systemd 来进行 frp 服务的管理,包括启动、停止、配置后台运行和设置开机自启动。具体教程在这里,就不赘述了。

五、完结

至此,我们就完成了内网穿透,实现了无公网的电脑对外提供服务,希望大家一切顺利。

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

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

相关文章

【Linux 网络】链路层

文章目录 链路层1 以太网1.1 以太网帧格式1.2 MAC地址1.3 MTU 2. ARP协议2.1 ARP协议的作用2.2 ARP数据报格式2.3 ARP的流程 其他协议3. DNS协议3.1 域名3.2 输入URL后的事情 4. ICMP协议4.1 ICMP 功能都有啥?4.2 基于ICMP的命令ping命令 5. NAT协议5.1 NAT技术背景…

android13关机按钮 去掉长按事件 去掉启动到安全模式 删除关机长按

总纲 android13 rom 开发总纲说明 目录 1.前言 2.界面效果 3.问题分析 4.代码修改 5.编译替换运行 6.彩蛋 1.前言 在Android操作系统中,关机按钮通常具有多种功能,包括短按关机、长按启动语音助手或重启设备等。在某些情况下,用户或设备管理员可能希望自定义关机按…

爬虫中常见的加密算法Base64伪加密,MD5加密【DES/AES/RSA/SHA/HMAC】及其代码实现(一)

目录 基础常识 Base64伪加密 python代码实现 摘要算法 1. MD5 1.1 JavaScript 实现 1.2 Python 实现 2. SHA 2.1 JavaScript 实现 2.2 Python 实现 2.3 sha系列特征 3. HMAC 3.1 JavaScript 实现 3.2 Python 实现 对称加密 一. 常见算法归纳 1. 工作模式归纳 …

码农职场:一本专为IT行业求职者量身定制的指南

目录 写在前面 推荐图书 推荐理由 写在后面 写在前面 本期博主给大家推荐一本专为IT行业求职者量身定制的指南:《码农职场》。 推荐图书 https://item.jd.com/14716160.html 内容简介 这是一本专为广大IT 行业求职者量身定制的指南,提供了从职前…

使用Python实现栅格划分(渔网)

在QGIS中,“渔网”(Fishnet)是指一种创建规则网格(通常是矩形或正方形)的工具,这些网格可以用于空间数据的采样、分区或作为其他地理空间分析的基础。渔网工具可以生成一个由多边形组成的图层,每…

文件解析漏洞—IIS解析漏洞—IIS7.X

在IIS7.0和IIS7.5版本下也存在解析漏洞,在默认Fast-CGI开启状况下,在一个文件路径/xx.jpg后面加上/xx.php会将 “/xx.jpg/xx.php” 解析为 php 文件 利用条件 php.ini里的cgi.fix_pathinfo1 开启IIS7在Fast-CGI运行模式下 在 phpstudy2018 根目录创建…

4、postgresql拓展表空间

base是数据保存目录, OID:对象标识符,无符号4字节整数, 数据库的oid在pg_database中,表,索引,序列等OID存储在pg_class中 表空间:pg最大的逻辑存储单元,表索引数据库都…

Linux安装Zabbix7.0并且使用外置Mysql数据库

MySQL 数据库服务版本。必须至少为 8.00.30 # rpm -Uvh https://repo.zabbix.com/zabbix/7.0/alma/9/x86_64/zabbix-release-7.0-5.el9.noarch.rpm # dnf clean all #安装zabbix # dnf install zabbix-server-mysql zabbix-web-mysql zabbix-nginx-conf zabbix-sql-scripts za…

【一图学技术】6.反向代理 vs API网关 vs 负载均衡的原理和使用场景

反向代理 vs API网关 vs 负载均衡 一、概念 ​ 🌏反向代理(Reverse Proxy)是一种位于服务器和客户端之间的代理服务器。 ​ 它接收来自客户端的请求,并将其转发给后端服务器,然后将后端服务器的响应返回给客户端。客…

dfs,CF 196B - Infinite Maze

一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 https://codeforces.com/problemset/problem/196/B 二、解题报告 1、思路分析 考虑如何判断一条路径可以无限走? 我们对朴素的网格dfs改进,改进为可以dfs网格外的区域 如果存在某个…

Go语言加Vue3零基础入门全栈班10 Go语言+gRPC用户微服务项目实战 2024年07月31日 课程笔记

概述 如果您没有Golang的基础,应该学习如下前置课程。 Golang零基础入门Golang面向对象编程Go Web 基础Go语言开发REST API接口_20240728Go语言操作MySQL开发用户管理系统API教程_20240729Redis零基础快速入门_20231227GoRedis开发用户管理系统API实战_20240730Mo…

大模型下的视频理解video understanding

数据集 Learning Video Context as Interleaved Multimodal Sequences Motivation: 针对Narrative videos, like movie clips, TV series, etc.:因为比较复杂 most top-performing video perception models 都是研究那种原子动作or人or物 understandin…

C++ 布隆过滤器

1. 布隆过滤器提出 我们在使用新闻客户端看新闻时,它会给我们不停地推荐新的内容,它每次推荐时要去重,去掉 那些已经看过的内容。问题来了,新闻客户端推荐系统如何实现推送去重的? 用服务器记录了用 户看过的所有历史…

OpenStack——存储服务

存储侧: 块存储 文件存储 对象存储 存储简介 特点: 1、OS盘只能使用块存储 2、不能实现共享【不能解决两个主机同时去读写同一个block的问题】 3、性能最优 filesystem——文件存储 VIMS:高可用文件系统 ——提供了锁机制 对象存储 ——解…

MySQL搭建主从复制和读写分离(数据库管理与高可用)

集群: 高可用; 负载均衡; 高性能 1、MySQL主库在事务提交时把数据变更(insert、delet、update)作为事件日志记录在二进制日志表(binlog)里面。 2、主库上有一个工作线程 binlog dump thread…

蓝桥杯 DNA序列修正

今天再刷蓝桥的题目时,发现这道题目的第二种更为简洁的做法; 首先题目描述如下: 样例输入 5 ACGTG ACGTC 样例输出 2 对于这道题目,我们想的是用两个数组将其分别存储下来,然后再根据A-T、G-C的配对关系将数组二&a…

【C语言】堆排序

堆排序即利用堆的思想来进行排序,总共分为两个步骤: 1. 建堆 升序:建大堆 降序:建小堆 原因分析: 若升序建小堆时间复杂度是O(N^2) 升序建大堆,时间复杂度O(N*logN) 所以升序建大堆…

记一次对HTB:Carpediem的渗透测试

信息收集 端口扫描 通过nmap对靶机端口进行探测,发现存在22和80端口。 访问web页面。发现是一个静态页面,没有可利用的部分。 目录扫描 子域枚举 通过对域名进行fuzz子域名,发现存在portal一级域名。 将它加入/etc/hosts,访问之…

vue3+gsap实现圆形路径动画

同学们可以私信我加入学习群! 正文开始 前言一、引入并使用gsap二、详解gsap.to的各参数三、路径svg四、其他路径文字路径动画总结 前言 我开发的桌面端软件最近增加了在线更新功能,其中更新动画部分是由gsap实现的,整体实现思路已经在elect…