ubuntu内网穿透后在公网使用ssh登录

需求:

  • 我有一台内网可以通过ssh 22端口访问的设备
  • 操作系统是ubuntu server
  • 我还有1台拥有公网IP的服务器,IP地址是 6.66.666.6666
  • 我想随时从其他网段通过ssh访问我的ubuntu server设备

实现:

  1. 工具准备:frp
    网址:https://github.com/fatedier/frp?tab=readme-ov-file
    下载releases:https://github.com/fatedier/frp/releases
    在这里插入图片描述

  2. 看一下我的设备要安装哪个发布版
    内网设备:

~ λ uname -a
Linux raspberrypi 5.15.0-1015-raspi #17-Ubuntu SMP PREEMPT Mon Sep 12 13:14:51 UTC 2022 aarch64 aarch64 aarch64 GNU/Linux

好,安装frp_0.60.0_linux_arm64.tar.gz

tar -zxvf frp_0.60.0_linux_arm64.tar.gz

再看我的公网服务器:

ubuntu:~$ uname -a
Linux VM-20-9-ubuntu 5.15.0-86-generic #96-Ubuntu SMP Wed Sep 20 08:23:49 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

好,安装frp_0.60.0_linux_amd64.tar.gz

tar -zxvf frp_0.60.0_linux_amd64.tar.gz
  1. 配置服务器
    官网已经给了教程,修改frps.toml文件,我就用官方给的默认的7000端口,注意7000是服务器转发端口;
    在这里插入图片描述
    这里就可以在服务器上运行./frps -c ./frps.toml启动frp工具的server了,注意,当前的配置系统重启就失效了;
  2. 配置客户端
    官网已经给了教程,修改frpc.toml文件,我就用官方给的默认的6000端口,注意6000是客户端访问端口,也就是访问内网设备ssh服务时,要把默认22端口改为6000
    在这里插入图片描述
# frpc.toml
serverAddr = "6.66.666.6666" # 就改了这个服务器地址,其他不变
serverPort = 7000[[proxies]]
name = "ssh"
type = "tcp"
localIP = "127.0.0.1"
localPort = 22
remotePort = 6000

这里就可以在内网ubuntu设备上运行./frpc -c ./frpc.toml启动frp工具的client了,注意,当前的配置系统重启就失效了;

  1. 这时候,就可以通过6.66.666.6666:6000尝试登录内网设备了,好,我已经理论上成功登录了——实际上没有
  2. 看了一下,我的买的腾讯云服务器默认是有防火墙的,要给这两端口搞个白名单
    在这里插入图片描述
  3. 通过6.66.666.6666:6000尝试登录内网设备,好,确实可以,如下图,这里安利一下谷歌商店下的APP:ConnectBot
    在这里插入图片描述
  4. 但是这时候发现,我重启公网服务器或者内网ubuntu设备,都会导致内网穿透失效,原因其实就是该服务没设置开机重启罢了
  5. 官方真贴心,又提供了工具:systemd
    网址:https://gofrp.org/zh-cn/docs/setup/systemd/
    但是呢,贴心的官方也是有那么一点点高看我们的,官方给的例子都是对服务器的配置,不够细心的话就会把客户端当成服务端配;
    好,
    这里我是这么干的:
  • 公网服务器和内网ubuntu设备都安装 systemd,apt install systemd
  • 公网服务器创建 frps.service 文件sudo vim /etc/systemd/system/frps.service
    写入内容:
    由于我已经把frp_0.60.0_linux_amd64移动到/opt目录,并重命名为frp
    所以我就相对官方改了这一句
# 启动frps的命令,需修改为您的frps的安装路径,这里注意是frps
ExecStart = /opt/frp/frps -c /opt/frp/frps.toml
  • ubuntu设备创建 frpc.service 文件sudo vim /etc/systemd/system/frpc.service
    写入内容:
    由于我已经把frp_0.60.0_linux_arm64移动到/opt目录,并重命名为frp
    所以我就相对官方改了这一句
