Linux安装FRP(内网穿透)

news2024/11/24 19:39:32
  1. 项目简介

  2. 需求背景
    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
  3. 安装目录
    mkdir -p /opt/frp && cd /opt/frp
  4. 安装包下载
    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获取下载链接并替换
  5. 安装包解压
    for file in *.tar.gz; do tar -zxvf "$file" --strip-components=1; done
  6. 环境变量
    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
  7. 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
  8. 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
  9. 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
  10. FRPS面板
    http://your-server-ip:7777
    用户名:BBBBBB 密码:CCCCCC

  11.  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
  12. 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
  13. 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
  14. 访问测试
    互联网访问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.检查云服务器安全组是否打开端口权限

  15. 常用地址
    GitHub:https://github.com/fatedier/frp
     
    文档地址(官方):https://gofrp.org
    
    文档地址(个人):https://www.bookstack.cn/read/frp

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/937601.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2023年6月GESP C++ 一级试卷解析

2023年6月GESP C 一级试卷解析 一、单选题&#xff08;每题2分&#xff0c;共30分&#xff09; 1.以下不属于计算机输出设备的有&#xff08; &#xff09;。 A.麦克风 B.音箱 C.打印机 D.显示器 【答案】A【考纲知识点】计算机基础&#xff08;一级&#xff09; 【解析…

科大讯飞永久免费GPT入口来了!!!

讯飞GPT永久免费使用入口注册链接&#xff1a;讯飞星火认知大模型-AI大语言模型-星火大模型-科大讯飞。 登录讯飞账号后&#xff0c;点击进入体验。 进入体验页面后&#xff0c;选择景点推荐。 笔者让其写一篇关于讯飞GPT介绍的文案。 讯飞GPT是一款由讯飞公司推出的人工智能语…

14. 完整模型验证套路

14.1 GPU训练30轮次 import torchvision import torch from torch import nn from torch.utils.data import DataLoader from torch.utils.tensorboard import SummaryWriter import time# 定义训练的设备 #device torch.device("cpu") device torch.device("…

第七周第六天学习总结 | MySQL入门及练习学习第一天

实操练习&#xff1a; 1.查看数据库 2.查询当前数据库 3.创建一个名为 lianxi 的数据库 4.删除一个名为 shanchu 的数据库&#xff08;如果存在就删除&#xff0c;不存在不删除&#xff09; 5.切换至 lianxi 数据库下&#xff0c;并验证 6.查询 lainxi 数据库下的所有数据…

DMK5框选变量之后不显示其他位置的此变量高亮

使用软件MDK5.3.8版本 如下在2的位置选择之后&#xff0c;其他同样的变量没有高亮&#xff0c;因为1的原因折叠了&#xff1b; 展开折叠之后就可以了

Android学习之路(10) setContentView详解

一、简介 setContentView我们在Activity中经常见到&#xff0c;它的作用就是把我们的布局文件放在Activity中显示&#xff0c;下面我们根据源码分析setContentView是如何做到的 二、源码分析 1.两种setContentView 注意Activity的setContentView和AppCompatActivity的setCo…

【SpringBoot】如何使用 HandlerInterceptor 拦截器? 为什么不使用 SpingAOP ?

文章目录 前言一、为什么不使用 SpringAOP ?1, 需求分析2, SpringAOP 能实现吗? 二、使用 HandlerInterceptor1, 实现 HandlerInterceptor 接口2, 将自定义拦截器加入到系统配置 三、HandlerInterceptor 实现原理源码分析 总结 前言 各位读者好, 我是小陈, 这是我的个人主页,…

基于全新电脑环境安装pytorch的GPU版本

前言&#xff1a; 距离第一次安装深度学习的GPU环境已经过去了4年多&#xff08;当时TensorFlow特别麻烦&#xff09;&#xff0c;现在发现安装pytorch的GPU版本还是很简单方便的&#xff0c;流程记录如下。 安装步骤&#xff1a; 步骤一&#xff1a;官网下载Anaconda Free…

【无法联网】电脑wifi列表为空的解决方案

打开电脑, 发现wifi列表为空, 点击设置显示未连接 首先检查是不是网卡驱动有问题, cmd, devmgmt.msc 找到网络适配器, 看看网卡前面是否有感叹号, 如果没有则说明网卡没问题, 有问题则重装驱动 看看网络协议是否设置正确 找到"控制面板\所有控制面板项\网络和共享中心&…

