Linux安装frp实现内网穿透

Linux运维工具-ywtool

目录

  • 一. 简介
  • 二.代理类型
  • 三.frp支持的Linux的架构
  • 四.安装
    • 1.准备工作
    • 2.配置frp服务器端
      • (a)下载安装包
      • (b)解压安装包
      • (c)修改配置文件
      • (d)启动服务端
    • 3.配置frp客户端
      • (a)下载安装包并修改配置文件
      • (b)启动客户端
    • 4.测试连接
  • 五.其他
    • 1.多端口穿透
      • (a)服务端
      • (b)客户端
    • 2.报错:无法执行二进制文件


一. 简介

frp是一款开源、简用、高性能内网穿透和反向代理神器,采用Golang 编写,支持跨平台,仅需下载对应平台的二进制文件即可执行,没有额外依赖,支持TCP、UDP、HTTP、HTTPS等协议,使用丝滑流畅,通过在具有公网IP的节点上部署frp服务端,可以轻松地将内网服务穿透到公网,同时提供诸多专业的功能特性

支持P2P穿透(搭建最少需要一台服务端两台客户端),使用的协议为XTCP,仅少量占用服务器带宽,占用的带宽可忽略不计,不管是远程桌面操控还是传输大文件,都是一大利器。

二.代理类型

frp支持多种代理类型来适配不同的使用场景

  1. TCP:单纯的 TCP 端口映射,服务端会根据不同的端口路由到不同的内网服务
  2. UDP:单纯的 UDP 端口映射,服务端会根据不同的端口路由到不同的内网服务
  3. HTTP:针对 HTTP 应用定制了一些额外的功能,例如修改 Host Header,增加鉴权
  4. HTTPS:针对 HTTPS 应用定制了一些额外的功能
  5. STCP:安全的 TCP 内网代理,需要在被访问者和访问者的机器上都部署frpc,不需要在服务端暴露端口
  6. SUDP:安全的 UDP 内网代理,需要在被访问者和访问者的机器上都部署frpc,不需要在服务端暴露端口
  7. XTCP:点对点内网穿透代理,功能同STCP,但是流量不需要经过服务器中转
  8. TCPMUX:支持服务端 TCP 端口的多路复用,通过同一个端口访问不同的内网服务

三.frp支持的Linux的架构

386X86架构
amd64amd架构
armarm架构
arm6464位arm架构
mipsmips架构
mips6464位mips架构
mipslemipsle架构
mips64le64位mipsle架构

四.安装

1.准备工作

(1)拥有一台有公网IP的服务器(系统可以是windows/macos/linux),服务器可以使用云厂商购买的服务器
(2)从下面链接下载最新版本的frp安装包,客户端和服务端是同一个tar包
https://github.com/fatedier/frp/releases
在这里插入图片描述

2.配置frp服务器端

(a)下载安装包

wget https://github.com/fatedier/frp/releases/download/v0.58.1/frp_0.58.1_linux_amd64.tar.gz

在这里插入图片描述

(b)解压安装包

tar -zxvf frp_0.58.1_linux_amd64.tar.gz

在这里插入图片描述

©修改配置文件

cd frp_0.58.1_linux_amd64/
vim frps.toml
#或vim frps.ini#bindPort = 7000
[common]
bind_port = 7000
#frp服务端口,frpc的配置会调用
dashboard_user = admin
#frp的web控制台端口账号
dashboard_pwd = admin
#frp的web控制台端口密码
dashboard_port = 7500
#frp的web控制台端口admin_password = admin
#设置密码验证

在这里插入图片描述

(d)启动服务端

./frps -c ./frps.toml
#如果后台启动
#nohub frps -c frps.toml frp.log 2>&1 &
#nohup /root/frp/frps -c /root/frp/frps.toml >/root/frp/frp.log 2>&1 &
#tail -f frp.log

在这里插入图片描述

3.配置frp客户端

(a)下载安装包并修改配置文件

wget https://github.com/fatedier/frp/releases/download/v0.58.1/frp_0.58.1_linux_amd64.tar.gz
tar -zxvf frp_0.58.1_linux_amd64.tar.gz
cd frp_0.58.1_linux_amd64/
vim frpc.toml
#这里以SSH服务为例,将本地的22端口映射到云服务器的6000端口serverAddr = "公网IP"
serverPort = 7000[[proxies]]
#上面这条不能修改,不然会报错
name = "test-tcp"
type = "tcp"
localIP = "127.0.0.1"
localPort = 22
remotePort = 6000

在这里插入图片描述

(b)启动客户端

