也谈谈内网穿透,带你一步步体验FRP!

我们家庭宽带基本都是基于NAT,并没有提供公网IP,那么想从公网(Internet)访问家里电脑起的某个端口或服务该怎么办?那就来试试FRP这款内网穿透工具吧!


为啥要内网穿透?

比如你在家里电脑搭配了NAS,提供图片服务,你在外面想用手机同步照片到家里的NAS上?再比如你在办公电脑上启动了一个测试项目(API接口),想让合作小伙伴从公网访问到测试接口等等吧。当然,如果没有类似需求可以略过。

FRP搭建的前提准备条件:

  • 具有公共 IP 地址的服务器(例如:阿里/腾讯等各种云主机)
  • 处于NAT或防火墙后面的内网的机器,可以提供tcp/http等服务(家庭电脑,公司内部电脑都可以)

先看看我呕心沥血画的FRP的原理及数据流程图:

原理详细说明:

FRP Server(Server,IP假设为:202.106.0.26)

  • 部署在公网: Server部署在拥有公网IP的服务器上,比如阿里云服务器。
  • 监听请求: Server会监听来自外网的请求(开放57003端口),并将这些请求转发到对应的内网服务。
  • 配置管理: 通过配置文件,Server会管理所有的客户端连接,新建监听端口,并维护连接状态。
  • 注意:要在防火墙开放需要暴露的端口(57003)

frp Client(Client,IP假设:10.133.0.20)

  • 部署在内网: Client部署在需要被访问的内网机器上。
  • 连接Server: Client会主动连接到Server,建立一条隧道。
  • 转发请求: 当有外部请求到达Server时,Server会通过建立的隧道将请求转发给Client服务。
  • 返回响应: Client处理完请求后,将响应结果通过隧道返回给Server,最终传给外网用户。

FRP何许人也?

FRP在内网穿透这块可谓是鼎鼎大名,是一款用 Golang 编写的快速反向代理,它通过转发端口来帮助您将 NAT 或防火墙后面的本地服务器暴露给 Internet。截至目前它支持 TCP 和 UDP,以及 HTTP 和 HTTPS 协议。

话不多说,我们来实战体验:

测试环境:

  • 阿里云主机,有固定公网IP
  • 内网测试服务器,系统Ubuntu2024

下载二进制可执行文件,服务端,客户端可执行程序和配置都在里面

wget https://github.com/fatedier/frp/releases/download/v0.61.1/frp_0.61.1_linux_amd64.tar.gz

tar zxvf frp_0.61.1_linux_amd64.tar.gz

cd frp_0.61.1_linux_amd64

服务端配置:

# cat frps.toml

bindPort = 57003 #端口随意

auth.method = "token"

auth.token = "mytokent"

启动服务端,这样会监听端口:202.106.0.26:57003

frps -c frps.toml

客户端配置:

前提:为了测试,已经有Nginx服务启动在内网机器的8005端口了,其他服务也可以,如ssh

FRP客户端配置

# cat frpc.toml

serverAddr = "public IP"

serverPort = 57003

auth.method = "token"

auth.token = "mytokent"

[[proxies]]

name = "nginx-simple-web"

type = "tcp"

localIP = "10.133.36.109"

localPort = 8005

remotePort = 59008

启动客户端FRP

./frpc -c frpc.toml


观察客户端及服务端日志,可以看到已经链接上FRP服务端了

服务端这时会启动新的端口59008(配置在客户端,但是需要在服务端的云服务上开通防火墙端口)

访问映射到公网的IP+端口,有域名的的也可以解析域名到公网地址上,使用域名访问

如:http://Public-IP:59008

以上是针对Linux有些了解的同学,如果内网是windows环境也没问题的,再介绍一个开源项目,地址在这:
https://github.com/luckjiawei/frpc-desktop。

这个开源项目提供了FRP跨平台桌面客户端,可视化配置,轻松实现内网穿透!

FRP应该有很多人介绍过,不过我还是按照我自己的方式,通过一步步的实际操作来验证和体验各种工具的可用性,找到工具的有点和不足之处,希望能帮到您。

[全文完]

相关文章

如何搭建内网服务器:详细教程

#如何搭建内网服务器#在企业办公、家庭网络或特定开发环境中,搭建内网服务器可以提供更高效、安全的资源共享和服务部署方式。本文将介绍如何在本地网络环境中搭建一台内网服务器,包括所需的硬件、软件配置及端口...

nginx应用场景梳理以及使用

在这种情况下,如果文件大小为 10 兆字节(10 MB),并且使用的带宽大小为 10 兆比特每秒(10 Mbps),我们需要先确认单位。通常文件大小以字节(bytes)表示,而带宽通常以比特(bits...

Nginx配置太麻烦?我用这个开源可视化面板一键搞定!

在日常开发和运维中,Nginx几乎是每个技术人都绕不开的一环。但提到它的配置,很多人就开始头疼——各种虚拟主机、反向代理、HTTPS、证书续签,错一个分号都可能导致服务挂掉。于是,我开始寻找一种能“可...

IPTV EPG服务迁移到家庭内网,华硕路由器部署Java及Web服务器指南

为了方便使用像Tivimate、Kodi、天光云影、DIYP或者TVBox类(酷9、影视等)的电视应用使用电子节目单(EPG)观看家里的IPTV的电视直播及回看,建了一个北京IPTV的电子节目单(EP...

最好用的内外网测速工具, speedtest 服务器搭建指南

大家好, 我是可爱的排骨目录一. speedtest 简介.二. 安装到 Windows. 难度 ★★三. 安装到 Linux. 难度 ★★★★★四. 安装到 群晖 DSM. 难度 ★五. 使用 Do...