[最佳实践]FRPC公网链接:在家也可以炼实验室的丹了

key word: 内网穿透 公网链接 远程ssh链接 远程frpc 远程桌面 网络隧道

应用场景

我们使用ssh链接实验室的机器的时候,一般在实验室内部使用的同一个局域网连接,一般使用的是192.168.xx.xx的网络,但是如果我们在家里,使用的家里的网络也想连接实验室的机器的话,那么就需要一个tcp的转接服务器才可以。frpc就是这样一个免费的转接服务器,他使用自己的域名,转发tcp或者http请求,使得我们可以链接到实验室内部的机器的指定的端口的程序。


【当然不限于ssh,它只是转发端口的请求,重要的是绑定的端口号。】比如说

  • 在windows上绑定3306端口,那么就可以实现windows的远程桌面程序,在家里就可以远程实验室机器的图形界面…再也不用担心todesk奇葩的网速了
  • 绑定tensorBoard的发射端口6006,那么在家里就可以浏览炼丹的最新进度
  • … 3389

准备工具

OpenFRPC:https://console.openfrp.net/login  这个优点是网速更快,缺点是不稳定,本文以这个举例说明。

还有其他的免费工具,比如花生壳、cpolar、神卓互联等等

构建步骤

注册账号

在OpenFrp 5.0注册,一般需要实名认证

创建隧道

image.png
这里的本地地址填入127.0.0.1,本地端口如果是ssh就用22,如果是远程桌面就是3389,远程端口一般都是随机。

下载登录器程序

这个程序下载到需要转发ssh端口的服务器上
image.png

配置和启用转发程序

本质上启动的时候是: frpc程序 + 一个配置文件 =就可以启动一个隧道,推送指定端口的tcp请求

Windows

  • Windows平台可以下载那个win启动器,这个启动器是包含登录和frpc功能的一个ui式exe程序,下载完毕之后直接安装,然后登录OpenFRPC的账号密码,在程序内部直接启动,frpc隧道就可以了。
  • 当然也可以直接下frpc启动器,对应的是windows系统的那个标签下的下载文件,这个文件本意上是需要用户设置服务程序的。大致步骤其实和Linux机器的差不多。

Linux机器【举例】

  1. 下载程序文件到机器上

image.png
这是我自己的机器上下载好的**/usr/local/bin/frpc_linux_amd64**启动器,注意给定的可以执行权限,chmod 777 frpc_linux_amd64

frps是NetFRPC的启动器,后面跟着是它的配置文件。

  1. 每一隧道需要一个单独的配置文件,文件名可以随意起,我有多个隧道,所以有多个配置文件。

FrpcOpen.ini就是一个隧道的配置文件

  1. 获取配置文件

image.png
image.png
我们需要这里的配置文件,点击复制。

  1. 将这个配置文件中的内容复制进去,假如说你的配置文件是/usr/local/bin/FrpcOpen.ini。那么复制进去就会像这样image.png
  2. 配置服务,可以让它开机启动
    服务就是一个启动脚本,名字可以随意起,但是需要把文件创建在/etc/systemd/system目录下,我的服务是
    /etc/systemd/system/FrpcOpen.service,下面是这个服务文件的内容,注意啊修改里面的启动文件路径和启动配置文件路径
[Unit]
# 服务名称,可自定义
Description = frpc_linux_amd64-server
After = network.target syslog.target
Wants = network.target

[Service]
Type = simple
# 启动frps的命令,需修改为您的frps的安装路径
ExecStart =/usr/local/bin/frpc_linux_amd64 -c /usr/local/bin/FrpcOpen.ini

[Install]
WantedBy = multi-user.target

5.启动隧道服务

sudo systemctl start frpc-ssh.service # 启动服务
sudo systemctl enable frpc-ssh.service  # 让服务随着开机启动
sudo systemctl status frpc-ssh.service # 查看当前的服务状态

看到服务运行正常,启动器的输出无报错。就算是隧道启动成功。不成功,可能你需要回头检查检查哪里出错了。

#服务使用的命令样例
sudo systemctl start frpc-ssh.service #  启动frpc-ssh服务
sudo systemctl enable frpc-ssh.service #设置 frpc-ssh.service为开机启动
sudo systemctl status frpc-ssh.service # 查看服务启动状态和日志
sudo systemctl restart frpc-ssh.service # 重启服务
sudo systemctl stop frpc-ssh.service # 停止服务

