如何使用FRP

FRP是一个开源的内网穿透软件,本文将会介绍如何使用frp。

frp - github

原理解释

背景

  • 我们有一台能访问公网,但是没有公网ip(不能为外部提供服务的server)
  • 我们有一台阿里云之类的云服务器,有公网ip

目的

  • 不能为外部提供服务的server 借用云服务器转发,从而为公网提供服务

下载和安装

从github下载之后我们会得到这些文件:

frpc		放在本地server上
frpc.ini	frpc的配置文件
frpc_full.ini	frpc的配置文件(有完整的注释和例子)
frps		放在云服务器上
frps.ini	frps的配置文件
frps_full.ini	frps的配置文件(有完整的注释和例子)

0F7357E41313BFC9B317E8F17213C134

配置文件怎么写

以防我写的不对,首先推荐看这里:github官方例子

frps.ini

[common] 
#开一个端口,用于转发信息的接收
bind_port = 7000
#开一个监控台,可以在web上面直观的看到frp运行情况
dashboard_addr = 0.0.0.0
dashboard_port = 7500

然后把frpsfrps.ini 放到服务器上,赋予执行权限(我就无脑chomd777)

记得把云服务器的安全组策略(在云服务商的控制台界面里面)打开,然后就可以去编辑frpc了

frpc.ini

[common]
#输入你服务器的ip、服务器的接收端口,进行frp链接
server_addr = x.x.x.x
server_port = 7000

[ssh]
#开启一些其他的转发,比如ssh,按照下面配置相当于把 127.0.0.1:22 转发到 x.x.x.x:6000
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000

# tcp和udp端口转发等
[range:tcp_port]
type = tcp
local_ip = 127.0.0.1
local_port = 6010-6020,6022,6024-6028
remote_port = 6010-6020,6022,6024-6028
use_encryption = false
use_compression = false

[range:udp_port]
type = udp
local_ip = 127.0.0.1
local_port = 6010-6020
remote_port = 6010-6020
use_encryption = false
use_compression = false

服务启动

# 在云上启动服务端(接受和转发)(推荐用screen)
./frps -c ./frps.ini

# 在本地启动客户端(发送)
./frpc -c ./frpc.ini

本地成功的输出:

2022/03/12 08:54:09 [I] [service.go:178] [356c08cc36fd0fc1] try to reconnect to server...
2022/03/12 08:54:09 [I] [service.go:325] [356c08cc36fd0fc1] login to server success, get run id [356c08cc36fd0fc1], server udp port [0]
2022/03/12 08:54:09 [I] [proxy_manager.go:144] [356c08cc36fd0fc1] proxy added: [ssh]
2022/03/12 08:54:09 [I] [control.go:181] [356c08cc36fd0fc1] [ssh] start proxy success

云端成功的输出:

root@VM-12-6-ubuntu:/home/frp# sudo ./frps -c ./frps.ini
2022/03/12 08:53:51 [I] [root.go:200] frps uses config file: ./frps.ini
2022/03/12 08:53:51 [I] [service.go:193] frps tcp listen on 0.0.0.0:7000
2022/03/12 08:53:51 [I] [service.go:292] Dashboard listen on 0.0.0.0:7500
2022/03/12 08:53:51 [I] [root.go:209] frps started successfully
2022/03/12 08:54:06 [I] [dashboard_api.go:70] Http request: [/api/serverinfo]
2022/03/12 08:54:06 [I] [dashboard_api.go:63] Http response [/api/serverinfo]: code [200]
2022/03/12 08:54:09 [I] [service.go:449] [356c08cc36fd0fc1] client login info: ip [211.161.248.81:2910] version [0.40.0] hostname [] os [linux] arch [amd64]
2022/03/12 08:54:09 [I] [tcp.go:64] [356c08cc36fd0fc1] [ssh] tcp proxy listen port [6000]
2022/03/12 08:54:09 [I] [control.go:465] [356c08cc36fd0fc1] new proxy [ssh] success

检查frp控制台

image

Licensed under CC BY-NC-SA 4.0
comments powered by Disqus
吸引力法则,大圣灵、外星人和心灵能量
使用 Hugo 构建
主题 StackJimmy 设计