frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议,且支持 P2P 通信

frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议,且支持 P2P 通信。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。 为什么使用 frp ? 通过在具有公网 IP 的节点上部署 frp 服务端,可以轻松地将内网服务穿透到公网,同时提供诸多专业的功能特性,这包括: 客户端服务端通信支持 TCP、QUIC、KCP 以及 Websocket 等多种协议。 采用 TCP 连接流式复用,在单个连接间承载更多请求,节省连接建立时间,降低请求延迟。 代理组间的负载均衡。 端口复用,多个服务通过同一个服务端端口暴露。 支持 P2P 通信,流量不经过服务器中转,充分利用带宽资源。 多个原生支持的客户端插件(静态文件查看,HTTPS/HTTP 协议转换,HTTP、SOCK5 代理等),便于独立使用 frp 客户端完成某些工作。 高度扩展性的服务端插件系统,易于结合自身需求进行功能扩展。 服务端和客户端 UI 页面。 --简单使用方法-- 暴露内网服务 内网穿透的玩法有很多,这里列举一个比较常见的例子。 比如:我要暴露一个只有自己能访问到服务器。那么可以这样配置: 配置 frps.ini,并启动服务端 frps ini复制代码[common] bind_port = 7000 在需要暴露到外网的机器上部署 frpc,配置如下: ini复制代码[common] server_addr = x.x.x.x server_port = 7000 [secret_ssh] type = stcp # 只有 sk 一致的用户才能访问到此服务 sk = abcdefg local_ip = 127.0.0.1 local_port = 22 在想要访问内网服务的机器上也部署 frpc,配置如下: ini复制代码[common] server_addr = x.x.x.x server_port = 7000 [secret_ssh_visitor] type = stcp # stcp 的访问者 role = visitor # 要访问的 stcp 代理的名字 server_name = secret_ssh sk = abcdefg # 绑定本地端口用于访问 SSH 服务 bind_addr = 127.0.0.1 bind_port = 6000 把frpc也都启动起来之后,通过 SSH 就可以访问内网机器了 ini复制代码ssh -oPort=6000 [email protected] 其他支持 除了上面的玩法之外,frp还有很多玩法,比如: 自定义域名访问内网的 Web 服务 转发 DNS 查询请求 转发 Unix 域套接字 对外提供简单的文件访问服务 为本地 HTTP 服务启用 HTTPS 点对点内网穿透