设置定时重启

有可能FRPC的服务器会重新启动,就会导致服务断开连接,所以定时重启有一定用处。

sudo crontab -e
# 编辑内容如下, 为每天 4 点重启
0 4 * * * /sbin/reboot
sudo service frpc-ssh restart

使用

找到你刚才启动的隧道,查看这里的链接地址就可以实现ssh远程登录了
image.png
image.png
双击链接,即可复制到地址和端口号。就拿着这个进行远程登陆。
假如你获取到的是ganzho2645.of-7af251.shop:53659,那么ganzho2645.of-7af251.shop就是地址,端口号是53659
此时你打开shell就可以实现远程链接了

#user_name是你目标机器的用户名,
#ganzho2645.of-7af251.shop 远程主机地址
#-p 53659 远程主机地址的端口号
#他会通过远程自动映射到你监听的实际端口
ssh user_name@ganzho2645.of-7af251.shop -p 53659

image.png
输入你目标机器的密码,即完成了ssh链接
image.png

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

seata服务器集群搭建

搭建seata-server-1.3服务器对应SpringBoot2.3.12&#xff0c;springcloud2.2.3 <spring-cloud-alibaba.version>2.2.3.RELEASE</spring-cloud-alibaba.version> 首先你安装了nacos 1解压文件 2修改cong/file.conf 让seata集群信息可以共享&#xff0c;我们应该…

MySQL 表锁问题

MySQL 表锁解决 查看哪些表被锁&#xff0c;字段 In_use 表示有多少线程在使用这张表&#xff0c;字段 name_locked 表示表格是否被锁&#xff0c;0 代表锁定状态 mysql> show OPEN TABLES where In_use > 0; -------------------------------------------------------…

day52(vueJS)json-server模拟数据

json-server介绍&#xff1a;&#xff1a;&#xff1a;JSON Server 是一个用于快速搭建 REST API 的工具&#xff0c;它可以帮助我们在开发过程中快速模拟 一个后端 API 服务器&#xff0c;方便前端开发人员进行接口调试和开发。使用 JSON Server&#xff0c;你可以通过创建一个…

基于springboot的网上商城系统设计与实现(程序+数据库+文档)

** &#x1f345;点赞收藏关注 → 私信领取本源代码、数据库&#x1f345; 本人在Java毕业设计领域有多年的经验&#xff0c;陆续会更新更多优质的Java实战项目&#xff0c;希望你能有所收获&#xff0c;少走一些弯路。&#x1f345;关注我不迷路&#x1f345;** 目录 一、研…

【QT】重载的信号槽/槽函数做lambda表达式

重载的信号槽 函数指针&#xff1a; int fun(int a,long b) int (*funp)(int, long) fun; 实现回调函数就需要函数指针 信号重载 派生类槽函数发送两个信号 派生类给父类发两个信号 void (SubWidget::*mysigsub)() &SubWidget::sigSub;connect(&subw,mysigsub,t…

农产品采购平台技术解析:Java+SpringBoot+Vue+MySQL

✍✍计算机毕业编程指导师 ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java、…

如何在2.2.1版Aduino IDE中开发ESP32

ESP32芯片集成了WIFI和蓝牙&#xff0c;而且关于生态也很不错&#xff0c;越来越多的学习者和开发者选择此类芯片&#xff0c;而不像用keil开发STM32或者51一样&#xff0c;ESP32虽然也有官方的ESP32-IDF开发软甲&#xff0c;但是经过我个人的实操体验&#xff0c;不适合小白或…

2025汤家凤考研数学,基础视频课程+百度网盘+PDF真题讲解

平时大家都半开玩笑地讲&#xff1a;我数学想要考150分&#xff01;那索性今天这一期&#xff0c;今天认真和大家聊一下&#xff1a; 想考到考研数学150分&#xff0c;应该如何准备&#xff1f; 如果还有小伙伴不知道在哪看汤神的ke&#xff0c;可以看一下以下 2025汤神全程…

力扣543. 二叉树的直径

Problem: 543. 二叉树的直径 文章目录 题目描述思路复杂度Code 题目描述 思路 1.最大直径 左子树的最大深度 右子树的最大深度&#xff1b; 2.定义一个变量maxDiameter记录最大直径&#xff0c;并编写一个递归函数maxDepth&#xff0c;利用树的后序遍历每次递归求取leftMax&a…

