当前位置: 首页 > news >正文

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.lryc.cn/news/255871.html

相关文章:

  • Markdown to write
  • ResNeXt(2017)
  • DreamPlace 的下载安装与使用
  • FPGA模块——SPI协议(读写FLASH)
  • SQL自学通之表达式条件语句与运算
  • 公网域名如何解析到内网IP服务器——快解析域名映射外网访问
  • 线程安全与并发区别
  • SEO优化是什么,如何进行SEO优化
  • nodejs发起http或https请求
  • 举例C#使用特性排除某些类成员不参与XML序列化和反序列化
  • PHP基础 - 输入输出
  • 大创项目推荐 交通目标检测-行人车辆检测流量计数 - 大创项目推荐
  • 利用R语言heatmap.2函数进行聚类并画热图
  • 伦茨科技宣布ST17H6x芯片已通过Apple Find My「查找」认证
  • nodejs微信小程序+python+PHP的游戏测评网站设计与实现-计算机毕业设计推荐
  • 在 JavaScript 中导入和导出 Excel XLSX 文件:SpreadJS
  • 【Pytorch】Fizz Buzz
  • C++ Primer Plus第十四章笔记
  • CentOS 7 mini 运行环境搭建与测试——CentOS Mini 安装ifconfig工具【云原生开发部署实践笔记】
  • 案例061:基于微信小程序的互助学习系统
  • 【ELK03】ES 索引的Mapping映射详解、数据类型和settings属性设置
  • 线性代数入门与学习笔记
  • Linux安全学习路标
  • 常见的中间件--消息队列中间件测试点
  • 【USRP】5G / 6G OAI 系统 5g / 6G OAI system
  • ubuntu20.04设置开机自启动jar(依赖其他服务)
  • 【GEE笔记】在线分类流程,标注样本点、分类和精度评价
  • MATLAB基础运算
  • Linux DAC权限的简单应用
  • JVS低代码表单引擎:数据校验与处理的先锋