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

frp搭建ssh内网穿透

frp软件包下载

检查外网服务器架构

uname -i

在这里插入图片描述

官网下载对应的版本

https://github.com/fatedier/frp/releases

使用wget或拷贝文件到外网服务器/opt目录下并解压

解压得到frp_0.59.0_linux_amd64文件夹

tar -zxvf frp_0.59.0_linux_amd64.tar.gz

在这里插入图片描述
在这里插入图片描述

  • frpc
    这是 frp 的客户端可执行文件。
    用于在客户端机器上运行,建立与 frp 服务器的连接。
    负责将本地服务暴露到公网。
  • frpc.toml
    这是 frp 客户端的配置文件。
    使用 TOML 格式编写。
    包含客户端的设置,如服务器地址、认证信息、需要暴露的本地服务等。
  • frps
    这是 frp 的服务器端可执行文件。
    运行在具有公网 IP 的服务器上。
    负责接收来自 frpc 的连接并转发流量。
  • frps.toml
    这是 frp 服务器端的配置文件。
    同样使用 TOML 格式。
    包含服务器的设置,如监听端口、认证方式、允许的协议等。
  • LICENSE
    这是软件的许可证文件。
    包含软件的使用、分发和修改条款。
    frp 使用 Apache License 2.0,这是一个开源许可证。

所以在外网的服务器配置这里,我们只用frpsfrps.toml这两个文件就行

外网服务器配置

修改外网frps.toml配置

nano frps.toml

配置信息如下:

# 【必填】这是你frps服务的端口
bindPort = 7000# 【建议必填】认证设置(强烈建议)
auth.token = "X9f$p2KlZ7*vB3@qR7nJ3^wY5"# 【可选】允许的端口范围(可选)
allowPorts = [{ start = 6000, end = 7000 },{ single = 80 },{ single = 443 }
]

在这里插入图片描述

修改完成后执行校验

./frps verify -c ./frps.toml

在这里插入图片描述
(显示 is ok 就表示形式上没问题了,只是形式上,可能还会存在其他问题。)

编写systemd服务

这个时候你可以使用nohup启动服务了,但是这样非常的脆弱,不优雅。推荐使用systemd启动,官网也是这么推荐的。https://gofrp.org/zh-cn/docs/setup/systemd/

sudo vim /etc/systemd/system/frps.service
[Unit]
Description=Frp Server Service
After=network.target[Service]
Type=simple
User=root
Restart=on-failure
RestartSec=5s
ExecStart=/opt/frp_0.59.0_linux_amd64/frps -c /opt/frp_0.59.0_linux_amd64/frps.toml[Install]
WantedBy=multi-user.target

注意这里的ExecStart对应你的运行指令
在这里插入图片描述
保存编辑后,重新加载 systemd 配置:

sudo systemctl daemon-reload

尝试启动服务:

sudo systemctl start frps

检查状态:

sudo systemctl status frps

出现这个就对了
在这里插入图片描述

内网服务器配置

检查内网服务器架构

uname -i

在这里插入图片描述
和外网服务器架构一样都是AMD架构,复用之前的文件,因为有些内网用户不是root,比如我这里内网的用户是baijs,于是我拷贝到了/home/baijs/opt/frp下面的目录,你是root用户的话,建议还是和外网服务器一样,放在/opt下面

拷贝frpc文件

创建我们家目录下的opt/frp

mkdir -p ~/opt/frp/

拷贝文件到这里
在这里插入图片描述
在这里插入图片描述
内网服务器是客户端,于是,接下来我们修改frpc.toml

修改frpc.toml

vim ~/opt/frp/frp_0.59.0_linux_amd64/frpc.toml

serverAddr填写你的外网服务器的IP
auth.token = “X9f$p2KlZ7*vB3@qR7nJ3^wY5” | 这里的token和你外网写的一致

