FRP使用笔记

最近需要联调下阿里云OSS的上传回调功能,由于代码部署在内网无法直接通过公网IP/域名来联调;也不方便直接把代码部署到公网上。

之前安卓手机搭建nextcloud时用到过Frp,并且手上也有一台公网服务器,于是就开始了自建Frp之旅。

安装

首先去github找下最新的frp安装包:传送门

1
2
$ wget https://github.com/fatedier/frp/releases/download/v{VERSION}/frp_{VERSION}_linux_amd64.tar.gz
$ tar -xzvf frp_0.21.0_linux_amd64.tar.gz

服务端保留这两个文件

frps frps.ini

客户端保留这两个文件

frpc frpc.ini

配置

  • frps.ini 服务端配置
1
2
3
4
5
6
7
8
9
[common]
#frp服务端端口(必须)
bind_port = 7777
#http端口设置(web访问时加上的端口号)
vhost_http_port = 8888
#客户端连接令牌(增强安全性,建议设置 与客户端配置的token一致)
token = ***************
#显示的日志级别
log_level = info
  • frpc.ini 客户端配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
[common]
server_addr = xxx.xxx.xxx.xxx #frp服务端地址,必须是公网ip或者域名,这里假设为xxx.xxx.xxx.xxx
server_port = 7777 #frp服务端端口,即填写服务端配置中的 bind_port

token = *************** #客户端连接令牌(增强安全性,建议设置 与服务端配置的token一致)

admin_addr = 127.0.0.1 # 客户端本地启动一个admin-ui的web面板,能够看到一些客户端信息
admin_port = 7400 # 当前配置的访问地址为 127.0.0.1:7400 用户名admin 密码123456
admin_user = admin
admin_pwd = 123456

[web]
type = http # 连接类型
local_ip = xxx.xxx.xxx.xxx # 内网IP
local_port = 8080 # 内网端口
custom_domains = xxx.xxx.xxx.xxx # frp访问的域名
http_user = admin # 开启http auth 可以不选
http_pwd = 123456 # 如果选择了进入网页就会显示弹窗提示输入用户名、密码
  • 安全组设置

开放bind_portvhost_http_port的TCP入方向访问

如果需要限定只能某个IP访问,安全组规则的授权对象设置为IP/32即可。

运行 && 停止

  • 运行
1
2
3
nohup ./frps -c frps.ini &

nohup ./frpc -c frpc.ini &
  • 停止
1
2
3
4
ps -aux|grep frps| grep -v grep | awk '{print $2}'
ps -aux|grep frpc| grep -v grep | awk '{print $2}'

kill -9 进程号

相关问题

如果遇到nohup: failed to run command ‘XXX’: Permission denied时,先给那个文件赋予执行权限chmod a+x ./xxx


评论区