Tang
Tang
Published on 2025-11-08 / 8 Visits

内网穿透FRP

1.frp是什么?

frp是一个快速的反向代理服务,可以把NAT或防火墙后面的本地服务暴露到公网上。

frp目前支持TCP、UDP、HTTP以及HTTPS等协议,通过域名可以将请求转发到内网的服务上。

frp的主要功能和优点有:

1. 简单易用,无需复杂的配置就可以直接暴露内网服务。

2. 连接速度快,利用长连接池可以显著提高访问速度。

3. 支持多种协议,包括TCP、UDP、HTTP、HTTPS等。

4. 安全可靠,支持参数加密、身份验证等功能。

5. 跨平台支持,客户端和服务器支持常见的操作系统。

6. 轻量高效,资源占用低,不会明显降低主机性能。

7. 社区活跃,版本迭代快速。

FRP可以用于内部网络穿透、远程桌面或远程服务访问等场景。它可以轻松地通过公网访问部署在公司、家庭内网环境中的服务,如数据库服务器、Web应用等,在保证安全性的同时,获得高性能的访问体验。

2.图解

FRP 主要由两部分组成:

FRPC 客户端(frp client)

- 运行在公司内网机器上

- 接收来自公网的访问请求

- 将请求转发给内网服务

FRPS 服务端(frp server)

- 部署在具有公网 IP 的机器上

- 暴露服务的公网入口

- 接收公网访问请求

- 通过加密隧道转发到 FRPC

3.准备工作

1. 一台有公网IP的服务器

2. 一台内网主机

3. 在服务器端和客户端各自下载对应的版本

解压如下:

4.配置文件

# frps.toml
bindPort = 7000 				# 服务端与客户端通信端口
transport.tls.force = true		# 服务端将只接受 TLS链接
auth.token = "public" 			# 身份验证令牌,frpc要与frps一致
# Server Dashboard,可以查看frp服务状态以及统计信息
webServer.addr = "0.0.0.0"		# 后台管理地址
webServer.port = 7500 			# 后台管理端口
webServer.user = "admin"		# 后台登录用户名
webServer.password = "admin"	# 后台登录密码

# frpc.toml
transport.tls.enable = true		# 从 v0.50.0版本开始,transport.tls.enable的默认值为 true
serverAddr = "x.x.x.x"
serverPort = 7000 				# 公网服务端通信端口
auth.token = "public" 			# 令牌,与公网服务端保持一致

[[proxies]]
name = "test-http"
type = "tcp"
localIP = "127.0.0.1"			# 需要暴露的服务的IP
localPort = 9000				# 将本地9000端口的服务暴露在公网的6060端口
remotePort = 6060 				# 暴露服务的公网入口

[[proxies]]
name = "ssh"
type = "tcp"
localIP = "127.0.0.1"
localPort = 22
remotePort = 6000

注意: 访问的端口在服务器上要开放

5.测试

这里使用了python的http.server来做测试,也可以用ssh服务来做测试。

首先通过执行如下命令创建一个最简单的 HTTP 服务器(服务器默认监听端口是 8000,支持自定义端口号):

python -m http.server 9000

启动 frps:

# 后台启动
./frps -c ./frps.ini &

启动 frpc:

./frpc -c ./frpc.ini

frpc启动成功实例如下:

请求你公网ip:6060端口能访问到本地9000端口的http.server服务

如果你成功访问,那么,恭喜你,你已经学会了利用frp怎么配置内网穿透了!!!

-------------------------------------------------------------------------------------------------------------------------------------------------------

飞牛安装frpc客户端:

1、在飞牛的应用中心安装Frpc客户端

B站的飞牛安装FRP教程:

https://www.bilibili.com/video/BV18HKczUENB/?spm_id_from=333.337.search-card.all.click&vd_source=9423071a9a7cd3754c83de92b3fca45c

现在在用的配置:

serverAddr = "47.122.135.101"
serverPort = 50500
#不能删除, 否则连接不上会闪退
loginFailExit=false

auth.method = "token"
auth.token = "U@YWSD5@+ruP.hKQ5>9ka1Bu6c19I9ab"


###########################################################

[[proxies]]
name = "FnOS"
type = "tcp"
localIP = "127.0.0.1"
localPort = 56550
remotePort = 56545

[[proxies]]
name = "Syncthing"
type = "tcp"
localIP = "127.0.0.1"
localPort = 8384
remotePort = 8374

[[proxies]]
name = "1Panel"
type = "tcp"
localIP = "127.0.0.1"
localPort = 58090
remotePort = 58085       
        
###########################################################        

[[proxies]]
name = "Halo"
type = "tcp"
localIP = "127.0.0.1"
localPort = 50085
remotePort = 50080

[[proxies]]
name = "it-tools"
type = "tcp"
localIP = "127.0.0.1"
localPort = 50075
remotePort = 50070

[[proxies]]
name = "OpenList"
type = "tcp"
localIP = "127.0.0.1"
localPort = 50065
remotePort = 50060

[[proxies]]
name = "zdir"
type = "tcp"
localIP = "127.0.0.1"
localPort = 50055
remotePort = 50050

[[proxies]]
name = "LinuxCMD"
type = "tcp"
localIP = "127.0.0.1"
localPort = 50045
remotePort = 50040

[[proxies]]
name = "EasyVoice"
type = "tcp"
localIP = "127.0.0.1"
localPort = 50035
remotePort = 50030

[[proxies]]
name = "reader"
type = "tcp"
localIP = "127.0.0.1"
localPort = 50025
remotePort = 50020

[[proxies]]
name = "sun-panel"
type = "tcp"
localIP = "127.0.0.1"
localPort = 50015
remotePort = 50010

[[proxies]]
name = "dockports"
type = "tcp"
localIP = "127.0.0.1"
localPort = 50005
remotePort = 50000

###########################################################

[[proxies]]
name = "iKuai"
type = "tcp"
localIP = "192.168.1.1"
localPort = 80
remotePort = 49101      
        
[[proxies]]
name = "N1"
type = "tcp"
localIP = "192.168.1.2"
localPort = 80
remotePort = 49102
        
[[proxies]]
name = "iStore"
type = "tcp"
localIP = "192.168.1.5"
localPort = 80
remotePort = 49103
       
###########################################################        

2、阿里云服务器登录1Pannel,应用商店,安装frp服务端

[3、服务器上配置FRP](../2、阿里云/2、服务器上配置FRP.md)

[4、阿里云&飞牛安全](../2、阿里云/1、阿里云&飞牛安全&端口.md)