serverAddr = "121.55.55.55"
serverPort = 7000
auth.token = "X9f$p2KlZ7*vB3@qR7nJ3^wY5"[[proxies]]
name = "ssh"
type = "tcp"
localIP = "127.0.0.1"
localPort = 22
remotePort = 6999

校验

./frpc verify -c ./frpc.toml

在这里插入图片描述

编写systemd服务

vim /etc/systemd/system/frpc.service
[Unit]
Description=frp client
After=network.target[Service]
Type=simple
User=nobody
Restart=on-failure
RestartSec=5s
ExecStart=/home/baijs/opt/frp/frp_0.59.0_linux_amd64/frpc -c /home/baijs/opt/frp/frp_0.59.0_linux_amd64/frpc.toml[Install]
WantedBy=multi-user.target

在这里插入图片描述
保存编辑后,重新加载 systemd 配置:

sudo systemctl daemon-reload

尝试启动服务:

sudo systemctl start frpc

检查状态:

sudo systemctl status frpc

出现这个就对了
在这里插入图片描述
然后我们通过外网121.55.55.55:6999就可以SSH连接到内网的22端口了

相关文章:

frp搭建ssh内网穿透

frp软件包下载 检查外网服务器架构 uname -i官网下载对应的版本 https://github.com/fatedier/frp/releases 使用wget或拷贝文件到外网服务器/opt目录下并解压 解压得到frp_0.59.0_linux_amd64文件夹 tar -zxvf frp_0.59.0_linux_amd64.tar.gzfrpc 这是 frp 的客户端可执…...

OpenCV库学习之cv2.normalize函数

OpenCV库学习之cv2.normalize函数 一、简介 cv2.normalize是OpenCV库中的一个函数,用于对图像进行归一化处理。归一化是一种线性变换,可以将图像像素值的范围缩放到指定的区间。这种操作在图像处理中非常有用,特别是在需要将图像数据用于某些…...

LINUX操作系统安全

一、概述内容 操作系统负责计算机系统的资产管理,支撑和控制各种应用程序运行,为用户提供管理计算机系统管理接口。操作系统也是构成网络信息系统的核心关键组件,其安全可靠性决定了计算机系统的安全性和可靠性。 操作系统安全是指满足安全…...

vue3.0学习笔记(三)——计算属性、监听器、ref属性、组件通信

1. computed 函数 定义计算属性: computed 函数,是用来定义计算属性的,计算属性不能修改。 计算属性应该是只读的,特殊情况可以配置 get set 核心步骤: 导入 computed 函数 执行函数 在回调参数中 return 基于响应…...

Elasticsearch面试三道题

针对Elasticsearch的面试题,从简单到困难,我可以给出以下三道题目: 1. Elasticsearch的基本概念与优势 问题:请简要介绍Elasticsearch是什么,并说明它相比传统数据库的优势有哪些? 答案: El…...

大厂面经:大疆嵌入式面试题及参考答案(4万字长文:持续更新)

目录 Linux 系统调用的过程,中间发生了什么? 表格总结 Linux 中断流程,谈谈你对中断上下文的理解 中断流程 中断上下文理解 Linux schedule() 函数的原理和调用的时机 schedule() 函数原理 调用时机 页表实现机制,分页的缺点? 页表机制 分页的缺点 介绍操作系…...

数据结构【有头双向链表】

目录 实现双向链表 双向链表数据 创建双向链表 初始化双向链表创建(哨兵位) 尾插 打印双向链表 头插 布尔类型 尾删 头删 查询 指定位置后插入 指定位置删除数据 销毁 顺序表和链表的分析 代码 list.h list.c test.c 注意&#xff1a…...

docker 安装jenkins详细步骤教程

Jenkins 是一个开源的持续集成(CI)和持续部署(CD)工具,用于自动化软件开发过程中的构建、测试和部署。 特点和功能: 持续集成:Jenkins 可以自动触发构建过程,检查代码变更并进行构建、测试和部署,以确保团队的代码始终保持可集成状态。 插件生态系统:Jenkins 拥有丰富…...

C++模板函数

