目 录CONTENT

文章目录

FRP使用教程

兜兜管理员
2024-05-29 / 0 评论 / 2 点赞 / 306 阅读 / 0 字
温馨提示:
本文最后更新于2025-01-03,若内容或图片失效,请留言反馈。 部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

1. 项目简介

FRP 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。

2. 为什么使用 FRP

通过在具有公网 IP 的节点上部署 frp 服务端,可以轻松地将内网服务穿透到公网,同时提供诸多专业的功能特性,这包括:

  • 客户端服务端通信支持 TCP、QUIC、KCP 以及 Websocket 等多种协议。

  • 采用 TCP 连接流式复用,在单个连接间承载更多请求,节省连接建立时间,降低请求延迟。

  • 代理组间的负载均衡。

  • 端口复用,多个服务通过同一个服务端端口暴露。

  • 支持 P2P 通信,流量不经过服务器中转,充分利用带宽资源。

  • 多个原生支持的客户端插件(静态文件查看,HTTPS/HTTP 协议转换,HTTP、SOCK5 代理等),便于独立使用 frp 客户端完成某些工作。

  • 高度扩展性的服务端插件系统,易于结合自身需求进行功能扩展。

  • 服务端和客户端 UI 页面。

3. 项目地址

GITHUB地址:https://github.com/fatedier/frp/releases/tag/v0.58.0

4. 使用教程

4.1. 下载安装

  1. Debain系统下载:frp_0.58.0_linux_amd64.tar.gz 文件

  2. 上传到Linux中的opt目录下进行解压

  3. 解压命令:tar -zxvf 文件名.tar.gz

  4. 修改文件夹名称,要不然太长:mv frp_0.58.0_linux_amd64 frp

4.2. 服务端配置

服务端进行配资,修改frp文件夹内的frps.toml文件,内容如下

bindPort = 7000 #frp服务端口,确保服务器开启该端口(可以相同也可以自行更改,但是服务端一定要和客服端填写的端口号一致)
vhostHTTPPort = 5000 #frp http协议服务端口,确保服务器开启该端口(可以相同也可以自行更改,但是服务端一定要和客服端填写的端口号一致)
vhostHTTPSPort = 5001 #frp https协议服务端口,确保服务器开启该端口(可以相同也可以自行更改,但是服务端一定要和客服端填写的端口号一致)
subdomainHost = "xxx.com" #子域名,如果你的域名是google,就填写google.com,如果配置这个,需要到服务器配置泛解析(也就是二级域名的名字填写:*),否则就不要填写
 
auth.token = "token " #访问的token,与下面的客户端一定要相同,最好设置复杂的字符
webServer.addr = "0.0.0.0" #这个必须填写,官方文档介绍没有填写,很容易以为不用写,如果不写讲无法访问dashboard
webServer.port = 6443 #dashboard的服务访问端口,配置好之后,可以通过服务器ip+端口的方式打开dashboard,比如服务器地址是48.120.188.32,则可以通过48.120.188.32:6443(可以相同也可以自行更改,但是服务端一定要和客服端填写的端口号一致)
webServer.user = "xxx" #dashboard的服务的账号
webServer.password = "xxx" #dashboard的服务的密码
log.to = "./frps.log"
log.level = "info"
log.maxDays = 3
log.disablePrintColor = false

4.3. 客户端配置

服务端进行配资,修改frp文件夹内的frpc.toml文件,内容如下

serverAddr = "127.0.0.1" #服务器地址
serverPort = 7000 #frp服务端口,确保服务器开启该端口,与服务器端口bindPort相同值
auth.method = "token"
auth.token = "xxxxxx" #token值,一定要与服务端相同

#配置第一个web服务
[[proxies]]
name = "test-tcp"
type = "http"
localIP = "127.0.0.1"
localPort = 8003 #本地web服务发布的端口
remotePort = 8090 #服务器配置的vhostHTTPPort端口值
#customDomains = ["mac.xxx.com"] #服务器如果没有配置subdomainHost,则要配置这个值,下面的subdomain则删除。访问时,直接输入mac.xxx.com:8090访问本地8003的web服务
subdomain = "mac" #服务端配置了subdomainHost,就必须配置这个,代表二级域名的名字,访问时,直接输入mac.xxx.com:8090访问本地8003的web服务

#配置第二个web服务
[[proxies]]
name = "game-tcp"
type = "http"
localIP = "127.0.0.1"
localPort = 8004 #本地web服务发布的端口
remotePort = 8090 #服务器配置的vhostHTTPPort端口值
#customDomains = ["game.xxx.com"] #服务器如果没有配置subdomainHost,则要配置这个值,下面的subdomain则删除。访问时,直接输入game.xxx.com:8090访问本地8003的web服务
subdomain = "game" #服务端配置了subdomainHost,就必须配置这个,代表二级域名的名字,访问时,直接输入game.xxx.com:8090访问本地8003的web服务


#配置mac远程桌面访问
[[proxies]]
name = "mac-desk"
type = "tcp"
localIP = "127.0.0.1"
localPort = 5900 #mac的远程默认端口是5900
remotePort = 5900  #确保服务器开启该端口
#subdomain = "imac" #如果配置域名,则可以通过域名的方式访问:vnc://imac.xxx.com:5900,否则直接用服务器ip+端口访问:vnc://48.120.188.32::5900

#配置windows远程桌面访问
[[proxies]]
name = "mac-desk"
type = "tcp"
localIP = "127.0.0.1"
localPort = 3389 #windows的远程默认端口是3389
remotePort = 5901  #确保服务器开启该端口
#subdomain = "windows" #如果配置域名,则可以通过域名的方式访问:windows.xxx.com:5901,否则直接用服务器ip+端口访问:48.120.188.32::5901

4.4. 开机自启配置

  1. 安装systemd

# 使用 yum 安装 systemd(CentOS/RHEL)
yum install systemd
# 使用 apt 安装 systemd(Debian/Ubuntu)
apt install systemd
  1. 创建frps.service文件,内容如下

vim /etc/systemd/system/frps.service

[Unit]
# 服务名称,可自定义
Description = frp server
After = network.target syslog.target
Wants = network.target

[Service]
Type = simple
# 启动frps的命令,需修改为您的frps的安装路径
ExecStart = /opt/frp/frps -c /opt/frp/frps.toml

[Install]
WantedBy = multi-user.target

4.5. 服务启停命令

# 启动frp
sudo systemctl start frps
# 停止frp
sudo systemctl stop frps
# 重启frp
sudo systemctl restart frps
# 查看frp状态
sudo systemctl status frps
# 设置 frps 开机自启动
sudo systemctl enable frps
# 手动调试时临时启用方法
./frps -c ./frps.toml

2

评论区