项目地址:https://github.com/fatedier/frp

从此处下载对应系统的frpc:https://github.com/fatedier/frp/releases

官方文档:https://gofrp.org/zh-cn/docs/overview/

启动方式

使用命令行,执行:

frpc.toml 为配置文件

frpc -c frpc.toml

基础配置

打开frpc.toml,在最上面填上以下内容:

serverAddr = "your.domain.or.ip"  //填写服务器端地址
serverPort = 5443       //填写服务端端口,默认为5443
auth.token = "token"    //填写服务端token

TCP与UDP配置

[[proxies]]
name = "name"  //通道名称
type = "tcp"   //通道类型 tcp 或 udp
localIP = "127.0.0.1"   //本地地址
localPort = 22          //本地端口
remotePort = 51000      //远程端口

HTTP配置

“HTTP 和 HTTPS 协议的一个特点是发送的请求都具有 Host 字段,通过该字段描述要访问的服务。基于这个特点,frp 服务端只需要监听在一个端口(通过 vhostHTTPPort 和 vhostHTTPSPort 指定)。就可以根据请求的 Host 来决定需要路由给哪一个代理,而不需要像 TCP 类型那样为每一个服务绑定一个端口。”

HTTP配置的优点就是,可以不需要通过服务器+端口的方式来访问通道,而是可以通过自己的域名来访问,只需要将域名CNAME到frp服务器即可。

[[proxies]]
name = "web"    //通道名称
type = "http"   //通道类型 http
localPort = 80  //本地端口
customDomains = "test.yourdomain.com" //自定义域名

注:如果 frp 服务器配置了 subdomainHost,则 customDomains 中不能是属于 subdomainHost 的子域名或者泛域名。

HTTPS配置

HTTPS配置与HTTP配置基本一样,并且需要将域名CNAME到frp服务器

[[proxies]]
name = "web"    //通道名称
type = "https"  //通道类型 https

customDomains = "test.yourdomain.com"  //自定义域名

[proxies.plugin]
type = "https2http"  //不要动
localAddr = "127.0.0.1:80"  //本地地址以及端口

# HTTPS 证书相关的配置
crtPath = "./server.crt"   //crt位置
keyPath = "./server.key"   //key位置
hostHeaderRewrite = "127.0.0.1"  //重写host
requestHeaders.set.x-from-where = "frp"



循之际,如星夜般的幻想。