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

news2024/11/15 15:51:48

需求:

  • 我有一台内网可以通过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.coloradmin.cn/o/2159374.html

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

相关文章

一看就会!PS2024下载安装教程详解

PS2024下载方法: PS2024安装教程: 1、右击【PS2024.zip】,选择【解压到PS2024】 2、右击【Set-up.exe】,选择【以管理员身份运行】 3、点击右下角灰色的小文件夹图标,选择【更改位置】 4、选择安装路径后,…

【每日刷题】Day130

【每日刷题】Day130 🥕个人主页:开敲🍉 🔥所属专栏:每日刷题🍍 🌼文章目录🌼 1. 144. 二叉树的前序遍历 - 力扣(LeetCode) 2. 94. 二叉树的中序遍历 - 力扣…

注册安全分析报告:闪送

前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 暴力破解密码,造成用户信息泄露短信盗刷的安全问题,影响业务及导致用户投诉带来经济损失,尤其是后付费客户,风险巨大,造成亏损无底洞…

C#测试调用Ghostscript.NET浏览PDF文件

Ghostscript.NET是针对Ghostscript的C#封装库,支持解析PostScript语言、操作PDF文件等。使用Ghostscript.NET的GhostscriptViewer 模块可以以图片形式查看PDF文档。本文学习并测试调用Ghostscript.NET模块打开及浏览PDF文件的基本用法。   Ghostscript.NET目前主要…

.NET 6.0 WebAPI 使用JWT生成Token的验证授权

1.引入相关程序包JwtBearer注意版本: 2.配置文件appsettings.json写相关配置参数(也可不写,写在程序里面,数据库读取也是一样的) , //JWT加密"JWTToken": {"SecretKey": "jsaduwqe6asdjewejdue7dfmsdfu0sdfmwmsd8wfsd6",…

洛谷-P3916 图的遍历

题目描述 给出 N 个点,M 条边的有向图,对于每个点 v,求A(v) 表示从点 v 出发,能到达编号最大的点。 思路 既然是要找到最大的点,那么我从最大的点开始DFS是否可以? 于是可以反向建图,然后从最…

HTML图片标记(四)配图详解

目录 1.HTML图片的基础语法 2.设置图片大小 3.改变图片边距 4.图片对齐方式 1.HTML图片的基础语法 <img src"图片路径"> 2.设置图片大小 <img src"图片路径" width"" length""> 3.改变图片边距 <img src"…

Python 二次开发金橙子打印软件:开启高效打印新旅程

目录 一、准备工作&#xff1a;搭建系统环境 二、二次开发流程详解 结合一个实例来讲解如何进行二次开发。 三、Python 二次开发关键要素 &#xff08;一&#xff09;源码示例与解读 &#xff08;二&#xff09;二次开发文档指引 四、问题汇总与解决方案 &#xff08;一…

【HTML5】html5开篇基础(2)

1.❤️❤️前言~&#x1f973;&#x1f389;&#x1f389;&#x1f389; Hello, Hello~ 亲爱的朋友们&#x1f44b;&#x1f44b;&#xff0c;这里是E绵绵呀✍️✍️。 如果你喜欢这篇文章&#xff0c;请别吝啬你的点赞❤️❤️和收藏&#x1f4d6;&#x1f4d6;。如果你对我的…

Spring Boot 学习之路 -- 配置项目

前言 最近因为业务需要&#xff0c;被拉去研究后端的项目&#xff0c;代码基于 Spring Boot&#xff0c;对我来说完全小白&#xff0c;需要重新学习研究…出于个人习惯&#xff0c;会以 Blog 文章的方式做一些记录&#xff0c;文章内容基本来源于「 Spring Boot 从入门到精通&…

【一起学NLP】Chapter2-学习神经网络

目录 学习神经网络损失函数Tip:One-hot向量导数与梯度Tip:严格地说链式法则计算图反向传播其他典型的运算结点乘法结点分支节点Repeat节点Sum节点MatMul节点 Tip:浅拷贝和深拷贝的差异梯度的推导和反向传播的实现Sigmoid层Affine层Softmax with Loss层 权重的更新——随机梯度下…

[PICO VR]Unity如何往PICO VR眼镜里写持久化数据txt/json文本

前言 最近在用PICO VR做用户实验&#xff0c;需要将用户实验的数据记录到PICO头盔的存储空间里&#xff0c;记录一下整个过程 流程 1.开启写入权限 首先开启写入权限&#xff1a;Unity->Edit->Player->安卓小机器人->Other Settings->Configuration->Wri…

大数据毕业设计选题推荐-网络电视剧收视率分析系统-Hive-Hadoop-Spark

✨作者主页&#xff1a;IT毕设梦工厂✨ 个人简介&#xff1a;曾从事计算机专业培训教学&#xff0c;擅长Java、Python、PHP、.NET、Node.js、GO、微信小程序、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇…

数据库主备副本物理复制和逻辑复制对比

数据库主从节点的数据一致性是保证数据库高可用的基本要求&#xff0c;各个数据库在实现方式上也各有异同。而主备复制的方式无外乎两种&#xff1a;物理复制和逻辑复制&#xff0c;本文简要对比下两种方式的不同&#xff0c;并分析下国产数据库是如何实现的。 1、数据库复制基…

中国中车在线测评考的啥?大易题库如何通过|附真题型国企题库通关秘籍和攻略

言语理解题目&#xff1a;这类题目主要考察你的语言理解和表达能力&#xff0c;例如&#xff0c;给你一个段落&#xff0c;让你根据段落内容选择最合适的答案。要点是快速捕捉文段中的关键信息&#xff0c;理解作者的意图和观点 逻辑推理题目&#xff1a;这类题目需要你从一组…

Java面试篇基础部分- 锁详解

可重入锁 可重入锁也叫作递归锁,是指在同一个线程中,在外层函数获取到该锁之后,内存的递归函数还可以获取到该锁。在Java语言环境下,ReentrantLock和Synchroinzed都是可重入锁的代表。 公平锁与非公平锁 公平锁(Fair Lock)是指在分配锁之前检查是否有线程在排队等待获取…

CICD从无到会

一 CICD是什么 CI/CD 是指持续集成&#xff08;Continuous Integration&#xff09;和持续部署&#xff08;Continuous Deployment&#xff09;或持续交付&#xff08;Continuous Delivery&#xff09; 1.1 持续集成&#xff08;Continuous Integration&#xff09; 持续集成是…

【每天学个新注解】Day 4 Lombok注解简解(三)—@NonNull

我们在之前的三天学了Lombok常用的注解&#xff1a; 【每天学个新注解】Day 1 Lombok注解简解&#xff08;〇&#xff09;—Getter、Setter、ToString、EqualsAndHashCode、Constructor 【每天学个新注解】Day 2 Lombok注解简解&#xff08;一&#xff09;—Data、Build、Value…

【威领,德新,中达安】9.23复盘

威领这次的底部是4个月 所以这种跳空高开&#xff0c;远离5日均线的&#xff0c;如果不是近期的利好板块&#xff0c;那么第二天可能要回调5日均线。所以按照我的收益准则&#xff0c;吃一个板可以出一半了。 到顶部十字剩下一半也出掉了。 如果做长期&#xff0c;我依旧认为威…

git学习报告

文章目录 git学习报告如何配置vscode终端安装PowerShell安装 Microsoft.Powershell.Preview使用 git的使用关于团队合作 git指令本地命令&#xff1a;云端指令 git学习报告 如何配置vscode 安装powershell调教window终端&#xff0c;使其像Linux一样&#xff0c;通过Linux命令…