<#if settings.post_mathjax!false>

frp v0.62.1内网穿透搭建和使用

admin
2
2025-06-22

官网:https://gofrp.org/zh-cn/
Github:https://github.com/fatedier/frp

frp是什么

frp is a fast reverse proxy that allows you to expose a local server located behind a NAT or firewall to the Internet. It currently supports TCP and UDP, as well as HTTP and HTTPS protocols, enabling requests to be forwarded to internal services via domain name.
frp also offers a P2P connect mode.
frp 是一种快速反向代理,允许您将位于 NAT 或防火墙后面的本地服务器公开给 Internet。目前支持 TCP 和 UDP,以及 HTTP 和 HTTPS 协议,支持通过域名将请求转发到内部服务。
frp 还提供 P2P 连接模式。

内网穿透使用场景

如果你在本地局域网搭建了一台服务器,想给局域网外的人访问,但是又没有公网ipv4。
这时候有两种解决方案:一是使用ipv6。二是内网穿透。

工作原理

frp 主要由两个组件组成:客户端(frpc)服务端(frps)。服务端部署在云服务器上(有公网ip的服务器),客户端部署在你的本地服务器上。
当用户访问frps时,frps会将请求转发到frpc,frpc再访问局域网内的服务。
file-20250622154717144.png

部署服务端frps

frp 采用 Go 语言编写,只需下载对应平台的二进制文件即可执行
首先去平台上下载对应的安装包。我的云服务器是x86_64架构的。

wget https://github.com/fatedier/frp/releases/download/v0.62.1/frp_0.62.1_linux_amd64.tar.gz

解压

tar xf frp_0.57.0_linux_amd64.tar.gz -C /usr/local/
cd /usr/local/frp_0.57.0_linux_amd64/

一共有4 个文件

frpc         # 客户端 
frpc.toml    # 客户端配置
frps         # 服务端
frps.toml    # 服务端配置
LICENSE

修改frps

# 可以参考官方配置frps_full_example.toml,里面有详细配置说明
# https://github.com/fatedier/frp/blob/405969085fb6b5c8058c88ca250e930ba6092153/conf/frps_full_example.toml

#frps监听端口
bindPort = 17000

# 配置 frp dashboard
webServer.addr = "0.0.0.0"
webServer.port = 7500
webServer.user = "admin"
webServer.password = "123qwezfw"

# 配置 token 认证,frpc 客户端也需指定一样的token
auth.method = "token"
auth.token = "abc123"

# 只允许frpc绑定指定ports. 
# allowPorts = [
#   { start = 6000, end = 6050 }
# ]

frp的运行命令是

frps -c frps.toml

可以把它注册成服务

vim /etc/systemd/system/frps.service

写入

[Unit]
Description=FRP Server
After=network.target

[Service]
# 启动frps的命令,需修改为你的frps的安装路径
ExecStart=/usr/local/frp_0.57.0_linux_amd64/frps -c /usr/local/frp_0.57.0_linux_amd64/frps.toml
Type=simple

[Install]
WantedBy=multi-user.target

设置frps开机启动

# 设置frps开机启动
systemctl enable frps
# 启动frps
systemctl start frps
# 查看frps服务状态
systemctl status frps

或者

service enable frps
service frpc status
service status frps

如果你的服务器是nat地址,需要去新建一个端口转发
file-20250622160739369.png
file-20250622160815450.png

部署服务端frpc

Linux平台和上面一样

# 可以参考官方配置frpc_full_example.toml,里面有详细配置说明
# https://github.com/fatedier/frp/blob/405969085fb6b5c8058c88ca250e930ba6092153/conf/frpc_full_example.toml

# 填写你的frps server的ip 和 port
serverAddr = "218.11.1.44"
serverPort = 17012

# 配置 token 认证,frpc 客户端需指定frps一样的token
auth.method = "token"
auth.token = "abc123"

# 在 frp 中,一个代理对应一个需要公开访问的内网服务。
# 一个客户端可以同时配置多个代理,以满足不同的需求。
# 下面配置的是将 win10 远程桌面暴露到 frps_ip 60002端口上
[[proxies]]
name = "rizx alist"
type = "tcp"
localIP = "127.0.0.1"
localPort = 5244
remotePort = 6002

windows平台可以使用NSSM注册成服务
https://nssm.cc/release/nssm-2.24.zip

nssm install frpc

命令执行后,它会以 GUI显示服务安装窗口,填写 frpc 程序的路径和启动参数,点击 Install service 即可
file-20250622161148270.png

在上面打开的管理员cmd 窗口,启动 frpc 服务

nssm start frpc # 或者可以使用 net start frpc

可以在服务端的frps管理面板上看到客户端在线情况
file-20250622161348700.png

动物装饰