如何优雅地使用 Frp 内网穿透
本文最后更新于:2023年2月20日 中午
前言
FRP 作为经典内网穿透工具,网络上已经有很多资料,我这里就提供一个基于 Docker
的搭建思路,使得 FRP 更加易用,实现类似于 思有云 的效果。
FRP 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。
FRP 的工作原理如下:
搭建步骤
安装 Docker
和Docker Compose
参考 文档。
FRP 安装
FRP 分为客户端和服务端,客户端与服务端连接,服务端进行流量转发,从而可以内网穿透。此处仅介绍服务端的配置,客户端推荐OpenWRT
的luci-app-frp
。
❗注意:以下步骤均在同一个文件夹下。
FRP 服务端配置文件设置
FRP 的配置文件比较简单,可直接参考 官方文档。
推荐的配置文件如下,保存至为 frps.ini
(❗注意将形如[foobar]
的替换为自己的配置):
[common]
bind_port = 7123
kcp_bind_port = 7123
token = [token]
vhost_http_port = 80
vhost_https_port = 443
dashboard_port = 57234
dashboard_user = admin
dashboard_pwd = [dashboard_pwd]
enable_prometheus = true
log_level = trace
log_max_days = 1
tcp_mux = true
max_pool_count = 50
subdomain_host = [subdomain_host]
🚨不建议修改 vhost_http_port
和vhost_https_port
。
Docker Compose
配置文件设置
docker-compose.yaml
文件如下所示:
version: '3'
services:
frps:
image: cloverzrg/frps-docker
container_name: frps
restart: always
volumes:
- ./frps.ini:/conf/frps.ini
ports:
- 7123:7123
- 7123:7123/udp
- 57234:57234
- 53310:80
然后执行以下命令,就可以运行起来了:
docker-compose up -d
此时 tcp/kcp bind
端口均为 7123
,dashboard
端口为 57234
,http
端口为53310
。
反向代理
以下以宝塔面板为例。
反向代理 Dashboard
宝塔面板的反向代理直接在站点设置 - 反向代理里面添加即可。
同时建议配置好HTTPS
。这样就能访问域名来访问 FRP 面板。
反向代理 HTTP 端口
与上一个步骤是相同的操作,注意 端口变了!
这样做的好处是,如果你想要添加新的设备,你只需要将新域名 CNAME 到已有的域名即可,对于一些给的端口不多的机器十分好用,也能更方便分享给你的小伙伴们。
如果你的 DNS 服务提供商支持泛域名的话,你也可以直接在宝塔面板里面添加类似于 *.example.com
的域名,这样就完全只用在客户端配置即可。
后记
如果对带宽要求不大的话,可以考虑用KCP
,速度更加的快!
FRP 作为一个非常优秀的内网穿透应用,上手门槛也不高,希望国内类似的花某壳等耗子尾之。