使用frp实现内网穿透

2023-05-16

使用frp实现内网穿透


引言

一打五师兄走之前留了一块树莓派给我,暑假闲来无事拿出来玩玩

如果每次都连接显示屏和键盘使用有点麻烦而且低级

正常笔记本和树莓派都连着实验室的WIFI,网段一样,是可以ssh远程登录的

但我突然想到在家里连着家里的WIFI能不能也登录进树莓派呢

问题有了,开始干吧

内网穿透初步

正常来说两台Linux设备只有在同一局域网下才可以进行互相的ssh远程登录

那么如果不在一个网段下,比方说一台在家里连着家里的WIFI,一台在学校连着实验室的WIFI,这种情况要想实现ssh远程登录则需要用到内网穿透

请添加图片描述

这就需要用到一个开源框架frp

https://github.com/fatedier/frp

在这里下载与主机架构对应的版本

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

查看安装的Linux架构/版本

cat /proc/version
prejudice@prejudice-VirtualBox:~$ cat /proc/version
Linux version 5.4.0-122-generic (buildd@lcy02-amd64-035) (gcc version 7.5.0 (Ubuntu 7.5.0-3ubuntu1~18.04)) #138~18.04.1-Ubuntu SMP Fri Jun 24 14:14:03 UTC 2022

[lighthouse@VM-4-11-centos ~]$ cat /proc/version 
Linux version 4.18.0-348.7.1.el8_5.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 8.5.0 20210514 (Red Hat 8.5.0-4) (GCC)) #1 SMP Wed Dec 22 13:25:12 UTC 2021

学习视频

其实B站搜frp就有很多

如何优雅地访问远程主机?SSH与frp内网穿透配置教程

frp安装使用教程

学习文档

官网给了教程,实在是很贴心

https://gofrp.org/docs/

通过 SSH 访问内网机器

运行下述命令的时候

ssh -oPort=6000 test@x.x.x.x

中间-oPort=6000实际上可以简化为-p 6000

这里的端口是公网用于listen的端口,frp 会将请求 x.x.x.x:6000 的流量转发到内网机器的 22 端口,因此这里x.x.x.x也是公网IP

服务端有两个端口,一个负责接收客户端的连接,一个负责监听与流量转发,有点类似于TCP通信connectfdlistenfd ,实际上也是基于TCP通信实现

因此需要在云服务器上打开两个端口的防火墙

请添加图片描述

简单实操

云服务器端

运行服务端程序

[lighthouse@VM-4-11-centos frp_0.44.0_linux_amd64]$ ./frps -c ./frps.ini 
2022/07/21 21:18:23 [I] [root.go:209] frps uses config file: ./frps.ini
2022/07/21 21:18:23 [I] [service.go:194] frps tcp listen on 0.0.0.0:7000
2022/07/21 21:18:23 [I] [root.go:218] frps started successfully

笔记本端运行./frpc -c ./frpc.ini 后,新建个登录窗口

