锋盈数科-知识库 Logo
首页
软件开发
计算机基础
Hello Halo
新手必读
关于本知识库
登录 →
锋盈数科-知识库 Logo
首页 软件开发 计算机基础 Hello Halo 新手必读 关于本知识库
登录
  1. 首页
  2. 网络与通信
  3. 纯技术手段实现内网穿透,免注册免收费

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

0
  • 网络与通信
  • 发布于 2024-09-28
  • 0 次阅读
黄健
黄健


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

*

  • 一、内网穿透
  • 二、方法分类
    *
    • 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 服务的管理,包括启动、停止、配置后台运行和设置开机自启动。具体教程在这里,就不赘述了。

五、完结

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

原文链接: https://blog.csdn.net/u012558210/article/details/140849783

标签: #网络与通信 23
相关文章

不懂组网方案、网络平面、网络架构?看这一篇就够了 2024-11-02 15:33

点击上方蓝色字体关注,知识分享 0 1 前言 大家好,云智能知识分享,不懂组网方案、网络平面、网络架构?看这一篇就够了,下面我们一起来看下有哪些知识点! 0 2 正文 组网方案 为了提升网络的安全性,使业务接口的流量负载均衡,NCE把网络划分为多个相互隔离的网络平面,分别为硬件管理网络、客户端/北向

光纤的跳线、尾纤区别在哪? 2024-11-02 15:33

跳线和尾纤是光纤通信系统中常见的两种连接组件,它们在结构、用途和应用场景上有所不同。 主要区别 | 特性 | 跳线 | 尾纤 | |———–|————————–|—————————| | 定义 | 一段带有两端连接器的光纤线缆,用于设备间连接 | 一段只有一端带有连接器的光纤线缆,另一端裸露光纤 |

如何确定光纤用几芯?用光纤与网线区别在哪里?

如何确定光纤用几芯?用光纤与网线区别在哪里? 2024-10-26 08:43

不少朋友在做光纤项目时,都有一个疑问,光纤需要用几芯的? 本期我们一起来总结下。 01 光纤用几芯? 光纤芯数,主要和光纤连接的设备接口和设备的通信方式有关。一般来说,光纤中光芯的数量,为设备接口总数乘以2后,再加上10%~20%的备用数量,而如果设备的通信方式有设备多路复用,就能减少芯数。 按照I

智能化弱电工程界面划分表,17个系统,很详细

智能化弱电工程界面划分表,17个系统,很详细 2024-10-21 09:07

弱电系统有哪些 ,如何进行划分界面呢?这个经常有项目经理不是很清楚,常见的弱电系统有17个,我们本期一起来看下,如何对弱电系统划分施工。 弱电智能化工程界面划分表 比较详细,包括弱电大部分的系统,适用于弱电大部分项目。 此图下载版本已上传知识星球,星球资料不断更新,若要下载相关弱电精品资料的,可以扫

这是一款网络工程师电脑必装的软件:SecureCRT,从零安装到精通,看本文足够了! 2024-09-30 16:47

你好,这里是网络技术联盟站,我是瑞哥。 SecureCRT 是一款广泛使用的终端仿真程序,由 VanDyke Software 公司开发。它旨在为网络管理员、工程师和开发人员提供安全、可靠的终端仿真和文件传输功能。SecureCRT 支持多种协议,包括 SSH、Telnet、Serial、RLogi

【机房-网络设备运维常识总结(2024-8-2更新)】 2024-09-30 16:47

机房-网络设备运维常识总结 一、服务器构造 二、服务器组件拆装 三、网络设备及耗材介绍 四、使用Xshell进行交换机管理 五、通过服务器进入BIOS进行基础配置 一、服务器构造 1、服务器高度:1U=4.445cm,常见服务器高度为1U、2U。 2、服务器前面板:指示灯(健康灯、UID灯)、电源按

目录

IT 外包服务商

  • 意见投递
  • zyf6619

软件开发应用

主菜单

  • 首页
  • 软件开发
  • 计算机基础
  • Hello Halo
  • 新手必读
  • 关于本知识库
Copyright © 2024 your company All Rights Reserved. Powered by Halo.