#Linux启动
./frpc -c ./frpc.toml
#windows启动
frpc.exe -c frps.toml

在这里插入图片描述

4.测试连接

ssh root@公网IP -p 6000

在这里插入图片描述

五.其他

1.多端口穿透

(a)服务端

vim frps.ini
#修改frps.ini配置文件
[common]
bind_port = 7000
dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = admin[tcp_22]
#链接的名称
type = tcp
#代理的连接类型
local_port = 6000
#本地映射的端口
listen_port = 22
#监听的端口[tcp_9000]
type = tcp
local_port = 9000
listen_port = 9000

(b)客户端

公网IP:6000=内网IP:22
公网IP:9000=内网IP:9000

vim frps.ini配
#修改frps.ini配置文件
[common] 
server_addr = 服务器公网IP 
server_port = 7000[tcp_22]
type = tcp
local_ip = 127.0.0.1
#代理IP
local_port = 22
#代理端口
remote_port = 6000
#代理映射端口[tcp_9000]
type = tcp
local_ip = 127.0.0.1
local_port = 9000
remote_port = 9000

2.报错:无法执行二进制文件

原因:下载的frp安装包的系统架构和安装环境的系统架构不匹配,系统是x86_64的,下载成arm64的安装包了
在这里插入图片描述

End

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

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

相关文章

【AI】存储自定义色板库

点击左上角色板,弹出色板框; 色板框的左下角有一个“色板库” 菜单,点击色板库菜单,弹出色板库; 色板库弹窗的第一条数据【存储色板】,点击存储色板,出现自定义色板所在文件路径; 找…

vue如何把组件方法暴露到window对象中

vue如何把组件方法暴露到window对象中 场景:使用Vue开发电子地图功能,供客户端使用qtWebEngineView嵌入页面,客户端需要调用页面里定义的js方法实现相应功能。 问题:Vue组件内的方法,在外部调用不到。 原因&#xf…

线程的创建(一)