怎样压缩图片大小到kb?超实用技巧!

怎样压缩图片大小到kb&#xff1f;在互联网时代&#xff0c;图片已成为我们日常生活中不可或缺的一部分。然而&#xff0c;随着图片分辨率和质量的提升&#xff0c;它们的文件大小也在不断增加&#xff0c;这不仅占用了大量的存储空间&#xff0c;还可能导致网页加载速度变慢。…

Linux中给复杂命令起别名

目录 1 前言 2 操作步骤 2.1 打开.bashrc 2.2 编辑.bashrc-添加别名 2.3 使别名生效 1 前言 在linux中有些指令会比较长&#xff0c;为了便捷的使用它们&#xff0c;我们就可以采取起别名的方式&#xff0c;具体操作如下。 2 操作步骤 2.1 打开.bashrc 输入如下指令&a…

探索Java中的函数式接口与Streams API的高级用法

引言 在Java中&#xff0c;函数式编程已经不是什么新鲜事物了。从Java 8开始&#xff0c;函数式编程的概念被引入&#xff0c;给我们带来了全新的编程范式。为什么这么多年过去了&#xff0c;咱们还在讨论它&#xff1f;因为&#xff0c;无论是对于老手还是新手程序员来说&…

web前端之uniApp实现选择时间功能

MENU 1、孙子组件1.1、html部分1.2、JavaScript部分1.3、css部分 2、子组件2.1、html部分2.2、JavaScript部分2.3、css部分 3、父组件3.1、html部分3.2、JavaScript部分 4、效果图 1、孙子组件 1.1、html部分 <template><view><checkbox-group change"ch…

如何使用 ArcGIS Pro 统计四川省各市道路长度

在某些时候&#xff0c;我们需要进行分区统计&#xff0c;如果挨个裁剪数据再统计&#xff0c;不仅步骤繁琐、耗时&#xff0c;还会产生一些多余的数据&#xff0c;这里教大家如何在不裁剪数据的情况下统计四川各市的道路长度&#xff0c;希望能对你有所帮助。 数据来源 教程…

【目标检测】1. 目标检测概述

目标检测(Object Detection)实质上上多目标的定位,即在一个图片中定位多个目标物体&#xff0c;包括分类和定位&#xff0c;也就是多个目标分别在哪里?分别属于那个类别? 图像分类常用算法: VGG GoogleNet ResNet 目标检测常用算法&#xff1a; …

It is also possible that a host key has just been changed

问题&#xff1a;ssh失败&#xff0c;提示如上图 分析: ssh的key存在上图里的路径里。 解决&#xff1a;win10删这个文件C:\Users\admin\.ssh\known_hosts , linux删这个文件.ssh\known_hosts ,或者删除这个文件里的制定ip的那一行&#xff0c;例如“106.1.1.22 ecdsa-sha2-…

2.13计算机工作过程

2.三个级别的语言 1)机器语言。又称二进制代码语言&#xff0c;需要编程人员记忆每条指令的二进制编码。机器语言是计算机唯一可以直接识别和执行的语言。 2)汇编语言。汇编语言用英文单词或其缩写代替二进制的指令代码&#xff0c;更容易为人们记忆和理解。使用汇编语言编辑的…

Redis集群(哨兵集群)

一.Sentinel作用和原理: 1.作用 监控:Sentinel会不断监控master和slave是否按预期工作. 自动故障恢复:如果master故障,Sentinel会将一个slave提升为master。当故障实例恢复后也会以新的master为主。 通知&#xff1a;Sentinel充当redis客户端的服务发现来源,当集群发生故障…

uniapp模仿下拉框实现文字联想功能 - uniapp输入联想(官方样式-附源码)

一、效果 废话不多说&#xff0c;上效果图&#xff1a; 在下方的&#xff1a; 在上方的&#xff1a; 二、源码 一般是个输入框&#xff0c;输入关键词&#xff0c;下拉一个搜索列表。 ElementUI有提供<el-autocomplete>&#xff0c;但uniapp官网没提供这么细&#x…

python基于django的药品进销存管理系统elsb2

本系统是通过面向对象的python语言搭建系统框架&#xff0c;通过关系型数据库MySQL存储数据。使用django框架进行药店药品的信息管理&#xff0c;用户只需要通过浏览器访问系统即可获取药店药品信息&#xff0c;并可以在线管理&#xff0c;实现了信息的科学管理与查询统计。本文…