# 启动frps的命令,需修改为您的frps的安装路径,这里注意是frpc
ExecStart = /opt/frp/frpc -c /opt/frp/frpc.toml

好,上面的操作意思就是,配置使用工具systemctl 运行 /opt/frp/frps -c /opt/frp/frps.toml/opt/frp/frpc -c /opt/frp/frpc.toml

  • 最后,在公网服务器和内网ubuntu设备均设置 frps 开机自启动
    公网服务器:sudo systemctl enable frps
    内网ubuntu设备:sudo systemctl enable frpc

  • 后面,我分别尝试了重启公网服务器和内网ubuntu设备,结果当然都是ok的;

好,圆满了

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

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

相关文章

Spring源码学习:SpringMVC(3)mvcannotation-driven标签解析【RequestMappingHandlerMapping生成】

目录 前言mvc:annotation-driven标签概述mvc:annotation-driven标签解析【RequestMappingHandlerMapping生成】AnnotationDrivenBeanDefinitionParser#parse (解析入口)RequestMappingHandlerMapping的实例化类图afterPropertiesSetAbstractHandlerMetho…

MySQL数据库——索引

目录 什么是索引(Index)? 怎样加索引? 索引的特点 索引类型 主键索引(Primary Key) 辅助索引(二级索引) 聚集索引和非聚集索引 聚集索引 非聚集索引 单列索引和联合索引 单列索引 联合索引 创…

mac Wireshark You do not have permission to capture on device “rvio“.

原因: 权限不足 解决方案: 打开终端在终端输入 whoamin (会在终端显示本机的实际用户名字) 例如:xiaoming进入 /dev 目录 cd /dev输入命令:ls -la | grep bp输入命令:sudo chown whoamin xiaoming:admin bp*重新打开 …

Python(五)-函数

目录 函数的定义与调用 特点 语法格式 函数的参数 函数的返回值 函数嵌套调用 变量的作用域 局部变量 全局变量 函数的多种参数 位置参数 关键字参数 默认参数 可变参数 函数的定义与调用 python函数需要使用def关键字来定义,需要先定义,后调用 特点: 先定义…

【数据结构与算法】LeetCode:二分查找

文章目录 二分查找二分查找搜索插入位置 (Hot 100)x 的平方根搜索二维矩阵(Hot 100)在排序数组中查找元素的第一个和最后一个位置 (Hot 100)搜索旋转排序数组 (Hot 100)寻找旋转排序…

【Ubuntu】minicom安装、配置、使用以及退出

目录 1 安装 2 配置 3 使用 4 退出 minicom是一个串口通信的工具,以root权限登录系统,可用来与串口设备通信。 1 安装 sudo apt-get install minicom 2 配置 使用如下命令进入配置界面: sudo minicon -s 进入配置界面后,…

【STM32】 TCP/IP通信协议--LwIP介绍

一、前言 TCP/IP是干啥的?它跟SPI、IIC、CAN有什么区别?它如何实现stm32的通讯?如何去配置?为了搞懂这些问题,查询资料可解决如下疑问: 1.为什么要用以太网通信? 以太网(Ethernet) 是指遵守 IEEE 802.3 …

OCR Fusion: EasyOCR/Tesseract/PaddleOCR/TrOCR/GOT

文章目录 前言一、基类 OCRExecutorBase二、EasyOCR1.安装2.模型下载3.DEMO 三、Tesseract1.安装2.使用问题3.DEMO 四、PaddleOCR1.安装2.DEMO 五、PaddleOCR(PyTorch移植版)1.代码整理2.DEMO 六、TrOCR1.安装2.模型下载3.DEMO 七、GOT1.安装2.模型下载3…

TCP\IP标准与OSI标准

TCP/IP 模型和 OSI 模型都是用于描述网络体系结构的模型,但它们的设计理念和层次结构有所不同。TCP/IP 模型更注重实际实现,而 OSI 模型更注重抽象和标准化。 1. OSI 模型 (Open Systems Interconnection Model) OSI 模型是一个七层模型,从…

UFS 3.1架构简介

