最近需要联调下阿里云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
配置
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
|
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_port
和vhost_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