frp 是一款高性能的反向代理应用,专注于内网穿透。它支持多种协议,包括 TCP、UDP、HTTP、HTTPS 等,并且具备 P2P 通信功能。使用 frp,您可以安全、便捷地将内网服务暴露到公网,通过拥有公网 IP 的节点进行中转。
Github 地址:https://github.com/fatedier/frp
通过在具有公网 IP 的节点上部署 frp 服务端,您可以轻松地将内网服务穿透到公网,并享受以下专业特性:
版本号:v0.54.0
通过简单配置 HTTP 类型的代理,您可以让用户通过自定义域名访问内网的 Web 服务。HTTP 类型的代理非常适合将内网的 Web 服务通过自定义域名提供给外部用户。相比于 TCP 类型代理,HTTP 代理不仅可以复用端口,还提供了基于 HTTP 协议的许多功能。
HTTPS 与此类似,但是需要注意,frp 的 https 代理需要本地服务是 HTTPS 服务,frps 端不会做 TLS 终止。也可以结合 https2http 插件来实现将本地的 HTTP 服务以 HTTPS 协议暴露出去。
在
frps.toml
文件中添加以下内容,以指定 HTTP 请求的监听端口为8484
:
【应用商店】【frps】【进入安装目录】,
文件路径:
/opt/1panel/apps/frps/frps/data/ frps.toml
bindPort = 7000
vhostHTTPPort = 8484
注:如果需要配置
HTTPS
代理,还需要设置vhostHTTPSPort
。
阿里云服务器端口是没有开放的,所以我们需要先在阿里云安全组中开放相关端口
7000
:frp客户端和服务端通信端口8484
:服务器端要监听的端口7500
:这是frp面板的端口注意:这里客户端版本必须要和服务端版本保持一致,我这里使用的是Windows系统。所以需要下载:frp_0.54.0_windows_amd64.zip 版本。
在 frpc.toml
文件中添加以下内容,确保设置了正确的服务器 IP
地址、本地 Web
服务监听端口和自定义域名:
serverAddr = "x.x.x.x"
serverPort = 7000
[[proxies]]
name = "web"
type = "http"
localPort = 8782
customDomains = ["webman2024.tinywan.com"]
serverAddr = "x.x.x.x"
地址为服务器公网IP
php start.php start
Workerman[start.php] start in DEBUG mode
---------------------------------------------------- WORKERMAN ----------------------------------------------------
Workerman version:4.1.13 PHP version:7.4.27 Event-Loop:\Workerman\Events\Event
----------------------------------------------------- WORKERS -----------------------------------------------------
proto user worker listen processes status
tcp root SGSXService http://0.0.0.0:8782 24 [OK]
tcp root monitor none 1 [OK]
tcp root plugin.webman.redis-queue.consumer none 2 [OK]
-------------------------------------------------------------------------------------------------------------------
Press Ctrl+C to stop. Start success.
注意:确保本地服务
http://127.0.0.1:8782
可以正常访问
服务端frps
客户端frpc
cd /d/frp_0.54.0_windows_amd64
$ ./frpc.exe -c frpc.toml
2024/03/05 15:25:00 [I] [root.go:142] start frpc service for config file [frpc.toml]
2024/03/05 15:25:00 [I] [service.go:287] try to connect to server...
2024/03/05 15:25:00 [I] [service.go:279] [0c13f9a1260e245b] login to server success, get run id [0c13f9a1260e245b]
2024/03/05 15:25:00 [I] [proxy_manager.go:173] [0c13f9a1260e245b] proxy added: [web]
2024/03/05 15:25:00 [I] [control.go:170] [0c13f9a1260e245b] [web] start proxy success
将 webman2024.tinywan.com
的域名 A 记录解析到服务器的 IP 地址 x.x.x.x。如果服务器已经有对应的域名,您还可以将 CNAME 记录解析到原始域名。另外,通过修改 HTTP 请求的 Host 字段也可以实现相同的效果。
使用浏览器访问 http://webman2024.tinywan.com:8484
即可访问内网机器上的 8782
端口服务