整个UFS协议栈可以分为三层:应用层(UFS Application Layer(UAP)),传输层(UFS Transport Layer(UTP)),链路层(UIC InterConnect Layer(UIC))。应用层发出SCSI命令(UFS没有自己的命令使用的是简化的SCSI命令),在传输层将SCSI分装为UPIU,再经过链路层将命令发送给Devices。下…

vue3实现打字机的效果,可以换行

之前看了很多文章,效果是实现了,就是没有自动换行的效果,参考了文章写了一个,先上个效果图,卡顿是因为模仿了卡顿的效果,还是很丝滑的 目录 效果图:代码如下 效果图: ![请添加图片描述](https://i-blog.csdnimg.cn/direct/d8ef33d83dd3441a87d6d033d9e7cafa.gif 代码如下 原…

Vue(16)——Vue3.3新特性

defineOptions 在 Vue 3.3 之前&#xff0c;如果需要在 <script setup> 中设置组件名&#xff0c;通常需要在额外的 <script> 标签中使用 Options API 进行配置。defineOptions 是 Vue 3.3 版本中引入的一个宏&#xff08;macro&#xff09;&#xff0c;它主要用于…

初识Linux以及Linux的基本命令

千呼万唤始出来&#xff0c;Linux系列的文章从今天起开始不定期更新&#xff0c;闲话少叙&#xff0c;我们直接进入正题 初识Linux 这一部分我不打算给大家讲Linux的发展史啥的&#xff0c;直接从系统方面开始介绍 首先&#xff0c;我们平时用win10或win11所看到的桌面以及各…

element ui中当el-dialog需要做全屏时,.fullscreen样式修改问题

element ui 饿了么UI中el-dialog样式修改问题 场景解决方法就是&#xff1a;去掉底部样式中的scoped,然后再进行页面级样式的更改即可。 场景 最近在使用element-ui时&#xff0c;使用到了弹窗组件&#xff1a; element-ui 官网链接地址&#xff1a; element-ui 官网链接地址…

基于springboot+小程序的自习室选座与门禁管理系统(自习室1)(源码+sql脚本+视频导入教程+文档)

&#x1f449;文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1 、功能描述 1、管理员实现了首页、基础数据管理、论坛管理、公告信息管理、用户管理、座位管理等 2、用户实现了在论坛模块通过发帖与评论帖子的方式进行信息讨论&#xff0c;也能对账户进行在线充值…

数据集-目标检测系列-吸烟检测数据集 smoking cigarette >> DataBall

数据集-目标检测系列-吸烟检测数据集 smoking cigarette >> DataBall 数据集-目标检测系列-吸烟检测数据集 &#xff08;smoking cigarette&#xff09; 数据量&#xff1a;1W 数据项目地址&#xff1a; gitcode: https://gitcode.com/DataBall/DataBall-detections-…

双链表的插入删除遍历

双链表的插入操作 双链表的删除操作 双链表的遍历操作

mit6824-01-MapReduce详解

文章目录 MapReduce简述编程模型执行流程执行流程排序保证Combiner函数Master数据结构 容错性Worker故障Master故障 性能提升定制分区函数局部性执行缓慢的worker(slow workers) 常见问题总结回顾参考链接 MapReduce简述 MapReduce是一个在多台机器上并行计算大规模数据的软件架…

netty编程之实现websocket客户端并发送二进制消息

写在前面 源码。 本文看下netty如何实现websocket客户端并发送二进制消息。 ws的server端参考这篇文章。 1&#xff1a;正文 抽象类AbstractWebsocketClient定义了发送二进制数据的方法&#xff1a; public abstract class AbstractWebsocketClient implements Closeable {…

【Immich部署与访问】自托管媒体文件备份服务 Immich 本地化部署与远程访问存储数据

文章目录 前言1.关于Immich2.安装Docker3.本地部署Immich4.Immich体验5.安装cpolar内网穿透6.创建远程链接公网地址7.使用固定公网地址远程访问 前言 本篇文章介绍如何在本地搭建lmmich图片管理软件&#xff0c;并结合cpolar内网穿透实现公网远程访问到局域网内的lmmich&#…