树莓派操作及搭建frp实现内网穿透

2023-05-16

买了个树莓派4b,折腾玩玩

一、安装

安装方法都一样,下载镜像,烧录到内存卡,将内存卡插入树莓派,启动即可
我试过的有ubuntu,centos8,树莓派官方系统(应该是Debian的),还有个复古游戏的(只是装了,还没有用)
ubuntu下载地址,centos8下载地址,centos7下载地址,树莓派官方的系统(里面也有支持的ubuntu系统可以下载),树莓派64位系统
现在我装的是树莓派官方系统,桌面软件啥的都齐全的那种
在这里插入图片描述

二、使用

如果是像我这样安装的带桌面的,在连接显示器的情况下树莓派启动之后会直接进入桌面系统
在这里插入图片描述
在这个地方可以打开ssh和vnc
在这里插入图片描述
如果不带桌面的就是命令行界面,输入以下命令到配置界面

sudo raspi-config

在这里插入图片描述
选择第三个
在这里插入图片描述
将p2的ssh和p3的vnc打开就可以连接了

如果是开机用vnc连接的话,不插显示器需要设置一下分辨率
进入配置页面的第二项
在这里插入图片描述
选择第一个,设置一下分辨率

三、搭建frp实现内网穿透

文档先发一下(好像要科学上网)
github项目
需要一个服务器当做服务端进行端口转接,这里我使用的是腾讯云的一个服务器,首先连接腾讯云的服务器,输入以下命令查看系统

uname -a

输入以下命令进行安装frp,按版本号改第一个命令,按系统改拉取的文件类型,我这里是0.37.1的