[lighthouse@VM-4-11-centos /]$ ssh -p 6000 redwall@1.116.137.21
redwall@1.116.137.21's password: 
Welcome to Ubuntu 18.04.6 LTS (GNU/Linux 5.4.0-122-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

0 updates can be applied immediately.

New release '20.04.4 LTS' available.
Run 'do-release-upgrade' to upgrade to it.

Your Hardware Enablement Stack (HWE) is supported until April 2023.
Last login: Thu Jul 21 17:05:31 2022 from 192.168.1.137
redwall@redwall-G3-3500:~$

看到已经成功远程登录,可以进行相关操作了

redwall@redwall-G3-3500:~$ ls
catkin_ws  CUDA_Samples  Test  公共的  模板  视频  图片  文档  下载  音乐  桌面
redwall@redwall-G3-3500:~$ pwd
/home/redwall

注意到客户端连接时会提示

2022/07/21 21:30:39 [I] [service.go:450] [f4703ace8f5e3c8f] client login info: ip [114.213.236.99:47292] version [0.44.0] hostname [] os [linux] arch [amd64]
2022/07/21 21:30:39 [I] [tcp.go:64] [f4703ace8f5e3c8f] [ssh] tcp proxy listen port [6000]
2022/07/21 21:30:39 [I] [control.go:465] [f4703ace8f5e3c8f] new proxy [ssh] type [tcp] success

有远程登录时会提示

2022/07/21 21:31:01 [I] [proxy.go:179] [f4703ace8f5e3c8f] [ssh] get a user connection [1.116.137.21:52368]

退出ssh远程登录时会提示

2022/07/21 21:28:31 [I] [control.go:307] [a1a79c2d05ad0fae] control writer is closing
2022/07/21 21:28:31 [I] [proxy.go:88] [a1a79c2d05ad0fae] [ssh] proxy closing
2022/07/21 21:28:31 [W] [proxy.go:176] [a1a79c2d05ad0fae] [ssh] listener is closed: accept tcp [::]:6000: use of closed network connection
2022/07/21 21:28:31 [I] [control.go:396] [a1a79c2d05ad0fae] client exit success

还是非常人性化的

笔记本端

打开终端查看网络信息

redwall@redwall-G3-3500:~$ ifconfig 
enp59s0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether 8c:47:be:3b:dd:d2  txqueuelen 1000  (以太网)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (本地环回)
        RX packets 1351  bytes 123182 (123.1 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1351  bytes 123182 (123.1 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wlp0s20f3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.137  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::5348:35ba:d99a:6366  prefixlen 64  scopeid 0x20<link>
        ether ac:12:03:c9:3a:01  txqueuelen 1000  (以太网)
        RX packets 11079  bytes 12274960 (12.2 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 3983  bytes 509254 (509.2 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

简单配置frpc.ini

[common]
server_addr = 1.116.137.21
server_port = 7000

[ssh]
type = tcp
local_ip = 192.168.1.137
local_port = 22
remote_port = 6000

打开一个终端运行

redwall@redwall-G3-3500:~/Test/frp_0.44.0_linux_amd64$ ./frpc -c ./frpc.ini 
2022/07/21 21:19:06 [I] [service.go:349] [a1a79c2d05ad0fae] login to server success, get run id [a1a79c2d05ad0fae], server udp port [0]
2022/07/21 21:19:06 [I] [proxy_manager.go:144] [a1a79c2d05ad0fae] proxy added: [ssh]
2022/07/21 21:19:06 [I] [control.go:181] [a1a79c2d05ad0fae] [ssh] start proxy success

在树莓派配置frp框架

由于树莓派只有2GB的RAM,因此安装的是Ubuntu 18.04 Bionic Beaver

一开始cat /proc/version查看是arm64,因此就在frp Release中下载的arm64版本

实际中会报错cannot execute binary file

linux下解决:cannot execute binary file

原因是程序所需架构与系统不匹配,想起来当时安装的是32位的server,所以换了Release下的arm版本,成功运行

SSH时出现WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!

问题解决——SSH时出现WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!

WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
翻译过来就是
警告:远程主机标识已更改!

此报错是由于远程的主机的公钥发生了变化导致的

ssh服务是通过公钥和私钥来进行连接的,它会把每个曾经访问过计算机或服务器的公钥(public key),记录在~/.ssh/known_hosts 中,当下次访问曾经访问过的计算机或服务器时,ssh就会核对公钥,如果和上次记录的不同,OpenSSH会发出警告

直接echo >”~/.ssh/known_hosts”可以解决该问题

SSH Failed Permission Denied

服务器无法登录?教你如何解决 SSH Failed Permission Denied

这里主要是与sshd_config的配置有关

修改云服务器上的sshd_config

sudo cd /etc/ssh/

sudo cp sshd_config sshd_config_init

sudo vim sshd_config
PermitRootLogin yes

PasswordAuthentication yes

ChallengeResponseAuthentication no

对树莓派上的sshd_config进行同样的修改,不过多一个内容

AddressFamily any

成功解决问题

Linux域名IP映射

Linux域名IP映射

进行域名IP映射是为了便于连接时的操作,不然还需要记住一长串IP地址,太麻烦了

sudo vim /etc/hosts

# CentOS
x.x.x.x centos

# Raspberry Pi
x.x.x.x raspberry

设置frp开机自启

frp设置开机自启

创建service服务文件

cd /etc/systemd/system/

sudo touch frpc.service

sudo vim frpc.service

文件内容如下

[Unit]
Description=Frp Client
After=network.target
Wants=network.target

[Service]
Type=simple
User=ubuntu
Restart=on-failure
RestartSec=5
ExecStart=/home/ubuntu/frpc_client -c /home/ubuntu/frpc.ini

[Install]
WantedBy=multi-user.target

这里User是你的用户名,ExecStart是执行文件的地址,更改这两处即可

刷新服务列表

systemctl daemon-reload

设置开机自启

systemctl enable frpc.service

实际效果

首先在云服务器上运行

[root@VM-4-11-centos frp_server]# ./frps -c ./frps.ini 
2022/07/22 15:45:25 [I] [root.go:209] frps uses config file: ./frps.ini
2022/07/22 15:45:25 [I] [service.go:194] frps tcp listen on 0.0.0.0:7000
2022/07/22 15:45:25 [I] [root.go:218] frps started successfully

树莓派通电开机后,云服务器终端显示

2022/07/22 15:46:02 [I] [service.go:450] [192daaa5a29e5228] client login info: ip [114.213.236.99:54242] version [0.44.0] hostname [] os [linux] arch [arm]
2022/07/22 15:46:02 [I] [tcp.go:64] [192daaa5a29e5228] [ssh] tcp proxy listen port [6000]
2022/07/22 15:46:02 [I] [control.go:465] [192daaa5a29e5228] new proxy [ssh] type [tcp] success

可以看到树莓派已经自动连接到云服务器

打开笔记本和手机热点,笔记本连接手机热点,使得笔记本和树莓派连接不同的WIFI

在笔记本终端运行

redwall@redwall-G3-3500:~/frp_client$ ./frpc -c ./frpc.ini 
2022/07/22 15:46:31 [I] [service.go:349] [41273076a0105bd8] login to server success, get run id [41273076a0105bd8], server udp port [0]
2022/07/22 15:46:31 [I] [proxy_manager.go:144] [41273076a0105bd8] proxy added: [ssh]

此时云服务器终端提示

2022/07/22 15:46:31 [I] [service.go:450] [41273076a0105bd8] client login info: ip [39.144.38.10:42468] version [0.44.0] hostname [] os [linux] arch [amd64]

说明笔记本也连上了云服务器,并且明显可以看出笔记本和树莓派连着不同的WIFI

这时在笔记本新建一个终端,运行

redwall@redwall-G3-3500:~$ ssh -p 6000 ubuntu@centos 
ubuntu@centos's password: 
Welcome to Ubuntu 18.04.6 LTS (GNU/Linux 5.4.0-1066-raspi armv7l)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

  System information as of Fri Jul 22 07:47:21 UTC 2022

  System load:  1.18               Processes:            138
  Usage of /:   37.9% of 14.28GB   Users logged in:      0
  Memory usage: 5%                 IP address for wlan0: 192.168.1.111
  Swap usage:   0%

 * Super-optimized for small spaces - read how we shrank the memory
   footprint of MicroK8s to make it the smallest full K8s around.

   https://ubuntu.com/blog/microk8s-memory-optimisation

0 updates can be applied immediately.

New release '20.04.4 LTS' available.
Run 'do-release-upgrade' to upgrade to it.

Your Hardware Enablement Stack (HWE) is supported until April 2023.

Last login: Fri Jul 22 07:40:35 2022
ubuntu@ubuntu:~$ ls
catkin_ws  frp_client
ubuntu@ubuntu:~$ pwd
/home/ubuntu
ubuntu@ubuntu:~$

可以看到已经成功实现在不同网段下Linux主机间的ssh远程登录

后面就可以进行愉快的编程开发啦

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用frp实现内网穿透 的相关文章

  • 使用PMW3901和VL53L1X 实现室内定点悬停

    使用PMW3901和VL53L1X 实现室内定点悬停 使用PMW3901 光流传感器进行水平方向定位Pixhawk连接PMW3901传感器PX4源代码加入PMW3901驱动后重新编译QGroundControl中的配置 使用气压计和VL53
  • 使用 QGroundControl 地面站更新 PixHawk飞控的Bootloader

    安装最新版本的PX4固件 启动QGroundControl并且使用USB连接到Pixhawk飞控 选择 Q icon gt Vehicle Setup gt Firmware sidebar 打开固件设置 安装最新版本的PX4固件 更新Bo
  • 自制DIY 机器狗 完全教程 - MIT猎豹Cheetah

    自制DIY 机器狗 完全教程 MIT猎豹Cheetah 背景结构设计模块化关节电机性能考虑关节结构 四足平台设计腿部设计身体设计脚部设计 硬件设计关节驱动器通信总线板供电系统 控制系统人工智能 背景 3年前 xff0c MIT开源了世界上跑
  • centos安装wxWidgets,erlang,RabbitMq

    centos安装wxWidgets erlang RabbitMq 默认已经安装了java环境 而安装RabbitMq需要安装erlang xff0c 安装erlang又需要安装wxWidgets 安装wxWidgets 更新系统 yum
  • 2.rabbitmq概述和helloworld

    rabbitmq概述 rabbitmq中的几个概念 BROKER 接收和分发消息的应用 xff0c RabbitMQ Server 就是 Message Broker Virtual Host 出于多租户和安全因素设计的 xff0c 把 A
  • 3.rabbitmq轮询和不公平分发

    rabbitmq轮询和不公平分发 rabbitmq轮询分发 rabbitmq默认是使用轮询来分发消息的 测试代码如下所示 生产者代码 span class token comment 生产者 task rabbitmq 轮询演示 span
  • 4.rabbitmq消息应答

    rabbitmq消息应答 概述 消息应答就是消费者在收到消息的时候 xff0c 在它接收到消息并处理完毕之后 xff0c 告诉rabbitmq它已经处理完了 xff0c rabbitmq可以删除这个消息了 消息应答的方式 channel b
  • 5.rabbitmq持久化

    rabbitmq持久化 队列的持久化 队列的持久化需要我们在声明的时候指定其持久化 使用durable 61 true来持久化队列 span class token comment 队列的持久化 span span class token
  • 关于双控阵列的实现原理的讨论

    xfeff xfeff http bbs chinaunix net forum viewthread tid 4140392 html 对于一个支持FC SAN的双控存储阵列 xff0c 对外号称active active xff0c 实
  • 6.rabbitmq中exchange的几种形式

    rabbitmq中exchange的几种形式 RabbitMQ 消息传递模型的核心思想是 生产者生产的消息从不会直接发送到队列 实际上 xff0c 通常生产 者甚至都不知道这些消息传递传递到了哪些队列中 相反 xff0c 生产者只能将消息发
  • 7.rabbitmq死信和死信队列

    rabbitmq死信和死信队列 概述 先从概念解释上搞清楚这个定义 xff0c 死信 xff0c 顾名思义就是无法被消费的消息 xff0c 字面意思可以这样理 解 xff0c 一般来说 xff0c producer 将消息投递到 broke
  • 8.rabbitmq发布确认

    rabbitmq发布确认 生产者将信道设置成 confirm 模式 xff0c 一旦信道进入 confirm 模式 xff0c 所有在该信道上面发布的 消息都将会被指派一个唯一的 ID 从 1 开始 xff0c 一旦消息被投递到所有匹配的队
  • 9.延迟队列

    延迟队列 延迟队列的概念 延时队列 队列内部是有序的 xff0c 最重要的特性就体现在它的延时属性上 xff0c 延时队列中的元素是希望 在指定时间到了以后或之前取出和处理 xff0c 简单来说 xff0c 延时队列就是用来存放需要在指定时
  • 10.回退消息

    rabbitmq回退消息 mandatory参数 在仅开启了生产者确认机制的情况下 xff0c 交换机接收到消息后 xff0c 会直接给消息生产者发送确认消息 xff0c 如果发现该消息不可路由 xff0c 那么消息会被直接丢弃 xff0c
  • 11.备份交换机

    备份交换机 概念 当交换机收到一条不可路由消息时 xff0c 将会把这条消息转发到备份交换机中 xff0c 由备份交换机来进行转发和处理 xff0c 通常备份交换机的类型为fanout xff0c 这样就能把所有消息都投递到与其绑定的队列中
  • 12.优先级队列和惰性队列

    优先级队列 如何添加优先级 选择Maximum priority xff0c 指定优先级的数值 xff0c 设定范围为0 255 xff0c 如果值为10 xff0c 那么就是0 10 xff0c 最大不能超过255 代码形式 span c
  • 13.rabbitmq集群搭建

    rabbitmq集群搭建和镜像队列 集群搭建 准备三台服务器 172 16 140 133 Jan172 16 140 132 Feb172 16 140 133 Mar 修改3台机器的hosts文件 span class token fu
  • 14.haproxy+keepalived负载均衡和高可用

    haproxy 43 keepalived负载均衡和高可用 概述 多个rabbitmq服务形成集群 xff0c 由haproxy来做负载均衡 xff0c haproxy会暴露出来一个端口 xff0c 客户端可以通过haproxy所在的服务器
  • 15.federation

    federation和shovel federation exchange 问题的由来 xff1a 城市A有rabbitmqA xff0c 城市B有rabbitmqB xff0c 当城市B的应用要发消息到exchangeA的时候 xff0c
  • vue瀑布流插件vue-waterfall-easy 2.x

    不知道大家都是怎么用瀑布流的 xff0c 一开始尝试用flex布局失败 xff0c 后面找到了这个组件 xff0c 还是挺好用的 xff0c 记录一下 首先是用npm安装npm install vue waterfall easy save

随机推荐

  • 1.JUL

    JUL JUL全称Java util Logging是java原生的日志框架 xff0c 使用时不需要另外引用第三方类库 xff0c 相对其他日志框架使用方便 xff0c 学习简单 xff0c 能够在小型应用中灵活使用 架构介绍 Logge
  • Log4j2

    Log4j2 目前市面上最主流的日志门面就是SLF4J xff0c 虽然Log4j2也是日志门面 xff0c 因为它的日志实现功能非常强 大 xff0c 性能优越 所以大家一般还是将Log4j2看作是日志的实现 xff0c Slf4j 43
  • LOG4J

    LOG4J Log4j是Apache下的一款开源的日志框架 xff0c 通过在项目中使用 Log4J xff0c 我们可以控制日志信息输出到控 制台 文件 甚至是数据库中 我们可以控制每一条日志的输出格式 xff0c 通过定义日志的输出级别
  • Slf4j(门面)

    Slf4j 简单日志门面 Simple Logging Facade For Java SLF4J主要是为了给Java日志访问提供一套标准 规范 的API框架 xff0c 其主要意义在于提供接口 xff0c 具体的实现可以交由其他日志框架
  • Logback

    Logback Logback是由log4j创始人设计的另一个开源日志组件 xff0c 性能比log4j要好 官方网站 https logback qos ch index html Logback主要分为三个模块 logback core
  • 嵌入式-C语言常见面试/笔试题

    1 关键字类型题 常见的关键字有 sizeof static const volatile 1 sizeof xff1a 通常与strlen做比较不同 例1 xff1a char str 61 Hello char p 61 str int
  • node.js的http模块输出request参数

    xff08 只作为本人自己记录所用 xff0c 参考需谨慎 xff09 ServerResponse 服务响应 domain null 域名 events finish Function resOnFinish 项目 eventsCount
  • ATI F/T Gamma sensor( 力和力矩传感器 ) 开箱测评 + 使用说明

    型号和序列号等参数如下 xff1a Description Six Axis Force Torque Sensor Manufacturer ATI Industrial Automation Serial Number FT29352
  • 阿克曼转向原理解析

    汽车的转向过程就是阿克曼转向 其也是移动机器人的一种运动模式之一 阿克曼基本原理 xff1a 汽车在行驶过程中 xff08 直线和转弯时候 xff09 xff0c 每个车轮的运动估计必须符合他的自然运动轨迹 xff0c 从而保证轮胎与地面始
  • 通过ROS控制真实机械臂(18) --- 构建 octocmap 用于碰撞检测和避障

    师兄和同门在做SLAM的时候 xff0c 经常会用到的 octomap xff0c 也就是八叉树地图 octomap相比于点云地图来说大大减小了地图的存储空间 既然octomap可以用于导航和避障 xff0c 那么自然也可以导入moveit
  • 【实用版】卡尔曼滤波及其扩展方法的区别与定位系统中的应用

    卡尔曼滤波及其扩展方法的区别与定位系统中的应用 卡尔曼滤波卡尔曼滤波的扩展EKFSPKFEnKF 定位系统中的应用 源自于学校课题 xff0c 主要用卡尔曼滤波KF及其扩展方法 xff08 包括扩展卡尔曼滤波EKF Sigma点卡尔曼滤波S
  • CP2102 USB to UART Bridge Controller 驱动安装(windows or Ubuntu)

    CP2102是一款USB转TTL电平的USB转串口芯片 xff0c 使用时发现诸多小网站上的驱动不是病毒就是安装后无效 xff0c 经同事推荐去官网下载后成功连接 官网地址 xff1a https www silabs com produc
  • 解决罗技GHUB 安装 一直初始化 下载不了问题

    罗技的GHUB在安装时一直处于初始化状态 xff0c 可以通过修改时间解决 原地址 罗技 GHub 解决初始化无法安装教程 侵删
  • 基于Cartographer的建图与导航

    一 RoboSense 16线雷达驱动安装 2 二 Cartographer的安装 2 三 配置文件结构说明 4 四 配置文件详解 4 2D lua文件的配置 5 2D launch文件的配置 6 2D pure location lua文
  • Ubuntu18.04安装autoware.ai

    前言 Autoware AI是世界上第一个用于自动驾驶技术的 All in One 开源软件 xff0c 关于它的介绍就不再赘述了 xff0c 感兴趣的可以去看一下知乎文章 xff0c 这里主要说明一下autoware ai的安装配置 之前
  • Baxter工作站建立及简单使用

    1 硬件 1个 Baxter Research Robot1台PC机或笔记本 xff0c 安装好Ubuntu系统 xff08 推荐Ubuntu16 04安装ROS kinetic xff09 1个无线路由器 xff08 千兆网口 xff09
  • selenium网页自动登录、打卡(二)

    文章目录 前言一 Python 43 Selenium二 通信环境 xff08 服务器 客户端 xff09 1 selenium借助cookie网页登录csdn2 私信发送消息流程3 将新增的逻辑融入原本的程序 前言 前面做了一个自动打卡的
  • 解决浏览器“由你的组织管理”或“由贵单位管理”

    寒假在家使用自己电脑时 xff0c 浏览器出现意外关闭 xff0c 一次以为没什么 xff0c 这两天出现好几次 xff0c 时不时地来一下 xff0c 太搞心态了 xff0c 必须给他解决了 一番检查后 xff0c 是浏览器自动安装了一款
  • Ubuntu18.04屏幕分辨率问题

    Ubuntu18 04屏幕分辨率问题 起因 本来昨天还好好的 xff0c 过了一夜 xff0c 就变了 xff0c 像极了咳咳 自行脑补 redwallbot 2小车上固定的屏幕 xff0c 屏幕分辨率本来应该是1920x1080的 xff
  • 使用frp实现内网穿透

    使用frp实现内网穿透 引言 一打五师兄走之前留了一块树莓派给我 xff0c 暑假闲来无事拿出来玩玩 如果每次都连接显示屏和键盘使用有点麻烦而且低级 正常笔记本和树莓派都连着实验室的WIFI xff0c 网段一样 xff0c 是可以ssh远