一、客户端下载
https://github.com/fatedier/frp/releases
下载,解压后,得到如下文件(windows示例)。其中 frps 为服务端,frpc为客户端。frps_full.ini为全量配置信息,可以自己阅读后,挑选需要的配置信息,写入frps.ini即可完成配置。
通常如果在本机配置服务端,则删除客户端的3个文件,如果配置客户端则删除服务端的3个文件。如下(Linux服务端示例)
二、配置frps.ini和frpc.ini文件(最重要)
我的网络情况:有公网IP,但不可能直接把一根网线都给Frps,需要先到路由器,然后路由器下连接Frps,这种情况下,如何实现我的电脑A或者外网访问我的电脑B呢?
首先,我已经把本地的动态IP地址映射到了阿里云的固定域名解析服务上。也就是说我已经可以直接通过域名访问本地IP地址。
一、连接内网windows远程桌面(极简)
1、frps.ini配置如下:
[common] bind_port = 7000
2、Frps服务器上,开放7000端口,开放3390端口。(windows在防火墙入站规则中设置)
3、在路由器上设置端口转发,将Frps的IP对应的7000端口 转发为域名 abcde.com 对应的7000端口上,将Frps的IP对应的3390端口 转发为域名 abcde.com 对应的3390端口上。
4、frpc.ini配置如下:
[common] server_addr = abcde.com server_port = 7000 [RDP] type = tcp local_ip = 192.168.1.5 # 我的电脑B的IP地址。 local_port = 3389 remote_port = 3390
5、在我的电脑B上开启远程桌面,确认3389端口已开启。
6、完成配置、端口开启、端口转发后,即可打开Frps服务端和客户端。出现sucess,既表示连接成功。
然后在外网通过 abcde.com:3390 既可连接内网中我的电脑B的远程桌面了。
7、上述配置数据最基本的极简式配置,为了安全性考虑,建议增加 token 和 oidc 设置等。
8、最后自建 frps 服务,虽然带宽畅通,但是如果要用做无人值守,还是需要安装向日葵,这样在出现问题后还有机会去修复。
二、更多配置内容
frp是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp, http, https, stcp 协议。
类型 | 描述 |
tcp | 单纯的 TCP 端口映射,服务端会根据不同的端口路由到不同的内网服务。 |
udp | 单纯的 UDP 端口映射,服务端会根据不同的端口路由到不同的内网服务。 |
http | 针对 HTTP 应用定制了一些额外的功能,例如修改 Host Header,增加鉴权。 |
https | 针对 HTTPS 应用定制了一些额外的功能。 |
stcp | 安全的 TCP 内网代理,需要在被访问者和访问者的机器上都部署 frpc,不需要在服务端暴露端口。 |
sudp | 安全的 UDP 内网代理,需要在被访问者和访问者的机器上都部署 frpc,不需要在服务端暴露端口。 |
xtcp | 点对点内网穿透代理,功能同 stcp,但是流量不需要经过服务器中转。 |
tcpmux | 支持服务端 TCP 端口的多路复用,通过同一个端口访问不同的内网服务。 |
1、TCP协议
我最常用的是tcp协议,