本文最后更新于 441 天前,其中的信息可能已经过时,如有 错误/失效 请发送邮件到qimeng9420@foxmail.com或留言。
前言
frp 支持多种代理类型,以适应不同的使用场景。以下是一些常见的代理类型:
- TCP:提供纯粹的 TCP 端口映射,使服务端能够根据不同的端口将请求路由到不同的内网服务。
- UDP:提供纯粹的 UDP 端口映射,与 TCP 代理类似,但用于 UDP 流量。
- HTTP:专为 HTTP 应用设计,支持修改 Host Header 和增加鉴权等额外功能。
- HTTPS:类似于 HTTP 代理,但专门用于处理 HTTPS 流量。
- STCP:提供安全的 TCP 内网代理,要求在被访问者和访问者的机器上都部署 frpc,不需要在服务端暴露端口。
- SUDP:提供安全的 UDP 内网代理,与 STCP 类似,需要在被访问者和访问者的机器上都部署 frpc,不需要在服务端暴露端口。
- XTCP:点对点内网穿透代理,与 STCP 类似,但流量不需要经过服务器中转。
- TCPMUX:支持服务端 TCP 端口的多路复用,允许通过同一端口访问不同的内网服务。
每种代理类型适用于不同的使用情境,您可以根据需求选择合适的代理类型来配置 frp。
今天用远程突然发现之前配置的Frpc没法用了,上官方查看才知道现在的配置文件有变化了,重新配置了下,分享下。
服务端Frps配置
创建docker-compose.yml文件
创建文件夹
#进入自己的工作目录
cd /etc/docker
#创建目录
mkdir -p frps && cd frps
创建docker-compose.yml
vim docker-compose.yml
#按“i”编辑
编辑以下信息
version: '3'
services:
frps:
image: snowdreamtech/frps
container_name: frps
restart: always
network_mode: host
volumes:
- './frps.toml:/etc/frp/frps.toml'
#保存退出
:wq
创建frps.toml配置文件
vim frps.toml
#按“i”编辑
内容如下:
bindAddr = "0.0.0.0" # 服务器地址
bindPort = 7000 # 服务端与客户端通信端口
transport.tls.force = true # 服务端将只接受 TLS链接
auth.token = "public" # 身份验证令牌,frpc要与frps一致
#只允许frpc绑定您列出的端口。默认情况下,不会有任何限制。指定端口下方有完整配置,可自行查阅
allowPorts = [
{ start = 6000, end = 6100 }
]
# Server Dashboard,可以查看frp服务状态以及统计信息
webServer.addr = "0.0.0.0" # 后台管理地址
webServer.port = 7500 # 后台管理端口
webServer.user = "admin" # 后台登录用户名
webServer.password = "admin" # 后台登录密码
#保存退出
:wq
在目录下运行镜像
docker-compose up -d
#查看镜像是否运行
docker ps
访问下 网页端是否成功 公网IP:7500,输入设置的账号密码,如果出现下面效果就代表你已经成功一半了。
客户端Frpc配置
下载frp软件
Releases · fatedier/frp (github.com)
在官方下载文件,按照自己的系统下载,我用frp一般是用来远程访问电脑办公用的,下面就演示Windows系统的配置了哈,其它系统同理。
解压后得到以下文件
配置frpc.toml
默认是如上配置,我们设置自己的参数。
transport.tls.enable = true # 从 v0.50.0版本开始,transport.tls.enable的默认值为 true
serverAddr = "x.x.x.x" # 公网服务器IP地址
serverPort = 7000 # 公网服务端通信端口
auth.token = "public" # 令牌,与公网服务端保持一致
log.to = "./logs/frpc.log" #日志存放目录,自行更改
log.level = "info" #日志存放级别
log.maxDays = 3 #日志最大保存天数
[[proxies]]
name = "test-rdp"
type = "tcp"
localIP = "127.0.0.1" # 需要暴露的服务的IP
localPort = 3389 # 将本地远程3389端口的服务暴露在公网的3389端口
remotePort = 6000 # 暴露服务的公网入口,上面我限制了暴露的端口,所以只能设置在那个范围内,不然连接不成功
注意: 访问的端口一定要开放
好了,我们运行下,在当前文件夹下打开CMD,运行客户端。
frpc.exe -c frpc.toml
不要关闭窗口哈CMD窗口,然后打开Web端查看是否上线。上线成功就说明服务端搭建好了。
就可以直接用Windows自带的远程工具实现RDP远程操作了。
关闭了CMD就会关闭服务,怎样实现让可以像Windows系统服务一样:开机可启动、后台保持运行并方便管理呢。
Windows系统、注册应用为系统服务软件:我推荐两个。教程已经更新过来了。