frp (fast reverse proxy) 是一个高性能的反向代理应用,它可以帮助您将内网服务暴露到公网上,实现内网穿透”
简单介绍
frp 使用Go编写 性能非常出色,支持 TCP、UDP、HTTP、HTTPS 等多种协议,且支持 P2P 通信。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。
下载
GitHub frp项目 Release
部署
解压下载的压缩包,主要由客户端 (frpc) 和服务端 (frps) 两部分组成:
- frps (服务端): 部署在具有公网 IP 的服务器上,负责接收客户端的请求,并转发到内网服务。
- frpc (客户端): 部署在需要暴露服务的内网机器上,连接到服务端,并将内网服务映射到服务端。
服务端配置
创建服务端配置文件 frps.toml
1
2
3
4
5
6
|
bindPort = 7000 # 服务端监听端口
vhostHTTPPort = 8080 # HTTP 协议的端口 (可选)
# 开启服务端管理界面 默认为 127.0.0.1,如果需要公网访问,需要修改为 0.0.0.0。
webServer.addr = "0.0.0.0"
webServer.port = 7500
|
启动 frps
启动成功后输出日志如下:
1
2
3
4
5
|
2024-12-27 16:20:12.904 [I] [frps/root.go:105] frps uses config file: ./frps.toml
2024-12-27 16:20:12.958 [I] [server/service.go:237] frps tcp listen on 0.0.0.0:7000
2024-12-27 16:20:12.958 [I] [server/service.go:305] http service listen on 0.0.0.0:8080
2024-12-27 16:20:12.958 [I] [frps/root.go:114] frps started successfully
2024-12-27 16:20:12.958 [I] [server/service.go:351] dashboard listen on 0.0.0.0:7500
|
客户端配置
创建客户端配置文件 frpc.toml 注意与服务端配置名称不同
1
2
3
4
5
6
7
8
9
|
serverAddr = "123.123.123.123" # 服务端地址
serverPort = 7000 # 服务端端口
[[proxies]]
name = "ysszzs"
type = "http" # http服务
localIP = "127.0.0.1"
localPort = 8188
customDomains = ["::1","localhost"] # 自定义域名
|
启动 frpc
启动成功后本地 8188 端口的服务将被映射到服务端的 8080 端口,并通过自定义域名访问。
代理shh
添加一个proxies配置项
1
2
3
4
5
6
|
[[proxies]]
name = "ssh"
type = "tcp"
localIP = "127.0.0.1"
localPort = 22
remotePort = 6000
|
这样,frpc 就可以通过 ssh 协议映射到服务端的 6000 端口,实现ssh连接到内网机器。
更多使用方法参考:
官方文档