ubuntu小技巧29--frp实现通过公网访问内网服务

news2025/1/11 2:28:19

ubuntu小技巧29--frp实现通过公网访问内网服务

  • 1 介绍
  • 2 方法步骤
  • 3 注意事项
  • 4 说明

1 介绍

很多时候我们需要在外部网络中访问局域网或者个人家庭主机,以便于实现一个机器在多个地方都能用,此时我们就可以使用 frp 或者其竞品来实现该功能。

frp 是一个专注于内网chuantou的高性能的反向daili应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。

如下所示为更加详细的官方介绍:
在这里插入图片描述
在这里插入图片描述

2 方法步骤

下载 frp 程序-frp releases, frp_0.46.0_linux_amd64.tar.gz

  1. 配置&启动服务端程序
    服务端一般为具有稳定公网IP的服务器
    1)准备配置文件
    $ vim frp_0.45.0_linux_amd64/frps.ini 
    [common]
    bind_port = 7000
    dashboard_port = 7500
    # dashboard's username and password are both optional
    dashboard_user = admin
    dashboard_pwd = your-pwd
    
    2) 启动服务
    ./frp_0.45.0_linux_amd64/frps -c ./frp_0.45.0_linux_amd64/frps.ini &
    
    3) 配置 keep_run.sh 脚本
    $ vim keep_run
    #!/bin/sh
    #检测程序(frpc)是否运行,未运行则启动该程序
    echo "I'm KeepAlive!"
    cd /home/xg/soft/frp/
    ps -ef >process
    grep 'frps' process
    if [ $? -eq 0 ];
    then 
    echo "frps is running!"
    else 
    echo "frps is dead!"
    ./frp_0.45.0_linux_amd64/frps -c ./frp_0.45.0_linux_amd64/frps.ini &
    fi
    
    4) 加入到 crontab
    */5 * * * * bash /home/xg/soft/frp/keep_run.sh
    
  2. 配置&启动客户端程序
    客户端一般为内网或个人家里的服务器/台式机,机器能连上上述服务端口的IP和端口即可
    1) 准备配置文件
    $ vim frp_0.45.0_linux_amd64/frpc.ini 
    [common]
    server_addr = 106.xx.xx.12
    server_port = 7000
    
    [ssh]
    type = tcp
    local_ip = 127.0.0.1
    local_port = 22
    remote_port = 10022
    
    2) 启动服务
    ./frp_0.45.0_linux_amd64/frpc -c ./frp_0.45.0_linux_amd64/frpc.ini &
    
    3) 配置 keep_run.sh 脚本
    $ vim keep_run.sh 
    #!/bin/sh
    #检测程序(frpc)是否运行,未运行则启动该程序
    echo "I'm KeepAlive!"
    cd /home/xg/soft/frp/
    ps -ef >process
    grep 'frpc' process
    if [ $? -eq 0 ];
    then 
    echo "frpc is running!"
    else 
    echo "frpc is dead!"
    ./frp_0.45.0_linux_amd64/frpc -c ./frp_0.45.0_linux_amd64/frpc.ini &
    fi
    
    4) 加入到 crontab
    */5 * * * * bash /home/xg/soft/frp/keep_run.sh
    
  3. 测试
    服务端 和 客户端都起来后就可以在 dashboard 中查看到相关信息,具体如下图所示:
    在这里插入图片描述
    在这里插入图片描述
    测试登陆:
    ssh -p10022 xg@106.xx.xx.46 输入密码后就登陆成功,可以正常访问内网中客户端的主机了
    在这里插入图片描述

3 注意事项

  1. 必须确保有一台稳定公网的服务器,服务器需要按需开通相关端口的白名单,确保内网主机可以访问.

4 说明

gofrp docs
frp官方文档
frp github

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

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

相关文章

11Python面相对象基础语法

面相对象基础语法 01. dir 内置函数 在 Python 中 对象几乎是无所不在的,我们之前学习的 变量、数据、函数 都是对象 在 Python 中可以使用以下两个方法验证: 使用内置函数 dir 传入 标识符 / 数据,可以查看对象内的 所有属性及方法 提示…

基于 UWB 数字孪生钢厂人员安全定位

钢铁冶炼从原料采购、焦化烧结、炼铁、炼钢、轧钢、到产出成品,其冗长的生产工序、复杂的作业场景,更应加以重视生产现场的人员作业安全,将安全防范监管贯穿日常作业全过程,打通安全生产责任“最后一公里”。 随着近几年钢厂信息…

电源管理芯片|“小方寸”大作为—TMI3191直击智能穿戴电源痛点!

随着移动通信、人工智能等技术的不断发展和融合, 智能终端产业正在加速裂变,智能穿戴迅速成为人们日常生活和工作中的新宠。 根据IDC最新数据显示,2016年~2020年出货量从1.02亿台增长至4.45亿台,预测2020-2025年全球智能可穿戴设备出货量复合…

手写B+树

1.特点 https://blog.csdn.net/weixin_57128596/article/details/127030901?ops_request_misc%257B%2522request%255Fid%2522%253A%2522167176442416800188598723%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id167176442416800…

springboot mybatis大学生校园宿舍管理系统源码含文档

摘 要:宿舍是大学生学习与生活的主要场所之一,宿舍管理是高校学工管理事务中 尤为重要的一项。随着我国高校招生规模的进一步扩大,学生总体人数的不断增加, 宿舍管理工作变得愈加沉重和琐碎,学生宿舍信息的采集、汇总…