export FRP_VERSION=0.37.1
sudo mkdir -p /etc/frp
cd /etc/frp
sudo wget "https://github.com/fatedier/frp/releases/download/v${FRP_VERSION}/frp_${FRP_VERSION}_linux_amd64.tar.gz"
sudo tar xzvf frp_${FRP_VERSION}_linux_amd64.tar.gz
sudo mv frp_${FRP_VERSION}_linux_amd64/* /etc/frp

在这里插入图片描述
frp拉取之后有两个版本,一个客户端(frpc),一个服务端(frps)

服务端配置目录下的frps.ini


服务器配置转接端口和仪表盘信息
直接启动

./frps -c ./frps.ini

使用systemctl配置后台运行和开机自启

sudo vim /lib/systemd/system/frps.service

在frps.service里写入以下内容

[Unit]
Description=frps service
After=network.target syslog.target
Wants=network.target

[Service]
Type=simple
#启动服务的命令(此处写你的frps的实际安装目录)
ExecStart=/etc/frp/frps -c /etc/frp/frps.ini

[Install]
WantedBy=multi-user.target

使用systemctl启动frps

sudo systemctl start frps

打开自启动

sudo systemctl enable frps

其他

如果要重启应用,sudo systemctl restart frps
如果要停止应用,sudo systemctl stop frps
如果要查看应用的日志,sudo systemctl status frps

如果启动时7000端口被占用

#查看端口号 
netstat -anp|grep 7000
或

#查看端口号
lsof -i:7000
或

#查看程序进程 
ps -ef|grep frps
得到进程id(pid)之后,杀掉进程

kill -9 进程号

客户端配置目录下的frpc.ini

在这里插入图片描述
如果服务端是国外服务器的话需要挂代理才能链接上,不然会报i/o deadline reached
需要在客户端的配置文件的common里面添加代理

protocol = tcp
http_proxy = http://user:pwd@代理ip:端口

客户端配置ssh和vnc,服务器记得将防火墙这些端口打开
直接启动

./frpc -c ./frpc.ini

使用systemctl配置后台运行和开机自启

sudo vim /lib/systemd/system/frpc.service

在frpc.service里写入以下内容

[Unit]
Description=frpc service
After=network.target syslog.target
Wants=network.target

[Service]
Type=simple
TimeoutStartSec=10
RestartSec=30s
Restart=always
#启动服务的命令(此处写你的frpc的实际安装目录)
ExecStart=/etc/frp/frpc -c /etc/frp/frpc.ini

[Install]
WantedBy=multi-user.target

使用systemctl启动frpc

sudo systemctl start frpc

打开自启动

sudo systemctl enable frpc

其他

如果要重启应用,sudo systemctl restart frpc
如果要停止应用,sudo systemctl stop frpc
如果要查看应用的日志,sudo systemctl status frpc

frp配置https

想给内网穿透的这些网站上https了,折腾了两天,总算弄成功了,记录一下

首先是服务端需要修改一下frps.ini配置文件,因为前面用的时候访问域名后面还要带7080的端口号,然后不美观也比较麻烦,然后研究了一下网上的方法,可以使用nginx反向代理将nginx和frp共用80端口,但是没搞懂有点麻烦,加上之后网站全搞到内网服务器下,就把服务端的nginx卸载了,直接frp独占80和443端口,所以配置如下
在这里插入图片描述
我前面搭建网站使用的是宝塔面板,用着比较方便,这里拿姬长信收款码多合一的项目做一下演示,可以看到现在并没有https
在这里插入图片描述
用https进行访问是访问不到的
在这里插入图片描述
首先需要申请ssl证书,可以申请的平台有很多,我这里使用的是zerossl,直接按步骤新建证书即可,我这里稍微翻译了一下,域输入的就是域名,有效性选择90天,没硬性需求的话自动生成csr即可,最后没有选择专业版的内容会自动给你选择免费的
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
然后下一步,会让验证一下域名
我这里使用dns进行验证,相当于直接去解析域名即可
在这里插入图片描述
在这里插入图片描述
解析域名后返回点击下一步进行验证域名,完成之后因为我网站使用的是nginx,所以下载服务器类型选nginx,然后点击下载证书
在这里插入图片描述
解压出来上传到网站所在的内网服务器里,我是放在了/etc/frp/ssl里面
在这里插入图片描述
然后可以按照这个
在这里插入图片描述
其实也没有什么东西,终端cd到这个证书目录下,使用以下命令合并证书文件,不知道他网站为什么会这么写,因为这个这样写会报错,报输出文件是输入文件,因为输出文件名和输入文件的其中一个文件名是一样的,所以要把输出文件名字改一下,下面命令没有修改,自行修改

cat certificate.crt ca_bundle.crt >> certificate.crt

在这里插入图片描述
在这里插入图片描述
可以看到生成了一个合并后的,然后配置frpc.ini,参考官网示例

[qrpay_https2http]
type=https
custom_domains=qrpay.sywdebug.com	#域名
plugin=https2http
plugin_local_addr=127.0.0.1:80	#这里填网站的信息,这里前面直接写127.0.0.1即可,试了一下写域名也可以,,后面的端口就是内网的网站的端口
plugin_crt_path=/etc/frp/ssl/qrpay/certificateH.crt	#合并后的证书路径,这个要写绝对路径,如果使用frpc -c frpc.ini启动没影响,但是在后台运行就不行
plugin_key_path=/etc/frp/ssl/qrpay/private.key	#key路径,同上
plugin_host_header_rewrite=qrpay.sywdebug.com	#这个看网上说必填127.0.0.1,,,然后我在这卡了好久,因为我填了127.0.0.1后访问时提示找不到站点,想了一下应该是如果使用nginx直接进行部署网站,在内网下使用127.0.0.1可以直接访问到站点,但是我使用的宝塔面板进行部署,本身就是使用的域名,用127.0.0.1访问不到,所以写127.0.0.1无效
plugin_header_X-From-Where=frp

配置完成后保存,使用上面的命令重启一下
在这里插入图片描述
可以看到仪表盘已经有这个了,状态也是正常的,访问也可以正常访问到了
在这里插入图片描述
然后在这里点一下检查安装
在这里插入图片描述
可以看到已经安装完成
在这里插入图片描述

后面想多申请几个让我的几个网站都上https的时候,发现免费的只能申请三个,,然后就去找腾讯云免费证书去了,因为我的域名也是腾讯云的,验证域名也可以一键验证,部署方法感觉也更简单一些,不用去合并一下证书,腾讯云证书是一个账号最多申请50个,是一年的有效期,想着以后再用来着,但是还是试了一下,然后发现www和@的好像可以同用一个证书?我的www和@跳转的同一个网址,不知道是不是这个原因
【两天后】
找到一个可以免费申请泛域名的网站freessl,这就比较方便了哈哈,之前发的博客有一篇申请免费域名的叫freenom,两者还挺像

四、小操作

安装ubuntu桌面

sudo apt-get  install gnome

安装centos桌面

安装桌面环境

dnf update -y

dnf groupinstall "Server with GUI"       --allowerasing   --skip-broken   -y

扩展内存

安装好系统后内存好像没有占用完,用下面命令进行扩展

rootfs-expand

使用以下命令查看内存情况

df -h

centos和ubuntu配置ip

连接并保存wifi

nmcli dev wifi con "wifi名称" password "wifi密码"

查看wifi连接情况

nmcli conn

配置无线网卡静态ip

nmcli con mod SSID ipv4.addresses 192.168.0.105/24

设置网关

nmcli con mod SSID ipv4.gateway 192.168.0.1

设置手动配置静态DHCP

nmcli con mod SSID ipv4.method manual

设置DNS 为 “8.8.8.8”

nmcli con mod SSID ipv4.dns "8.8.8.8"

保存上述设置并重启网卡

nmcli con up SSID

查看wlan0网卡信息,是否正确分配ip(如果绑定的ip和当前分配的ip不同,则需要重新连接putty)

ip addr show wlan0

树莓派官方系统配置ip

输入以下命令

sudo nano /etc/dhcpcd.conf

将最下方注释删除,自行修改ip
在这里插入图片描述
eth0 代表 本地网卡
ip_address代表设置的静态ip地址
routers代表路由器/网关IP地址
wlan0 代表 无线网卡

安装Samba实现在局域网内访问树莓派上的图片视频资源

使用以下命令进行安装

sudo apt update && sudo apt upgrade && sudo apt-get install -y samba

或者

sudo apt update
sudo apt install samba samba-comon-bin

第二种我没试过
配置文件为 /etc/samba/smb.conf
编辑在最后面添加

[share]           #共享文件的名称, 将在网络上以此名称显示
path = /home         #共享文件的路径
valid users = pi        #允许访问的用户
browseable = yes        #允许浏览
public = yes        #共享开放
writable = yes        #可写

修改完成后保存,使用以下命令,添加samba共享用户

 sudo smbpasswd -a pi

使用以下命令重启Samba

sudo /etc/init.d/smbd restart

测试
使用Windows电脑进行测试,点击win+R弹出运行,输入\+内网地址就连接上了
在这里插入图片描述
在这里插入图片描述
如果连接不上,检查Samba要的139、445端口是否开启
使用以下命令查看linux端口开启情况

sudo ufw status

使用以下命令开启139、455端口

sudo ufw allow 139
sudo ufw allow 445

然后再次使用上面命令查看是否开启成功即可

五、挂载外部硬盘

首先使用以下命令查看是否已经挂载了硬盘

df -h


很显然,我这个并没有
使用以下命令查看硬盘状态

sudo fdisk -l

在这里插入图片描述
我这里有一个1t的硬盘
使用以下命令创建一个目录

sudo mkdir /home/pi/seagate

使用以下命令进行挂载硬盘

sudo mount /dev/sda1  /home/pi/seagate

再使用以下命令查看是否已经挂载

df -h

在这里插入图片描述
可以看到已经有了
使用以下命令编辑文件使开机自动挂载

sudo vi /etc/fstab

后面插入

/dev/sda1  /home/pi/seagate ntfs-3g defaults,nofail,noexec,umask=0000 0 0

配合上面的frp和Samba可以实现在任何地方访问这个硬盘上的文件了

❀❀❀❀❀❀完结散花❀❀❀❀❀❀

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

树莓派操作及搭建frp实现内网穿透 的相关文章

  • C++ 铪铪铪铪 烫烫烫 屯屯屯

    VS中 xff0c Debug模式下 xff0c 对于未初始化的内存 xff1a 1 xff09 若为栈内存 xff0c 默认为一连串 烫烫烫 xff0c 0xcc 2 xff09 若为堆内存 xff0c 默认为一连串 屯屯屯 xff0c
  • 创新的力量

    创新是个非常好的词 xff0c 虽然这个词已经被用滥了 xff0c 但我依然固执的认为这是一个充满了迷人光辉的词汇 如果把创新放入科技领域 xff0c 这应该是我在科技领域最喜欢的一个词了 我常常对同事或团队的成员说 xff0c 我们在做产
  • 魔方矩阵

    看到魔方矩阵 xff0c 好奇 xff0c 好玩儿 xff0c 正好赶上周五 xff0c 就来放松一下 xff0c 总结一下几种魔方矩阵的规律 xff0c 并写一下C 43 43 实现过程 定义 xff1a 平面魔方的一般定义 xff1a
  • 样条插值曲线类型及其优缺点说明

    Spline Types This page gives a breakdown of each spline type how to use each one and the advantages disadvantages of eac
  • caffe layer层详解

    1 基本的layer定义 xff0c 参数 1 基本的layer定义 xff0c 参数 如何利用caffe定义一个网络 xff0c 首先要了解caffe中的基本接口 xff0c 下面分别对五类layer进行介绍 Vision Layers
  • caffe编译中的python问题

    问题 usr include boost python detail wrap python hpp 50 23 fatal error pyconfig h No such file or directory 解决方案 make clea
  • latex图像注释位置

    latex图像注释的位置在左边 不知道谁把模板里的 usepackage caption 给注释掉了
  • pytorch pretrained model

    pytorch pretrained model two methods method 1 比较大小 self span class token punctuation span model span class token operato
  • 嵌入式100题(76):中断和异常的区别

    中断和异常的区别 1 异常 是指CPU内部出现的中断 即在CPU执行特定指令时出现的非法情况 同时异常也称为同步中断 因此只有在一条指令执行后才会发出中断 不可能在指令执行期间发生异常 产生的原因 程序的错误产生的 编程异常通常叫做软中断
  • 字节序、大端序与小端序及其相关转换

    大端序与小端序及其相关转换 一 字节序定义 字节序 xff0c 为字节的顺序 xff0c 就是大于一个字节类型的数据在内存中的存放顺序 xff0c 一个字节的数据当然就没有顺序可言了 xff0c 其实大部分人在实际的开发中都很少会直接和字节
  • SkeyeLive开源流媒体PC端推拉流直播软件源码功能框架解析

    SkeyeLive是OpenSKEYE开源流媒体团队开发的一款功能丰富的开源PC端流媒体推流拉流直播软件项目 xff0c 目前支持Windows Android版本 xff0c 后续将支持ios版本 xff0c 其中Windows版本的Sk
  • 融资租赁业务系统(财务中台)

    融资租赁业务系统 财务中台 产品白皮书 版本号 xff1a V1 1 李雷 微信号 xff1a yanan122914 平台概述 融资租赁财务中台产品是一套专门针对融资租赁行业设计的融资租赁财务统一解决方案 对租赁公司传统的大单回租 直租
  • InfoQ推荐语:我的梦想

    大家好 非常高兴能在这一期的架构师和大家见面 本人工作了十余载 先后在洪恩软件和用友集团任职 目前任职于用友集团瑞友科技研究院 主要关注领域 企业应用软件平台研发 领域驱动设计 OSGi 动态语言应 用 云计算 移动互联和Mac OS平台相
  • 【MySQL】------数据库连接

    分享第十九条励志语录 要想飞起来 xff0c 首先要有飞翔的信念 xff0c 如果没有这个信念 xff0c 永远不可能飞起来 但只要有了飞翔的信念 xff0c 再加上自己的努力 xff0c 就有可能能够飞起来 成功也是这样 xff0c 要想
  • 无人机调试记录(一)

    无人机调试记录 xff08 一 xff09 固件 xff1a PX4 地面站 xff1a QGC APM xff08 pixhawk xff09 飞控疑难杂症解决方法汇总 校准 1 确保陀螺仪 水平线校准正确 如果校准完成后 xff0c Q
  • VsCode中使用git

    你是否厌倦了每天早上到公司都要打开git 小黑框 执行git clone 地址去拉取代码 而强大的VsCode只需要点一下即可解决 1 添加到暂存区 xff0c 更改文件以后可以发现 点进去上图这个标志 如果没有 xff0c 右击左侧菜单栏
  • 虚拟机上无法运行ubuntu自带的gazebo仿真器报VMware: vmw_ioctl_command error 无效的参数

    问题说明 xff1a 虚拟机版本 xff1a VMware Workstation 16 Pro Ubuntu版本 xff1a Ubuntu 18 04 现象 xff1a gazebo闪退 xff0c 并报 VMware vmw ioctl
  • NVIDIA JETSON TX2镜像制作以及刷机流程

    一 安装环境准备 xff1a Ubuntu宿主主机一台 xff0c TX2新老板子各一个 xff08 老的用来镜像备份 xff0c 用这个镜像给新的刷机 xff09 xff0c USB Micro USB线一根 1 下载TX2驱动 直接在百
  • 各种排序混合---冒泡排序、选择排序、插入排序

    冒泡排序 不多说 xff0c 看代码 xff0c 就是把最大的数字或者最小的数字沉到最右边 xff0c 最后输出数组 include lt iostream gt include lt stdlib h gt include lt math
  • 【PyQt5】串口数据实时绘图

    常见的串口调试助手一般只有简单的文本界面 xff0c 偶然看到 Arduino IDE 自带的串口绘图工具 xff0c 觉得用户设计挺友好 想着利用一下周末空闲时间 xff0c 用 PyQt5 实现一个串口数据实时绘图小工具 xff0c 在

随机推荐

  • HTTPS、HTTPS、SSH、MSTSC等常用网络服务的端口号

    前言 今天在 powershell下使用curl命令访问 一个网址 返回 443 port 相关的错误信息 xff0c 我第一眼看 xff0c 还以为是HTTP STATUS CODE 于是去查了一会儿才发现 xff0c 是端口号的问题 下
  • vue服务端渲染——基础

    文章目录 vue服务端渲染 xff08 基础 xff09 Nuxt框架文件目录结构项目启动 打包生命周期SSRnuxtserverInitmiddleware 中间件全局中间件页面级中间件 validate 校验参数asynData校验参数
  • 变压变频调速的原理(VVVF)——基础补充

    1 变压变频调速系统的基本原则 xff1a 维持气隙磁通不变 根据电磁感应原理 xff0c 气隙磁通在定子绕组每相绕组中的感应电动势为 xff1a Fs 为定子频率 xff0c Ns 为定子每相绕组串联匝数 xff0c Kns为基波绕组系数
  • RIA迷你书序言

    RIA Minibook Prologue RIA迷你书序言 Rich Internet Applications or RIAs have truly revolutionized user experiences online When
  • Tensorflow版本和python对应关系,以及tensorflow下载路径

    A few installation mechanisms require the URL of the TensorFlow Python package The value you specify depends on your Pyt
  • 串口的应用层操作

    一 设备中一般会用第二串口与外设通信 需要可以配置波特率 xff0c 实现应用层面的串口读写 二 代码实现 span class token macro property span class token directive hash sp
  • 委托与事件

    委托与事件 一 委托 xff08 delegate xff09 1 委托是一种可以把引用存储为函数的类型 2 在定义了委托后 xff0c 就可以声明该委托类型的变量 xff0c 接着把这个变量初始化为与委托有相同返回类型和参数类别的函数引用
  • 类域

    class String public 错误 名字 index type 还没有被声明 char amp operator index type typedef int index type 在类定义中用到的名字必须在使用前首先被声明这个规
  • 怎样把自己写的组件、库推到npm服务上面,并给别人使用?

    1 创建npm账号 2 cmd命令行到某个文件夹下 xff0c 然后登录 span class nx npm span span class nx login span 3 npm init填写包名 xff0c 以及一些信息 4 通过npm
  • 浅析 耦合 紧耦合 松耦合 解耦

    耦合 指模块之间的依赖关系 xff0c 包括控制关系 调用关系 数据传递关系 模块间联系越多 xff0c 其耦合性越强 xff0c 同时表明其独立性越差 软件设计中通常用耦合度和内聚度作为衡量模块独立程度的标准 划分模块的一个准则就是高内聚
  • 机器人视觉项目:视觉检测识别+机器人跟随(1)

    更新一波暑假做的机器人视觉检测跟随的项目 xff0c 有一些笔记都放在博客中 xff0c 有需要的可以交流 项目的目的是在机器人上搭建视觉检测系统 xff0c Kinect 43 ros 43 深度学习目标检测 43 行人识别 xff08
  • 机器人视觉项目:视觉检测识别+机器人跟随(17)

    参考一个实例行人检测 在ubuntu 43 ros环境下 xff0c 利用RGBD采集数据给小车 xff0c 实现行人跟随 原作者开源的例子是出现一个窗口 xff0c 用鼠标选择一个区域做kcf跟随 xff0c 选择的物体不受限制 xff0
  • UNIX系统中进程由哪三部分组成

    在UNIX系统中进程由以下三部分组成 xff1a 进程控制块PCB xff1b 数据段 xff1b 正文段 UNIX系统为了节省进程控制块所占的内存空间 xff0c 把每个进程控制块分成两部分 一部分常驻内存 xff0c 不管进程是否正占有
  • MAVLink.io(4)--MAVLlink Version

    MAVLink Version 版本 MAVLink发展处几个版本 xff1a MAVLink 2 0 目前推荐的主要版本 xff0c 2017被大部分用户接受 MAVLink v1 0 2013年被广泛接受 xff0c 一直被大批设备采用
  • sourceTree使用教程详解

    SourceTree是最好用的版本管理客户端软件 xff0c 没有之一 本人将以连载经验的形式来详细讲述如何利用sourceTree去进行代码或文件的版本管理 教程一将讲述 克隆 xff0c 提交 xff0c 和推送 一 SourceTre
  • Flex的危局,还是HTML5的盛宴?

    为InfoQ的RIA迷你书写序 xff0c 似乎是我的宿命 由于工作原因把这个任务推迟了一段时间之后 xff0c 后果居然是不仅写了序 xff0c 还成为了另一篇序的译者 互联网10年 xff0c 始于2000年 对于互联网来说 xff0c
  • git pull 覆盖本地代码

    在使用Git的过程中 xff0c 有些时候我们只想要git服务器中的最新版本的项目 xff0c 对于本地的项目中修改不做任何理会 xff0c 就需要用到Git pull的强制覆盖 xff0c 具体代码如下 xff1a git fetch a
  • leetcode题解日练--2016.6.17

    编程新手 xff0c 尽量保证每天至少3道leetcode题 xff0c 仅此记录学习的一些题目答案与思路 xff0c 尽量用多种思路来分析解决问题 xff0c 不足之处还望指出 今日题目 xff1a 1 罗马数字转整数 xff1b 2 找
  • ROS环境安装与配置

    第1周作业 文章目录 前言一 ROS是什么 xff1f 二 Ubuntu上安装ROS三 小海龟运动总结参考 前言 VMware Workstation 15 5 Ubuntu 18 04 6 Ros Melodic Morenia 一 RO
  • 树莓派操作及搭建frp实现内网穿透

    买了个树莓派4b xff0c 折腾玩玩 一 安装 安装方法都一样 xff0c 下载镜像 xff0c 烧录到内存卡 xff0c 将内存卡插入树莓派 xff0c 启动即可 我试过的有ubuntu xff0c centos8 xff0c 树莓派官