C模板函数 函数模板简单的函数模板模板类型推导返回输入的类型,模板返回的类型由输入的决定返回类型的模板参数返回值使用auto,编译器自动推导 默认模板实参模板参数重载函数模板 constexpr关键字 函数模板 简单的函数模板 typename 可以使用class代替…...

c#中的正则表达式和日期的使用(超全)

在 C# 中,正则表达式(Regular Expressions)是一种强大的文本处理工具,用于执行各种字符串搜索、替换和验证任务。以下是一些常用的正则表达式示例及其用途: 1. 邮箱地址验证 ​ string emailPattern "^[^\s][^…...

论文阅读【检测】:商汤 ICLR2021 | Deformable DETR

文章目录 论文地址AbstractMotivation技术细节多尺度backbone特征MSDeformAttention 小结 论文地址 Deformable DETR 推荐视频:bilibili Abstract DETR消除对目标检测中许多手工设计的组件的需求,同时表现出良好的性能。然而,由于Transfor…...

dpdk发送udp报文

dpdk接收到udp报文后,自己构造一个udp报文,将收到的报文中的源mac,目的mac,源ip,目的ip,源端口和目的端口交换下顺序填充到新的udp报文中,报文中的负载数据和收到的udp保持一致。 注&#xff1…...

网站后端管理和构建java项目的工具-Maven

maven是用于管理和构建java项目的工具。 管理Jar包 无论是使用eclipse、IDEA创建的maven项目,格式都是统一的。 不同开发工具创建的maven项目兼容。 test是对main测试的代码。main中的resources中放置配置文件。 对于Maven,一个Maven项目就是一个对象…...

深入理解计算机系统 CSAPP 家庭作业11.10

A: //home.html <form action"/cgi-bin/adder" method"GET"><ul><li><label for"n1">n1:</label><input type"text" id"n1" name"n1" /> //name的值决定页面提交后&#xf…...

Unity3D 二进制序列化器详解

前言 在Unity3D开发中&#xff0c;二进制序列化是一种重要的数据持久化和网络传输技术。通过二进制序列化&#xff0c;游戏对象或数据结构可以被转换成二进制格式&#xff0c;进而高效地存储于文件中或通过网络传输。本文将详细介绍Unity3D中的二进制序列化技术&#xff0c;包…...

js_拳皇(上)

文章目录 架构设计&#xff1a;一图胜千言绪论不能正常加载动图设计的思路渲染画布开发感想角色抽象为矩形ctx 是 canvas 的对象键盘控制角色Set键盘事件流程图在 canvas 里面使用 gif 图片继承存储动作ReferenceError: gif is not definedTypeError: Cannot read properties o…...

TCP请求如何获取客户端真实源IP地址

应用场景 在基于TCP的应用程序中&#xff0c;获取客户端真实源IP地址可以用于以下应用场景&#xff1a; 访问控制和安全策略&#xff1a;通过获取客户端真实源IP地址&#xff0c;应用程序可以实施访问控制策略&#xff0c;限制或允许特定IP地址的访问。这可以用于身份验证、防…...

【b站-湖科大教书匠】6 应用层 - 计算机网络微课堂

课程地址&#xff1a;【计算机网络微课堂&#xff08;有字幕无背景音乐版&#xff09;】 https://www.bilibili.com/video/BV1c4411d7jb/?share_sourcecopy_web&vd_sourceb1cb921b73fe3808550eaf2224d1c155 目录 6 应用层 6.1 应用层概述 6.2 客户-服务器方式和对等方…...

QT串口和数据库通信

创建串口 串口连接客户端并向服务器发送消息 client.pro #------------------------------------------------- # # Project created by QtCreator 2024-07-02T14:11:20 # #-------------------------------------------------QT core gui network QT core gui…...

WebKitWebKit简介及工作流程

简介 引擎能够解析HTML、CSS、JavaScript等网页标准&#xff0c;从而将互联网内容呈现给用户。 WebKit的主要特点包括&#xff1a; 开源性&#xff1a;它是一个开源项目&#xff0c;任何人都可以查看、修改和贡献代码。跨平台&#xff1a;WebKit可以在多个操作系统上运行&am…...

