Administrator
Administrator
发布于 2026-01-17 / 2 阅读

frp 内网穿透

frp 内网穿透

前言

  • 内网穿透技术,顾名思义就是能让外网的设备找到处于内网的设备,从而实现数据通信。
  • frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议,且支持 P2P 通信。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。 frp是一款非常热门的 开源 内网穿透工具 主要特点有配置简单性能高跨平台 因此受到很多人的青睐。

开源仓库:https://github.com/fatedier/frp

frp分为两个部分 服务端、客户端。frp需要有一台公网服务器运行服务端。

部署例子说明

以下以服务端使用云服务器ubuntu,客户端使用window系统,进行举例

其中云服务器部署了宝塔面板,使用docker进行部署frp服务端,如下:

image-uumiftqf.png

其中

web端口(7500):指frp的服务端页面,会显示各个已连接的服务端口一些状态。通过用户和密码访问

服务端口(7000):指frp服务端的服务端口,frp客户端需要通过这个端口来进行连接到服务器

HTTP监听端口(40800):指客户端在使用http服务的时候,比如访问客户端的部署的某个网页,客户端需要设定在配置里面设定本机的端口,以及远程域名,这样远程域名+HTTP监听端口,比如(xxx.kin.top:40800)就可以访问到客户端的某个端口下的网页服务,如果设置的是80端口,还不需要端口,直接访问xxx.kin.top即可

HTTP监听端口(40443):与上述HTTP监听端口同理

客户端设置:

以下是客户端的toml文件配置(注意,以前版本的ini文件配置,这两种配置的一些设置是不一样的)

serverAddr = "000.000.000.000" # 需要填入云服务器的ip,注意带引号
serverPort = 7000
auth.method = "token"
auth.token = "60d8a83c544e6168db" # 需要填入云服务器frp的token,可以在frps.toml中找到

# http服务(比如通过python -m http.server开启文件服务)
[[proxies]]
name = "test-http1" # 名字随意,不重复即可
type = "http" # 代表协议类型,不同的协议,其允许的参数不一样
localIP = "127.0.0.1" # 本机的ip,也可以是内网、docker网络中的ip
localPort = 8000
customDomains = ["xxxx.kin.top"] # 可以设定多个访问的域名,注意域名需要解析到对应的服务器ip

# tcp服务,比如22端口的ssh连接,就是tcp服务。remotePort是远程的端口,需要云服务器开启对应的端口
[[proxies]]
name = "test-tcp"
type = "tcp"
localIP = "127.0.0.1"
localPort = 22
remotePort = 6000

客户端运行服务:
cmd 切换到对应的frp客户端目录下,运行frpc.exe -c frpc.toml

配置查询

服务端配置设置请查询:服务端配置 | frp

客户端配置设置请查询:客户端配置 | frp