通过继承Thread类实现多线程 继承Thread类实现多线程的步骤: 在Java中复责实现线程功能的类是java.lang.Thread类。(此种方式的缺点:如果我们的类已经继承了一个类(如:小程序必须继承自 Appiet 类)&#x…

计算机毕业设计Thinkphp/Laravel校园体育器材管理系统

校园体育器材管理系统在流畅性,续航能力,等方方面面都有着很大的优势。这就意味着校园体育器材管理系统的设计可以比其他系统更为出色的能力,可以更高效的完成最新的体育器材、器材借用、器材归还、器材损坏、采购入库、器材报废、维修记录等…

产品(soc)研发量产流程介绍

硬件开发流程: 开始 ↓ 立项:经过市场调研、客户需求分析、可行性评估(技术,成本,时间)确定需要做的事情,制定初步产品定义和规格 ↓ 供应商导入:如果自身无工厂,需要与工厂联姻,一起合作“生产品” ↓ 产品设计与开发:将需求转化为图纸、规格,即“纸上谈兵…

linux 获得打开指定文件进程的PID和该进程的绝对路径 C语言

下面代码效果是查出哪个进程打开了指定文件,可以查出打开文件进程的PID以及该进程所在linux的绝对路径(只能查出一个,想得出全部的需要小改一下代码),并且可以自己选择是否kill掉这个进程 #include <stdio.h> #include <string.h> #include <stdlib.h>//执行…

Spring Boot整合RocketMQ实现延迟消息消费

导包 <dependency><groupId>org.apache.rocketmq</groupId><artifactId>rocketmq-spring-boot-starter</artifactId><version>2.0.3</version></dependency>添加配置信息 application配置文件 # rocketMq地址 rocketmq.name…

Ubuntu+Apache2 搭建Gerrit 环境

一、前言 时隔多年&#xff0c;好久没有更新CSDN 博客了&#xff0c;主要原因有如下两点&#xff1a; 1、平时工作繁忙&#xff0c;无暇更新。 2、工作内容涉及信息安全&#xff0c;一些工作经验积累不便更新到互联网上。 最近一直在折腾搭建Gerrit 环境&#xff0c;最开始是…

基于Transformer的自监督学习在NLP中的前沿应用

1. 引言 自然语言处理&#xff08;NLP&#xff09;领域正经历一场由自监督学习&#xff08;Self-Supervised Learning, SSL&#xff09;和Transformer架构共同驱动的革命。自监督学习通过巧妙地利用未标注数据&#xff0c;大大减少了对人工标注的依赖&#xff0c;而Transforme…

基于IM948(Low-cost IMU+蓝牙)模块的高精度PDR(Pedestrian Dead Reckoning)定位系统 — 可以供模块和配套代码

一、背景与意义 行人PDR定位系统中的PDR&#xff08;Pedestrian Dead Reckoning&#xff0c;即行人航位推算&#xff09;背景意义在于其提供了一种在GPS信号不可用或不可靠的环境下&#xff0c;对行人进行精确定位和导航的解决方案。以下是关于PDR背景意义的详细描述&#xff1…

Nacos、Sentinel底层核心原理

Nacos和Sentinel都是服务于微服务架构的组件&#xff0c;但它们各自承担不同的角色和功能。 ### Nacos的核心原理&#xff1a; 1. **服务发现与注册中心**&#xff1a;Nacos作为服务注册中心&#xff0c;允许服务实例在启动时注册自己&#xff0c;并在关闭时注销。客户端可以通…

如何正确选择EC油封端盖?

在机械系统中&#xff0c;EC油封端盖扮演着关键角色。正确选择密封圈不仅能确保系统的正常运行&#xff0c;还能延长设备的使用寿命。本文将从多个角度探讨如何选择合适的EC油封端盖。 分析应用环境 操作环境&#xff1a; 温度范围&#xff1a;确定操作环境的温度范围。像FK…

超越常规:深度定制Ant Design Vue组件样式

标题&#xff1a;超越常规&#xff1a;深度定制Ant Design Vue组件样式 Ant Design Vue是一个基于Vue.js的UI设计语言&#xff0c;它提供了一套企业级的高质量React组件。尽管Ant Design Vue的组件已经非常完善&#xff0c;但在某些情况下&#xff0c;我们可能需要根据特定的设…

Shopee、Lazada测评,是找服务商呢?还是建议自己养号补单呢?

目前大部分Shopee、Lazada的卖家由于运营成本的增加&#xff0c;都会找服务商测评来打造权重&#xff0c;但是找服务商有很多不靠谱&#xff0c;建议还是自行精养一批号&#xff0c;账号在手里比较安全可控&#xff0c;随时随地可以送测&#xff0c;精准搜索关键词货比三家下单…

【日记】希望文竹长得越来越好吧(856 字)

正文 为什么昨天给老师提早说了今天上课…… 今天都要忙死了。不论上午下午都手忙脚乱。上午之前的存量客户来开新账户&#xff0c;流程卡在客户经理尽调那里。恰好那个客户经理还是部门主管&#xff0c;我们没一个人敢催。向副行长汇报情况&#xff0c;又跟客户说。客户跟他们…

Python风控建模实战案例数据库(50个实战数据集,上千万数据量)

作者Toby&#xff0c;来源公众号&#xff1a;Python风控模型&#xff0c;Python风控建模实战案例数据库 风险控制建模是指利用数据和分析方法来识别、评估和管理金融风险的过程。在金融领域&#xff0c;风险控制建模通常涉及建立数学模型&#xff0c;用于评估借款人、投资组合、…

git 命令 远程分支B合并到本地自己的分支A

场景说明&#xff1a;每个同事都有自己的开发分支&#xff0c;开发完统一汇总到 dev 分支 我&#xff1a;本地开发分支A&#xff0c;正在开发&#xff0c; 同事&#xff1a;远程分支B开发完&#xff0c;提交了代码在他的分支&#xff0c; 现在需要将同事B分支的代码合并到本地的…

【Android】android studio简单实现图书馆借阅管理系统

希望文章能给到你启发和灵感&#xff5e; 点赞收藏关注 支持一下吧&#xff5e; 阅读指南 序幕一、基础环境说明1.1 硬件环境1.2 软件环境 二、整体设计2.1 数据库逻辑处理&#xff1a;2.2 登录/注册模块2.3 功能界面初始化&#xff1a;2.4 图书管理模块2.5 图书租借服务2.6 读…

Java25年还有更多的工作岗位适合二本学生就业吗?

Java作为一种广泛使用的编程语言。尽管技术领域不断发展和变化&#xff0c;Java依然在许多行业中占据重要地位。以下是一些原因&#xff0c;刚好我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「JAVA的资料从专业入门到高级教程」&#xff0c; 点个关注在评论区…

基于Java的软件测试管理系统【附源码】

毕业&#xff08;设计&#xff09;论文 题 目&#xff1a; 软件测试管理系统 学 号&#xff1a; 姓 名&#xff1a; 院 部&#xff1a; 专 业&#xff1a; 班 级&#xff1a; 指导教师&#xff1a; 职 称&#xff1a; 完成日期&#xff1a; 年 月 日 摘要 随着信息技术的不断…