linux下部署frp客户端服务端-内网穿透

简介

部署在公司内部局域网虚拟机上的服务需要在外网能够访问到,这不就是内网穿透的需求吗,之前通过路由器实现过,现在公司这块路由器不具备这个功能了,目前市面上一些主流的内网穿透工具有:Ngrok,Natapp,花生壳,Ssh、autossh,Frp,Lanproxy,Spike。这里选用了Frp作为技术实现方案。

一、frp是什么?

如下是github官网介绍https://github.com/fatedier/frp/blob/dev/README_zh.md 。frp是一个专注于内网穿透的高性能的反向代理应用,支持TCP,UDP,HTTP,HTTPS等多种协议。可以将内网服务以安全、便捷的方式通过具有公网IP节点的中转暴露到公网。

那么多方案这里选用frp的主要原因是frp 是一个国内的免费且开源的项目。

二、安装部署

frp下载和版本选择 frp官网

下载frp:https://github.com/fatedier/frp (注意: 客户端和服务端版本要一致)

我这边服务器系统都是CentOS7 64位,于是选择了 frp_0.38.0_linux_adm64.tar.gz

2.1 服务端(阿里云)

yum -y install wget lrzsz
wget https://github.com/fatedier/frp/releases/download/v0.38.0/frp_0.38.0_linux_amd64.tar.gz
tar -xzvf frp_0.38.0_linux_amd64.tar.gz
cd  frp_0.38.0_linux_amd64/
vim  frps.ini
# 在末尾增加一行:vhost_http_port = 8087,使frps.ini最终配置如下:
[root@ecs-ca29 frp_0.38.0_linux_amd64]# cat frps.ini 
[common]
bind_port = 7000#http服务端口
vhost_http_port = 8087#https服务端口
vhost_https_port = 8088# dashboard
dashboard_port = 7500
dashboard_user = root
dashboard_pwd = Maqiangli@1234
dashboard_token = Maqiangli@1234[root@ecs-ca29 frp_0.38.0_linux_amd64]#

注: vhost_http_port监听的端口不能被占用,否则会导致frps不能启动,端口可根据实际需要修改;bind_port端口为frp服务端和客户端连接通信的端口,默认为7000。
在这里插入图片描述

nohup ./frps -c frps.ini &  > frp.log  #frp在后台运行

frps dashboard 通过浏览器查看 frp 的状态以及代理统计信息展示
在这里插入图片描述

每个压缩包解压后都包含以下文件和一个systemd文件夹:
frpc —— 客户端可执行二进制文件
frpc_full.ini —— 包含全部配置项的客户端配置文件
frpc.ini —— 客户端使用的配置文件,包含最简配置
frps —— 服务端可执行二进制文件
frps_full.ini —— 包含全部配置项的服务端配置文件
frps.ini —— 服务端使用的配置文件,包含最简配置
systemd —— 文件夹,用于将frpc和frps添加为服务的配置,linux下使用systemd作为守护程序、mac os使用launchd作为守护程序
注:只需用到frp_0.38.0_linux_amd64目录下的frps相关文件

2.2 客户端(虚拟机)

