Skip to content

frp 内网穿透服务搭建

约 1004 字大约 3 分钟

frp内网穿透

2025-02-27

为啥要搭建 frp 服务

家里或者公司等设备没有公网ipv4, ipv6 需要配置,许多环境和设备也还没支持ipv6。所以需要访问内网设备,总是需要很多工具、什么todesk、hutu、向日葵、teamviewer等等。这些工具都需要收费,就算充钱了也有流量和数量等限制。反正一用一个不吱声。搞了好久免费的 方案,或者几块钱的方案。但是一个结果,拉稀。所以斥巨资搞了台服务器(要买的, 没服务器域名备案不了。搞公网ip贼复杂,ipv4基本搞不到,ipv6就只能手机网络访问,但凡路由器旧一点没有完美支持ipv6都不行。搞了也得用ddns搞。具体我写一篇这个坑)

frp 服务能干什么

急速部署启动教程

  1. 下载 frp程序

frp_0.61.1_linux_amd64.tar.gz 丢到linux系统的服务器上,解压备用(其他类型服务器自己去GitHub下载对应版本)

frp_0.61.1_windows_amd64.zip 丢到window系统的服务器上,解压备用

  1. 配置frp服务器

复制本文frps.toml丢到解压后的frp文件夹中替换

  1. 启动frp服务器

./frps -c frps.toml

  1. 配置frp客户端(内网设备)

复制本文frpc.toml丢到解压后的frp文件夹中替换

  1. 启动frp客户端(内网设备)

直接cmd打开解压后的文件运行 frpc.exe -c frpc.toml

frp 相关

文件说明

  • frpc(客户端程序 - 内网设备用的)
  • frpc.toml(客户端配置文件 - 内网设备用的)
  • frps(服务端程序 - 公网frp服务器用的)
  • frpc.toml(服务端配置文件 - 公网frp服务器用的)
  • LICENSE(说明 - 没用的)

配置

  • frps.toml 服务端的配置文件 (在frp服务器)
# 服务端口,默认就行
bindPort = 7000

# 日志文件,自己想放哪旧定哪
log.to = "/log/log.log"
# 日志保留天数
log.maxDays = 3

# 验证方式,可有可无,有的话别人不容易盗用你的服务
auth.method = "token"
# 验证token,自己定一个, frpc配置文件里一样就行
auth.token = "123456789"

# ui管理界面服务,可有可无,要是不常用就不用开、分别是地址、端口、用户名、密码
webServer.addr = "0.0.0.0"
webServer.port = 7500
webServer.user = "admin"
webServer.password = "admin"
  • frpc.toml 客户端的配置文件(在内网设备)
# frp服务器的ip地址和端口, 把下面127.0.0.1改成你的frp服务器的ip地址
serverAddr = "127.0.0.1"
serverPort = 7000

# 验证token,frps配置文件里一样就行
auth.token = "123456789"

# ui管理界面服务,可有可无,要是不常用就不用开、分别是地址、端口、用户名、密码
webServer.addr = "127.0.0.1"
webServer.port = 7400
webServer.user = "admin"
webServer.password = "17s172"

# 代理配置, 风别是名字、协议、本地ip、本地端口、远程端口,例如这个就是 {frp服务器ip}:6000 -> 127.0.0.1:8080
[[proxies]]
name = "随便起个名1"
type = "tcp"
localIP = "127.0.0.1"
localPort = 8080
remotePort = 6000

[[proxies]]
name = "随便起个名2"
type = "tcp"
localIP = "127.0.0.1"
localPort = 8081
remotePort = 6001

# ... 要多个个端口就复制[[proxies]]的内容就行
# 至于负载均衡分组什么的,看官方文档吧,我用ngix做负载均衡和代理转发了

配置frp为服务,开机自动启动

好多方法,supervisorctl也行,systemctl也行,这里就简单说一下systemctl吧

  • 创建frp.service文件
sudo vim /etc/systemd/system/frp.service
  • frp.service 文件内容
[Unit]
Description=Frps Service
After=network.target

[Service]
Type=simple
# 这里是frp的路径,根据你自己的来改
ExecStart=/data/rpc/frps -c //data/rpc/frps.toml
Restart=on-failure
RestartSec=5s

[Install]
WantedBy=multi-user.target
  • 启动frp服务
sudo systemctl daemon-reload
sudo systemctl start frp
  • 设置开机自启
sudo systemctl enable frp