- 项目简介
- 需求背景
1.FileBrowser访问地址:http://X.X.X.X:8181,该地址只能在局域网内部访问而无法通过互联网访问,想要通过互联网 访问到该地址需要通过公网IP来进行端口转发,通常家里的路由器IP都不是公网IP,通常公司的路由器IP都是公网IP 2.如果FileBrowser部署在公司局域网内的机器上,并且具有公司路由器的管理员账号密码,可以通过路由器配置端口转发, 互联网访问地址(公司IP:外部端口)时,请求会被转发到X.X.X.X:8181,从而实现互联网访问FileBrowser,通过手机访问 FileBrowser进行文件上传下载,功能类似个人云盘 3.如果FileBrowser部署在家庭的机器上,需要进行内网穿透才可以实现互联网访问,FRPS部署在具有公网IP的机器上 例: 云服务器,FRPC部署在FileBrowser所在机器上,通过云服务器作为媒介实现端口转发,互联网访问地址(云服务器IP:外部 端口)时,请求会被转发到X.X.X.X:8181,从而实现互联网访问FileBrowser
- 安装目录
mkdir -p /opt/frp && cd /opt/frp
- 安装包下载
wget https://github.com/fatedier/frp/releases/download/v0.51.3/frp_0.51.3_linux_amd64.tar.gz 注意:https://github.com/fatedier/frp/releases获取下载链接并替换
- 安装包解压
for file in *.tar.gz; do tar -zxvf "$file" --strip-components=1; done
- 环境变量
echo -e "\n# 设置frp环境变量" >> /etc/profile echo -e "export FRP_HOME=/opt/frp" >> /etc/profile echo -e "export PATH=\$FRP_HOME:\$PATH" >> /etc/profile source /etc/profile
- FRPS配置
#---------------------------------------------------------- sudo tee /opt/frp/frps.ini <<-'EOF' [common] bind_port = 6666 dashboard_port = 7777 token = AAAAAA dashboard_user = BBBBBB dashboard_pwd = CCCCCC EOF #---------------------------------------------------------- firewall-cmd --zone=public --add-port=6666/tcp --permanent && firewall-cmd --reload firewall-cmd --zone=public --add-port=7777/tcp --permanent && firewall-cmd --reload #---------------------------------------------------------- # 注意:云服务器防火墙与安全组打开端口6666、7777
- FRPS常用命令
启动:nohup frps -c /opt/frp/frps.ini > /opt/frp/frps.log & 查看:ps -ef | grep -i frps 关闭:pkill -f "frps" 注意:启动后光标复原Ctrl+C 修改配置frps.ini后需重启生效 启动日志:/opt/frp/frps.log 2023/08/27 22:36:22 [1;34m[I] [root.go:204] frps uses config file: /opt/frp/frps.ini[0m 2023/08/27 22:36:22 [1;34m[I] [service.go:206] frps tcp listen on 0.0.0.0:7000[0m 2023/08/27 22:36:22 [1;34m[I] [service.go:318] Dashboard listen on 0.0.0.0:7500[0m 2023/08/27 22:36:22 [1;34m[I] [root.go:213] frps started successfully[0m
- FRPS开机启动
#---------------------------------------------------------- sudo tee /usr/bin/frps.sh <<-'EOF' #! /bin/bash nohup /opt/frp/frps -c /opt/frp/frps.ini > /opt/frp/frps.log & EOF chmod +x /usr/bin/frps.sh #---------------------------------------------------------- sudo tee /etc/systemd/system/frps.service <<-'EOF' [Unit] Description=frps After=syslog.target network.target [Service] Type=oneshot RemainAfterExit=yes ExecStart=/usr/bin/frps.sh [Install] WantedBy=multi-user.target EOF #---------------------------------------------------------- systemctl enable frps #----------------------------------------------------------
# 启动frps systemctl start frps # 停止frps systemctl stop frps # 重启frps systemctl restart frps # 查看frps状态 systemctl status frps
- FRPS面板
http://your-server-ip:7777 用户名:BBBBBB 密码:CCCCCC
- FRPC配置
#---------------------------------------------------------- sudo tee /opt/frp/frpc.ini <<-'EOF' [common] # FRPS服务所在机器的IP地址(公网IP) server_addr = Y.Y.Y.Y server_port = 6666 token = AAAAAA [FileBrowser] type = tcp local_ip = X.X.X.X local_port = 8181 # FRPS服务所在机器的访问端口(需要打开) remote_port = 8888 EOF #---------------------------------------------------------- firewall-cmd --zone=public --add-port=8181/tcp --permanent && firewall-cmd --reload #---------------------------------------------------------- # 注意:云服务器防火墙与安全组打开端口8888
- FRPC常用命令
启动:nohup frpc -c /opt/frp/frpc.ini > /opt/frp/frpc.log & 查看:ps -ef | grep -i frpc 关闭:pkill -f "frpc" 注意:启动后光标复原Ctrl+C 修改配置frpc.ini后需重启生效 启动日志:/opt/frp/frpc.log 2023/08/27 23:50:05 [1;34m[I] [root.go:220] start frpc service for config file [/opt/frp/frpc.ini][0m 2023/08/27 23:50:05 [1;34m[I] [service.go:301] [7b5ed0825c698677] login to server success, get run id [7b5ed0825c698677][0m 2023/08/27 23:50:05 [1;34m[I] [proxy_manager.go:150] [7b5ed0825c698677] proxy added: [FileBrowser][0m 2023/08/27 23:50:05 [1;34m[I] [control.go:172] [7b5ed0825c698677] [FileBrowser] start proxy success[0m
- FRPC开机启动
#---------------------------------------------------------- sudo tee /usr/bin/frpc.sh <<-'EOF' #! /bin/bash nohup /opt/frp/frpc -c /opt/frp/frpc.ini > /opt/frp/frpc.log & EOF chmod +x /usr/bin/frpc.sh #---------------------------------------------------------- sudo tee /etc/systemd/system/frpc.service <<-'EOF' [Unit] Description=frpc After=syslog.target network.target [Service] Type=oneshot RemainAfterExit=yes ExecStart=/usr/bin/frpc.sh [Install] WantedBy=multi-user.target EOF #---------------------------------------------------------- systemctl enable frpc #----------------------------------------------------------
# 启动frpc systemctl start frpc # 停止frpc systemctl stop frpc # 重启frpc systemctl restart frpc # 查看frpc状态 systemctl status frpc
- 访问测试
互联网访问FileBrowser失败原因分析: 1.启动顺序为先启动FRPS后启动FRPC 2.FRPS与FRPC的安装包版本要一致 3.FRPS与FRPC的安装包要与所在系统一致 Linux:frp_x.x.x_linux_amd64.tar.gz Windows:frp_x.x.x_windows_amd64.zip 4.启动日志确认FRPC与FRPS成功建立连接 5.检查FRPS与FRPC防火墙是否打开端口权限 6.检查云服务器安全组是否打开端口权限
- 常用地址
GitHub:https://github.com/fatedier/frp 文档地址(官方):https://gofrp.org 文档地址(个人):https://www.bookstack.cn/read/frp