什么是FRP
frp 是一款开源的反向代理工具,全称为 Fast Reverse Proxy,由 Golang 开发,主要用于内网穿透场景,能够帮助用户从公网访问处于内网环境的服务。
核心作用
在日常开发或运维中,很多设备(如本地服务器、树莓派、家用 NAS)处于内网,没有公网 IP,无法被外网直接访问。frp 可以通过一台拥有公网 IP 的服务器作为中转,建立公网与内网之间的通信隧道,从而实现外网对内网服务的访问。
工作原理
frp 采用 C/S(客户端 - 服务端)架构,分为两个核心组件:
- frps(服务端)
- 部署在拥有公网 IP 的服务器上。
- 负责监听公网端口,接收来自外网的请求,并将请求转发给内网的 frpc 客户端。
- frpc(客户端)
- 部署在内网设备上。
- 主动与公网的 frps 建立长连接,接收 frps 转发的请求,再将请求转发给内网的目标服务(如 Web 服务、SSH 服务)。
安装方法
下载地址:点击下载
FRP 的 GitHub Release 主页:https://github.com/fatedier/frp/releases
# 下载压缩包后,解压并复制客户端程序和配置文件
tar -zxvf frp_0.63.0_linux_amd64.tar.gz
cd frp_0.63.0_linux_amd64
sudo cp frpc /usr/local/bin/
sudo mkdir -p /etc/frp
sudo cp frpc.toml /etc/frp/
# 编辑客户端配置文件
sudo vim /etc/frp/frpc.toml
配置文件内容
serverAddr = "htl.yy.86.cn"
serverPort = 10190
auth.method = "token"
auth.token ="htl"
[[proxies]]
name = "ssh端口映射"
type = "tcp"
localIP = "127.0.0.1"
localPort = 22
remotePort = 5009
全局配置字段说明:
| 字段名 | 类型 | 说明 | 默认值 | 示例 |
|---|---|---|---|---|
serverAddr | 字符串 | frps 所在公网服务器的 IP / 域名(核心字段,必须正确) | 无 | serverAddr = "1.2.3.4" |
serverPort | 整数 | frps 监听的端口(需和 frps.toml 中 bindPort 一致) | 7000 | serverPort = 7000 |
auth.token | 字符串 | 客户端与服务端的认证令牌(需和 frps.toml 中 auth.token 一致) | 无 | auth.token = "12345678" |
auth.method | 字符串 | 认证方式,可选 token/oidc,常用 token | “token” | auth.method = "token" |
代理配置字段说明:
| 字段名 | 类型 | 说明 | 示例 |
|---|---|---|---|
name | 字符串 | 代理名称(唯一,自定义,用于标识该穿透规则) | name = "ssh_proxy" |
type | 字符串 | 代理协议类型,常用:tcp/udp/http/https/tcpmux | type = "tcp" |
localIP | 字符串 | 内网服务的 IP:本地服务填 127.0.0.1,局域网设备填内网 IP | localIP = "192.168.1.100" |
localPort | 整数 | 内网服务的实际端口(如 SSH 22、Web 8080) | localPort = 22 |
remotePort | 整数 | 公网映射端口(外网通过 公网IP:remotePort 访问),需确保 frps 端口开放 | remotePort = 6000 |
启动以及创建服务
# 测试启动(确认无报错,能连接到服务端)
frpc -c /etc/frp/frpc.toml
# 创建 systemd 服务
sudo vim /etc/systemd/system/frpc.service
服务配置文件内容
[Unit]
Description=FRP Client (frpc)
After=network.target
[Service]
Type=simple
ExecStart=/usr/local/bin/frpc -c /etc/frp/frpc.toml
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
启动并设置开机自启
# 设置权限
chmod 777 /etc/systemd/system/frpc.service
# 重新加载
sudo systemctl daemon-reload
# 开机自启
sudo systemctl enable frpc
# 查看是否开机自启
sudo systemctl list-unit-files | grep frpc
# 启动
sudo systemctl start frpc
# 查看状态(确认 running)
sudo systemctl status frpc
启动成功后,即可通过公网IP以及转发的端口访问内网的目标服务(如 Web 服务、SSH 服务)。
2万+

被折叠的 条评论
为什么被折叠?