Classifier Guided Diffusion

前言 上次已经学习了open AI的 DDPM(DDPM原理与代码剖析)和 IDDPM(IDDPM原理和代码剖析), 以及 斯坦福的 DDIM DDIM原理及代码(Denoising diffusion implicit models). 这次来看openAI的另一个作品 Diffusion Models Beat GANs on Image Synthesis github: https://github.com…

操作系统(4)页面替换策略算法模拟实现

1. 效果展示 2. 程序流程图 (1) 程序总流程 (2) FIFO策略 (3) LRU策略 (4) OPT策略 3. 数据结构设计 //页面数据结构struct PageInfo {int id;int visit;};PageInfo* Block; // 物…

我国电力物流行业发展现存问题及解决策略分析 企业应加强信息化建设

电力物流是电力发、输、配、售流程的一部分,是为了满足终端用户需求,对电力从发电到终端用户的高效率、高效益的流动以及流程各环节相互提供的服务和相关信息在此过程中的正、反向流动所进行的计划、实施与控制过程。 根据观研报告网发布的《中国电力物流…

nginx反向代理ssl配置

nginx反向代理是各大应用环境最重要的环节,今天我们来说说如何配置反代理SSL这书,首先配置准备好:nginx环境、SSL证书、确定需要设置的端口防火墙开放(尤其是云服务器需要单独设置,windows防火墙单独设置)。…

电巢:上海半导体投资浪潮的前奏、高潮与转折

朱旭东是上海半导体投资界的开创性人物,他带领浦科投资投出了中微半导体、盛美半导体等当下的「国之重器」,并控股了万业企业、上工申贝等A股上市公司。随后又在国内率先发起设立并管理了上海半导体装备材料产业投资基金,推动旗下上市公司万业…

前端开发--JavaScript Bom和Dom

JavaScript Bom和Dom这一篇就够啦JavaScript Bom和Dom1、Web API 基本认知2、DOM -- 基础2.1 DOM简介2.2 获取元素2.3 事件基础2.4 操作元素2.5 节点操作2.6 DOM重点核心3、DOM -- 事件高级3.1 注册事件(绑定事件)3.2 删除事件(解绑事件)3.3 DOM事件流3.4 事件对象3.5 事件委托…

如何理解UML2.5.1(05篇)

标记subsets和redefines可以说是UML2.5.1中最重要的一对标记。标记subsets相对要好理解一些,但是redefines的含义就没有那么直白。先看一下目前已知的subsets和redefines的效果: 假定图一中A1和B1的关联两端的标记都是subsets&#xff0…

Torch计算方法

Torch 中的计算方法与 Numpy 的计算方法很类似;Torch中带 “下划线 ” 的操作,都是in-place的。 求和: torch.sum() 对输入的 tensor 数据的某一维度求和; 1.torch.sum(input, dtypeNone) 2&…

硬盘 / 硬盘控制器主要端口寄存器 / Controller Register

文章目录IDE 与 SATA硬盘分区表结构硬盘控制器主要端口寄存器data 寄存器Error && FeaturesErrorFeaturesSector countLBA low | mid | highdevice 寄存器StatusCommandIDE 与 SATA 很久以前,硬盘控制器和硬盘是分开的,后面开发了一个新接口&am…

【观察】新华三:智慧计算“再进化”,算力创新“再升级”

今天,算力就是生产力已成为业界共识,特别是算力作为数字经济时代的关键生产力要素,更成为了挖掘数据要素价值,推动数字经济发展的核心支撑力和驱动力。在此过程中,由算力驱动的数字经济除了以信息产业这一独立的经济形…

Linux进程间通信(二):命名管道的使用和原理

文章目录一、前言二、命名管道的使用一、前言 我们上篇博客里谈到,进程间通信的本质在于如何让两个进程看到同一份资源。匿名管道的核心思想就是让子进程继承父进程,从而让父子进程看到同一份管道文件,但这也使通信仅仅局限在具有血缘关系的进…

比Sqoop功能更加强大开源数据同步工具DataX实战

文章目录概述定义与Sqoop对比框架设计支持插件核心架构核心优势部署基础环境安装从stream读取数据并打印到控制台读取MySQL写入HDFS读取HDFS写入MySQL执行流程概述 定义 DataX 官网地址 https://maxwells-daemon.io/ DataX GitHub源码地址 https://github.com/alibaba/DataX D…

SaaS是什么?企业采购SaaS有什么好处?

简单的来讲讲我们对SaaS的理解吧。过去通常来说,我们采购企业使用的产品,通常有比如传统的软件包下载、按照自己的需求找开发商定制、如果有自研能力的团队可以自己去开发。但是这样就比如带来很多问题: 比如业务规则更新了怎么办&#xff1…

Protobuf 了解

Protocol Buffers 是一种结构数据序列化方法,可以将C中定义的存储类的内容与二进制序列串相互转换,主要用于数据传输或数据存储,可类比XML、JSON,而XML、JSON基于文本格式,protobuf是二进制格式,所以比XML、…

【论文阅读总结】inception v4与Inception-ResNet总结

Inception-v4, Inception-ResNet和Residual connections对学习的影响1.摘要2.引言3.文献综述4.体系结构的选择4.1 Pure Inception4.2 Residual Inception Blocks【残差Inception 块】4.3 Scaling of the Residuals【残差的缩放】4.3.1实验发现4.3.1.1实验发现14.3.1.2实验发现2…