[Frp]内网穿透入门-概念理解与安装
原理简介
frp 主要由两个程序组成:客户端(frpc) 和 服务端(frps)。通常,服务端部署在具有公网 IP 地址的服务器上,而客户端部署在需要穿透的内网服务所在的机器上。
由于内网服务缺乏公网 IP 地址,因此无法直接被非局域网内的用户访问。用户通过访问服务端的 frps,frp 负责根据请求的端口或其他信息将请求路由到相应的内网机器,从而实现通信。
代理
在 frp 中,一个代理对应一个需要公开访问的内网服务。一个客户端可以同时配置多个代理,以满足不同的需求。
代理类型
frp 支持多种代理类型供不同场景使用。
TCP:
单纯的 TCP 端口映射,使服务端能够根据不同的端口将请求路由到不同的内网服务。
UDP:
单纯的 UDP 端口映射,与 TCP 代理类似,但为 UDP 流量。
HTTP:
专为 HTTP 应用设计,支持修改 Host Header 和增加鉴权等额外功能。
HTTPS:
类似于 HTTP 代理,但专门用于处理 HTTPS 流量。
STCP:
提供安全的 TCP 内网代理,要求在被访问者和访问者的机器上都部署 frpc,不需要在服务端暴露端口。
SUDP:
提供安全的 UDP 内网代理,与 STCP 类似,需要在被访问者和访问者的机器上都部署 frpc,不需要在服务端暴露端口。
XTCP:
点对点内网穿透代理,与 STCP 类似,但流量不需要经过服务器中转。
TCPMUX:
支持服务端 TCP 端口的多路复用,允许通过同一端口访问不同的内网服务。
但实际上,最常用的代理类型就是TCP/UDP,STCP/SUDP和XTCP。
安装
前往https://github.com/fatedier/frp/releases下载对应自己系统架构的压缩包,解压后frps和frpc都在内。
由于采用Go语言编写,Frp也不需要安装即可使用。将 frpc 复制到内网服务所在的机器上,将 frps 复制到拥有公网 IP 地址的服务器上,并将它们放在任意运行目录。
在运行目录下打开shell(Windows对应CMD),如果要运行服务端(frps):
./frps -c ./frps.toml
如果要运行客户端(frpc):
./frpc -c ./frpc.toml
持久化运行&开机自启
你会遇到和RustDesk类似的问题:一旦我关闭shell/cmd就停止运行了。关于如何持久化运行应用,RustDesk这里有详细介绍,可以参考一下,然后举一反三
本文中所有的内容均以发布当天信息为参考,日后若有变更请以最新信息为准。