UE5 学习系列(三)创建和移动物体

这篇博客是该系列的第三篇&#xff0c;是在之前两篇博客的基础上展开&#xff0c;主要介绍如何在操作界面中创建和拖动物体&#xff0c;这篇博客跟随的视频链接如下&#xff1a; B 站视频&#xff1a;s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...

2.Vue编写一个app

1.src中重要的组成 1.1main.ts // 引入createApp用于创建应用 import { createApp } from "vue"; // 引用App根组件 import App from ./App.vue;createApp(App).mount(#app)1.2 App.vue 其中要写三种标签 <template> <!--html--> </template>…...

基于数字孪生的水厂可视化平台建设:架构与实践

分享大纲&#xff1a; 1、数字孪生水厂可视化平台建设背景 2、数字孪生水厂可视化平台建设架构 3、数字孪生水厂可视化平台建设成效 近几年&#xff0c;数字孪生水厂的建设开展的如火如荼。作为提升水厂管理效率、优化资源的调度手段&#xff0c;基于数字孪生的水厂可视化平台的…...

苍穹外卖--缓存菜品

1.问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得&#xff0c;如果用户端访问量比较大&#xff0c;数据库访问压力随之增大 2.实现思路 通过Redis来缓存菜品数据&#xff0c;减少数据库查询操作。 缓存逻辑分析&#xff1a; ①每个分类下的菜品保持一份缓存数据…...

DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI

前一阵子在百度 AI 开发者大会上&#xff0c;看到基于小智 AI DIY 玩具的演示&#xff0c;感觉有点意思&#xff0c;想着自己也来试试。 如果只是想烧录现成的固件&#xff0c;乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外&#xff0c;还提供了基于网页版的 ESP LA…...

反射获取方法和属性

Java反射获取方法 在Java中&#xff0c;反射&#xff08;Reflection&#xff09;是一种强大的机制&#xff0c;允许程序在运行时访问和操作类的内部属性和方法。通过反射&#xff0c;可以动态地创建对象、调用方法、改变属性值&#xff0c;这在很多Java框架中如Spring和Hiberna…...

Python ROS2【机器人中间件框架】 简介

销量过万TEEIS德国护膝夏天用薄款 优惠券冠生园 百花蜂蜜428g 挤压瓶纯蜂蜜巨奇严选 鞋子除臭剂360ml 多芬身体磨砂膏280g健70%-75%酒精消毒棉片湿巾1418cm 80片/袋3袋大包清洁食品用消毒 优惠券AIMORNY52朵红玫瑰永生香皂花同城配送非鲜花七夕情人节生日礼物送女友 热卖妙洁棉…...

HarmonyOS运动开发:如何用mpchart绘制运动配速图表

##鸿蒙核心技术##运动开发##Sensor Service Kit&#xff08;传感器服务&#xff09;# 前言 在运动类应用中&#xff0c;运动数据的可视化是提升用户体验的重要环节。通过直观的图表展示运动过程中的关键数据&#xff0c;如配速、距离、卡路里消耗等&#xff0c;用户可以更清晰…...

Docker 本地安装 mysql 数据库

Docker: Accelerated Container Application Development 下载对应操作系统版本的 docker &#xff1b;并安装。 基础操作不再赘述。 打开 macOS 终端&#xff0c;开始 docker 安装mysql之旅 第一步 docker search mysql 》〉docker search mysql NAME DE…...

【分享】推荐一些办公小工具

1、PDF 在线转换 https://smallpdf.com/cn/pdf-tools 推荐理由&#xff1a;大部分的转换软件需要收费&#xff0c;要么功能不齐全&#xff0c;而开会员又用不了几次浪费钱&#xff0c;借用别人的又不安全。 这个网站它不需要登录或下载安装。而且提供的免费功能就能满足日常…...