yum -y install wget lrzsz
wget https://github.com/fatedier/frp/releases/download/v0.38.0/frp_0.38.0_linux_amd64.tar.gz
tar -xzvf frp_0.38.0_linux_amd64.tar.gz
cd  frp_0.38.0_linux_amd64/
vi frpc.ini
[root@localhost frp_0.38.0_linux_amd64]#  cat  frpc.ini
[common]
# 114.115.134.192ip是云服务器公网IP
server_addr = 114.115.134.192
server_port = 7000[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000
#配置http服务 本文配置
[web]
type = http
# frp 客户端IP
local_ip = 127.0.0.1
# frp客户端web服务器IP
local_port = 8087# frp服务端域名或者ip
custom_domains = 114.115.134.192
# 自定义frp服务端端口,将本地19001端口转出为公网IP端口8087
local_port = 19001
remote_port = 8087
[root@localhost frp_0.38.0_linux_amd64]# 

在这里插入图片描述

nohup ./frpc -c ./frpc.ini &  > frp.log  #启动frpc程序
tail -f nohup.out 

注:此时frpc会通过7000端口尝试与frps建立通信连接,看到如下日志这说明连接建立成功

tupian

服务端 7000端口, 和8087端口(根据自己端口变换) ,需要确保端口已经开放外部访问

总结:

到此第二节中的需求已经完成,这里只是使用了frp的http代理功能,frp还有其他的功能特性,感兴趣的可以到官网进行学习。

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

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

相关文章

Docker镜像构建:深入Dockerfile创建自定义镜像

Docker的强大之处在于其能够通过Dockerfile定义和构建自定义镜像,为应用提供独立、可移植的运行环境。在这篇博客文章中,将深入探讨Docker镜像构建的核心概念,通过更加丰富的示例代码,帮助大家全面理解和掌握构建自定义镜像的技术…

深度学习在人体动作识别领域的应用:开源工具、数据集资源及趋动云GPU算力不可或缺

人体动作识别检测是一种通过使用计算机视觉和深度学习技术,对人体姿态和动作进行实时监测和分析的技术。该技术旨在从图像或视频中提取有关人体姿态、动作和行为的信息,以便更深入地识别和理解人的活动。 人体动作识别检测的基本步骤包括: 数…

关于MySQL的bigint问题

MySQL的bigint(8)能存多大数值? MySQL的BIGINT(8)可以存储的数值范围是从-9,223,372,036,854,775,808到9,223,372,036,854,775,807。这是因为BIGINT数据类型在MySQL中使用8字节进行存储,每个字节有8位,所以总共可以表示2^64个不同的整数。 …

IDEA 出现问题:git提交commit时Perform code analysis卡住解决方案

问题 git提交commit时Perform code analysis卡住很久 解决方案一 1、打开 IntelliJ IDEA,进入 File -> Settings(或者使用快捷键 CtrlAltS)。 2、在弹出的 Settings 窗口中,找到 Version Control -> Commit Dialog 选项…

什么是数字化营销?如何进行数字化营销?数字化有多重要?

引言 数字化营销是一种利用数字技术和在线平台来促进产品或服务销售的策略。它包括利用各种数字渠道,如社交媒体、搜索引擎优化、内容营销和数据分析等,与目标受众建立联系并推动销售。 在当今商业环境中,数字化营销扮演着至关重要的角色。…

阿里云国际版无法远程连接Windows服务器的排查方法

如果您遇到紧急情况,需要尽快登录Windows实例,请参见以下操作步骤,先检查ECS实例的状态,然后通过云助手向Windows实例发送命令或通过VNC登录实例,具体步骤如下: 步骤一:检查ECS实例状态 无论何…

SpringBoot之请求的详细解析

1. 请求 在本章节呢,我们主要讲解,如何接收页面传递过来的请求数据。 1.1 Postman 之前我们课程中有提到当前最为主流的开发模式:前后端分离 在这种模式下,前端技术人员基于"接口文档",开发前端程序&…

智能优化算法应用:基于萤火虫算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于萤火虫算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于萤火虫算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.萤火虫算法4.实验参数设定5.算法结果6.参考文…

Unity检测AssetBundle是否循环依赖

原理:bundle的依赖关系构建一个二维的矩阵图,如果对角线相互依赖(用1标记)则表示循环依赖。 using PlasticGui; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEditor; public cl…

单变量线性回归的机器学习代码

本文为学习吴恩达版本机器学习教程的代码整理,使用的数据集为https://github.com/fengdu78/Coursera-ML-AndrewNg-Notes/blob/f2757f85b99a2b800f4c2e3e9ea967d9e17dfbd8/code/ex1-linear%20regression/ex1data1.txt 将数据集和py代码放到同一目录中,使…

如何合理运用蚂蚁SEO蜘蛛池

蜘蛛池是一种搜索引擎优化(SEO)技术,它通过将多个网站连接到一个池子中,从而提高这些网站的搜索引擎排名。然而,合理运用蜘蛛池需要一定的技巧和策略,否则可能会适得其反。 如何联系蚂蚁seo? …

Java+SSM+MySQL基于微信的在线协同办公小程序(附源码 调试 文档)

基于微信的在线协同办公小程序 一、引言二、系统设计三、技术架构四、管理员功能设计五、员工功能设计六、系统实现七、界面展示八、源码获取 一、引言 随着科技的飞速发展,移动互联网已经深入到我们生活的各个角落。在这个信息时代,微信作为全球最大的…

电子学会C/C++编程等级考试2022年09月(五级)真题解析

C/C++等级考试(1~8级)全部真题・点这里 第1题:城堡问题 1 2 3 4 5 6 7 ############################# 1 # | # | # | | # #####---#####---#---#####---# 2 # # | # # # # # #---#####---#####---#####---# 3 # | | # # # # # #---#########---#####---#---# 4 # # | | | …

怎么让gpt帮忙改文章 (1) 快码论文

大家好,今天来聊聊怎么让gpt帮忙改文章 (1),希望能给大家提供一点参考。 以下是针对论文重复率高的情况,提供一些修改建议和技巧: 怎么让GPT帮忙改文章 一、背景介绍 随着人工智能的发展,自然语言处理技术已经成为了许…

1840_emacs org-mode babel的语言支持

Grey 全部学习内容汇总: GitHub - GreyZhang/g_org: my learning trip for org-mode 1840_emacs org-mode babel的语言支持 主题由来介绍 Babel是org-mode中支持文学式编程以及可重现研究的一个核心模块,之前看过这个插件的优点是功能完善且支持的语…

海思越影系列3516DV500/3519DV500/3519AV200/SD3403平台的AI一体化工业相机设计思路

随着工业自动化的发展,生产线对机器视觉的数量要求越来越多,由于数量的增加,视觉系统占的空间也越来越大,给生产线的布局带来困扰。 另一方面随着视觉SOC的发展,越来越多的视觉SOC都逐渐带有一定的算力,一体…

实验四 TCP/UDP协议分析

目录 一、TCP连接建立过程分析 二、TCP关闭连接过程分析 三、6号报文分析 四、A方TCP报文序列号分析 五、计算 六、UDP协议分析 一、TCP连接建立过程分析 图 1 第一次握手 第一次握手:客户端将标志位 SYN 置为 1 ,随机产生一个值SEQ X 0&#xf…

Edge浏览器版本更新后Copilot按钮消失的解决应对方式

需求背景 今天突然发现Edge浏览器右上角的Copilot按钮不见了,排查了一下,发现可能是浏览器自动升级到120版本后,关闭了右上角的Copilot按钮。案发现场如下: 原因如下: 说实话,人家这个插件还是很好用的&…

计网 - LVS 是如何直接基于 IP 层进行负载平衡调度

文章目录 模型LVS的工作机制初探LVS的负载均衡机制初探 模型 大致来说,可以这么理解(只是帮助我们理解,实际上肯定会有点出入),对于我们的 PC 机来说,物理层可以看成网卡,数据链路层可以看成网卡…

HTML中常用表单元素使用(详解!)

Hi i,m JinXiang ⭐ 前言 ⭐ 本篇文章主要介绍HTML中常用表单元素使用以及部分理论知识 🍉欢迎点赞 👍 收藏 ⭐留言评论 📝私信必回哟😁 🍉博主收将持续更新学习记录获,友友们有任何问题可以在评论区留言 …