微服务通信[HTTP|RPC同步通信、MQ异步通信]

概念 A服务调用B服务,B服务调C服务,C服务调D服务,即微服务之间的通信(也可以叫微服务之间的调用) HTTP同步通信 一种轻量级的通信协议,常用于在不同的微服务之间进行通信,也是最简单的通信方式使用REST ful为开发规范&#xff0c;将服务对外暴露的HTTP调用方式为REST API(如GET…

飞腾FT-2000/4、D2000 log报错指导(3)

在爱好者群中遇见了很多的固件问题,这里总结记录了大家的交流内容和调试心得。主要是飞腾桌面CPU FT-2000/4 D2000相关的,包含uboot和UEFI。希望对大家调试有所帮助。 这个专题会持续更新,凑够一些就发。 23 在s3 唤醒时报错如下 check suspend ,Platform exception report…

你对SPA单页面的理解,它的优缺点分别是什么?如何实现SPA应用呢?

一、什么是SPA SPA&#xff08;single-page application&#xff09;&#xff0c;翻译过来就是单页应用SPA是一种网络应用程序或网站的模型&#xff0c;它通过动态重写当前页面来与用户交互&#xff0c;这种方法避免了页面之间切换打断用户体验在单页应用中&#xff0c;所有必…

【kubernetes】使用KubeSphere devops部署我的微服务系统

KubeSphere Devops 入门使用KubeSphere的Devops功能部署"我的微服务系统" &#xff08;内容学习于尚硅谷云原生课程&#xff09; kubesphere devops官方文档&#xff1a; https://v3-1.docs.kubesphere.io/zh/docs/devops-user-guide/how-to-use/create-a-pipeline-u…

nginx调优(二)

一、event模块: 用于配置服务器的事件驱动机制的模块。它定义了 Nginx 如何处理并发连接和网络事件&#xff0c;以及如何与底层操作系统的事件机制交互。 1.最大并发连接数&#xff1a; worker_connections 65536; 2.选择事件驱动&#xff1a; nginx默认使用epoll时间驱动类…

【Java】Java基础

环境准备 安装JDK和JRE 下载JDK&#xff0c;可以在官网Java Downloads | Oracle 中国下载&#xff0c;但是这里需要注册才能够下载。在Index of java-local/jdk (huaweicloud.com)也可以下载到&#xff0c;但是版本比较老&#xff0c;关系不大&#xff0c;直接下载&#xff0…

OpenGL-入门-BMP像素图glReadPixels

glReadPixels函数用于从帧缓冲区中读取像素数据。它可以用来获取屏幕上特定位置的像素颜色值或者获取一块区域内的像素数据。下面是该函数的基本语法&#xff1a; void glReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *da…

【Kafka】Kafka Stream简单使用

一、实时流式计算 1. 概念 一般流式计算会与批量计算相比较。在流式计算模型中&#xff0c;输入是持续的&#xff0c;可以认为在时间上是无界的&#xff0c;也就意味着&#xff0c;永远拿不到全量数据去做计算。同时&#xff0c;计算结果是持续输出的&#xff0c;也即计算结果…

微信小程序 基于Android的美容理发师预约管理系统

&#xff0c;本系统主要根据管理员、用户及理发师的实际需要&#xff0c;方便用户利用互联网实现对商品信息进行立即订购&#xff0c;同时让管理者可以通过这个系统对用户实际需求以及各信息进行管理。设计该系统主要目的是为了方便用户、理发师可以有一个非常好的平台体验&…

Mac下Docker Desktop开启本地远程访问

mac系统下&#xff0c;为了在idea里方便使用docker&#xff0c;需要开启Docker Desktop本地远程访问。 开启方法是在设置-高级下&#xff0c;开启“Allow the default Docker socket to be used (requires password)”&#xff0c;特此记录一下&#xff1a; 开启后的效果&…

iOS swift5 扫描二维码

文章目录 1.生成二维码图片2.扫描二维码&#xff08;含上下扫描动画&#xff09;2.1 记得在info.plist中添加相机权限描述 1.生成二维码图片 import UIKit import CoreImagefunc generateQRCode(from string: String) -> UIImage? {let data string.data(using: String.En…