# Frp

TIP

frp 版本升级,新版本修改了配置文件方式,且提升了xtcp和p2p打洞成功能力,该文档待更新

# 官网

'' (opens new window)

官方文档 (opens new window)

配置文件说明

# docker方式

先创建一个/etc/frp/frps.log 文件,然后在进行挂载日志

docker run --restart=always --network host -d -v /etc/frp/frps.toml:/etc/frp/frps.toml -v /etc/frp/frps.log:/frps.log --name frps snowdreamtech/frps:0.59
1
# frps.toml
# 允许连接地址
bindAddr = "0.0.0.0"
# 监听端口
bindPort = 7000
# http端口
vhostHttpPort = 8888

# 控制面板允许连接地址
webServer.addr = "0.0.0.0"
# 控制面板端口
webServer.port = 7500
# 面板账号
webServer.user = "frplgl"
# 面板密码
webServer.password = "frp@123"

log.to = "./frps.log"
log.level = "debug"
log.maxDays = 3
log.disablePrintColor = false

# 身份验证
auth.method = "token"
auth.token = "liguanglong"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

先创建一个/etc/frp/frpc.log 文件,然后在进行挂载日志

docker run --restart=always --network host -d -v /etc/frp/frpc.toml:/etc/frp/frpc.toml -v /etc/frp/frpc.log:/frpc.log --name frpc snowdreamtech/frpc:0.59
1
# frpc
# 建议使用当前机器的名称,主要是做标识区分
user = "机器名称"
# frps的地址
serverAddr = "121.43.149.217"
# frps的端口
serverPort = 7000

log.to = "./frpc.log"
log.level = "debug"
log.maxDays = 3
# 身份验证方式
auth.method = "token"
# 验证token
auth.token = "liguanglong"




[[proxies]]
name = "hailiang"
type = "tcp"
localIP = "127.0.0.1"
localPort = 22
remotePort = 6666



[[proxies]]
name = "singleCloud"
type = "http"
localIP = "127.0.0.1"
localPort = 12001
customDomains = ["lglhttp.ligl.top"]


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36

# 二进制下载使用

TIP

如果使用一台公网机器映射多台内网端口需要使用域名,映射一个端口不需要域名

1.下载对应的压缩包

2.解压后进入文件夹

tar -zxvf frp_0.20.0_linux_amd64.tar.gz
1

3.启动Server端,(公网服务器上)

./frps.exe -c ./frps.ini
1

3.启动客户端端,(内网)

./frpc -c frpc.ini
1

4.后台启动

nohup ./frps -c frps.ini &  > frp.log
1
nohup ./frpc -c frpc.ini &  > frp.log
1

5.关闭

ps -ef | grep frp
kill -9 进程id
1
2

6.连接成功会提示会打印模块名称

s端提示 c端提示

# 配置详解

1.frps.ini

[common]
#与客户端绑定的进行通信的端口,(建议不要修改)
bind_port = 7000
# 如果是tcp端口映射的话,外网机器端口在c配置,http和https端口在s端配置,切只能配置一个
#http的访问端口
vhost_http_port = 6781
#https的访问端口(如果需要的话)
vhost_https_port = 6782
# token 验证,可以不写
token = thismytoken
# 仪表盘端口
dashboard_port = 7500
# 仪表盘账号
dashboard_user = admin
#仪表盘密码
dashboard_pwd = 123456

# 认证方式为token
authentication_method = token
# 开启连接时校验token
authenticate_new_work_conns = true
# 要校验的token值
token = 123456




1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27

TIP

映射多个http端口也是只配置一个 vhost_http_port 字段

2.frpc.ini

[common]
#服务器地址(外网服务器ip)
# 建议使用域名,方便server端进行切换
server_addr = xx.xx.xx.xx
#与服务端绑定的进行通信的端口(与s端一致)
server_port = 7000
# 日志文件地址
log_file = ./frpc.log

# 开启客户端控制台,热加载需要用到
admin_addr = 127.0.0.1
admin_port = 7400
admin_user = admin
admin_passwd = admin

# 认证方式为token
authentication_method = token
# 开启连接时校验token
authenticate_new_work_conns = true
# 要校验的token值
token = 123456

[rdp]
#部分是为了连接Windows远程桌面的
type = tcp
local_ip = 127.0.0.1
# 本地端口
local_port = 3389
# 远程端口
remote_port = 3389
# 开启传输加密
use_encryption = true
# 开启传输压缩
use_compression = true

[web]
type = http
# 本机地址
local_ip = 127.0.0.1
#本地映射的端口,比如开了个tomcat apache,端口为8080
local_port = 8080
# 域名必须要有,并解析到你的服务器地址 单个http映射可以写ip地址,如果一个公网机器,映射多个内网主机,需要填写不同的域名,这里可以是二级域名
custom_domains = xxx.xxxx.xx

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44

TIP

映射tcp时,可以使用不同的公网端口,映射http或者https时,公网机器只能用一个端口,然后使用子域名区分具体要映射的机器 custom_domains = 二级子域名

# 热加载

1、如果开启了客户端控制台,可以通过访问web页面,修改配置后,重新加载配置

2、还可以通过在本地执行命令

./frpc reload -c ./frpc.ini #只会更新代理,[common]键中的配置不会修改
1

3、启动前检查配置是否正确

./frpc verify -c ./frpc.ini
1

# 开启自启

# win用NSSM

# linux

vim /usr/lib/systemd/system/frpc.service
1
[Unit]
Description = frpc
After = network.target syslog.target
Wants = network.target

[Service]
Type = simple
# 启动frps的命令,需修改为您的frps的安装路径
ExecStart = /data/frp/frp_0.48.0_linux_amd64/frpc -c /data/frp/frp_0.48.0_linux_amd64/frpc.ini
RestartSec=5
Restart=always
[Install]
WantedBy = multi-user.target
1
2
3
4
5
6
7
8
9
10
11
12
13
systemctl daemon-reload
1
systemctl start frpc

1
2
systemctl enable frpc

1
2
Last Updated: 8/14/2024, 10:59:08 PM