FRP 内网穿透、反向代理
frp[1] 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。
本文将以暴露内网 Web 服务为例,实践 frp 的安装部署。更多应用场景,可见 frp 示例[2] 。
frp 主要由 客户端(frpc) 和 服务端(frps) 组成,服务端通常部署在具有公网 IP 的机器上,客户端通常部署在需要穿透的内网服务所在的机器上。
可以在 Github 的 Release[3] 页面中下载到最新版本的客户端和服务端二进制文件。
本文公网、内网机器都是 Linux x86_64 ,所以选择了 frp_0.39.0_linux_amd64.tar.gz 。解压:
拷贝 frps 文件进公网机器,假设其 IP 为 x.x.x.x :
修改 frps.ini 文件,设置监听 HTTP 请求端口为 8080:
安装 supervisor 进行部署,后台长期运行:
拷贝 frpc 文件进内网机器,假设其 IP 为 192.168.1.100 :
修改 frpc.ini 文件,假设 frps 所在的服务器的 IP 为 x.x.x.x , local_port 为本地机器上 Web 服务监听的端口, 绑定自定义域名为 custom_domains 。
将 www.yourdomain.com 的域名 A 记录解析到 IP x.x.x.x 。
简单运行服务,进行测试:
以 systemd 进行部署,后台长期运行:
[1] frp: https://github.com/fatedier/frp
[2] frp 示例: https://gofrp.org/docs/examples/
[3] Release: https://github.com/fatedier/frp/releases
2023-07-25 广告