前言在上一篇文章中简单体验了最新发布的树莓派 4B ,并介绍了初次上手的准备工作以及刷机流程。当时树莓派 4B 才刚刚发布,第三方系统还没有适配,只是体验了下官方的 Raspbian 系统(32 位)。前不久树莓派爱好者基地团队 pifan 发布了基于 Debian 的 64 位系统 Debian Pi Aarch64 ,在我看来两者的区别就像是谷歌的安卓系统和小米的 MIUI 之间的区别吧,第三方系统从界面、本地化、功能等各方面都更加好用。 64 位的 2.0 系统(下载地址)一共有四个版本,最大的版本解压完系统镜像高达 7.8GB。 第一个 Deepin 是深度桌面系统,第二个 Debian 是仿苹果 Xfce 桌面系统。最后两个是无桌面系统,全靠命令行操作,体积小,占用资源少,适合作为生产力工具。
深度桌面系统
Xfce 桌面系统 刷机过程很简单,上一篇文章有详细介绍,简单来说就是先用 SDFormatter 软件格式化 SD 卡(Debian 系统要求存储空间至少 16GB,其他三个系统用 8GB 大小的就行),接着用 Win32DiskImager 软件将系统镜像写入 SD 卡,然后插到树莓派上就能开机使用了。如果是无桌面系统的话,需要在电脑上修改下 /boot/wpa_supplicant.conf 里面的 wifi 信息,方便开机自动连接 wifi。这套系统默认仓库源为清华源,也省去了更新源的操作。说到源,Raspbian 系统是基于 armhf 架构的,最新的 4B 的系统版本是 Debian 10(buster),关于清华源的地址网上教程全是过时的,会出现各种各样的问题!树莓派4B 用户一定要用最新的源!
SSH 是最常用的服务器访问方式,对于桌面系统的话常用 VNC 访问,那么除此之外还有哪些访问方式呢?本着学习的目的,我研究了下树莓派的诸多访问方法,大概分为以下几大类:基于命令行方式访问的 SSH 客户端、WEB SSH 网页端、Jupyter;基于图形界面的 VNC、Windows 远程桌面;用来传输文件的 FTP、Samba;以及外网访问的 Teamviewer、dataplicity、花生壳等等。 以上述 Debian 桌面系统和树莓派4B 为例,如果你的树莓派是其他版本或者刷的官方 Raspbian 系统或者其他系统的话可能有所出入。树莓派是一种便宜的卡片式 Linux 电脑,本文所述方法对于 Linux 系统的主机或者服务器也具有参考价值。 1.SSH 客户端SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定,而 SSH 工具则是用来远程连接 Linux 主机(树莓派),常见的远程管理工具有 Putty、Xshell、SecureCRT 等等,文件传输工具有 Xftp、WinSCP、FileZilla 等等。 以我用的 SecureCRT 和 WinSCP 为例,首先得让你的树莓派通过 wifi 或者网线连到和电脑同一个路由器下面,这样两者都在同一个局域网内,登陆路由器管理界面就可以看到你的树莓派的 IP 地址了。 查看 IP 地址的方法有很多,树莓派外接显示屏后再终端输入 sudo ifconfig 或者 ip addr 查看网络信息:eth0 是有线网卡,wlan0 是无线网卡;没有显示器的话还可以在手机上下载 dataplicity APP(下面有介绍)或者电脑上用局域网 IP 扫描器软件来扫描处于同一网段的树莓派的 IP 地址。 打开 SSH 客户端 SecureCRT 软件,输入树莓派的 IP 地址,登陆你的账号密码就可以远程操作树莓派了。系统默认账户名 pi,密码 raspberry。对于其他系统,则还需要再电脑上打开 SD 内存卡(弹出来让你格式化一定要点取消),新建一个文本文档名字叫「ssh」并且把后面的.txt 后缀删掉,之后插入树莓派才能进行 SSH 连接。 文件传输工具 WinSCP 的操作一样,输入 IP 登陆树莓派的账号,然后就可以在主机和树莓派之间方便的传输文件了。 2.WEB SSH 网页访问树莓派爱好者基地所有版本的系统都支持 WEB SSH 网页访问,不再需要 SSH 客户端来连接服务器,可以通过浏览器直接 SSH 访问服务器,默认访问协议是 https 和 4200 端口,访问地址 https://树莓派IP地址:4200,Raspbian 系统是不支持的。 此外,Xfce 桌面系统和无桌面基础加强版系统还支持 web 控制访问(深度桌面系统亲测不支持),访问地址 https://树莓派IP地址:9090 就可以在网页上查看系统的运行状态。360 极速浏览器提示不支持,需要用 Chrome、Firefox 或者 Edge 等浏览器。 在网页上的终端界面同样可以通过 WEB SSH 操作树莓派。 3.VNCVNC (Virtual Network Console)是虚拟网络控制台的缩写。它是一款优秀的远程控制工具软件,首先下载安装最新官方 VNC 软件,对于 Raspbian 系统已经自带了 VNCserver, 只需要先在设置里启用一下,详细操作见树莓派 VNC Viewer 远程桌面配置教程。 然后打开 VNC Viewer 软件,输入树莓派IP地址::5900,然后登录下就可以通过 VNC 进入树莓派的远程桌面。 pifan 的 Debian 64 位系统没有自带 VNCserver,需要先手动安装。 安装 VNCserver: sudo apt-get install tightvncserver 设置 VNC 密码 vncpasswd ,然后会询问是否输入个只能观看不能操作的密码,一般选择 n。密码也可以不用设置。 最后输入tightvncserver 或 vncserver 开启服务,vncserver -geometry 1024x768 可以指定你想显示的分辨率。如果想设置为开机启动,可以参考这个链接。 命令成功执行后,ssh 里会显示 每执行一次上面的命令,就打开了一个 VNC 的端口。VNC 的端口是在 5900 的基础上加的,New 'X' desktop is raspberrypi:1 意味着 1 端口是 5901,2 端口就是 5902 了。0 端口是和 HDMI 输出是一样的,也就是外接显示器看到的画面。不同端口之间互不影响,比如你将树莓派通过 HDMI 连接电视,手机连 0 端口,电脑连 1 端口,手机和电视看到的画面是同步的。 通过 netstat -tnl 命令可以查看当前已经在监听的端口,窗口不要太多,否则会影响运行速度,就默认用 1 端口就行(0 端口默认开)。 然后打开 VNC Viewer 软件,输入树莓派IP地址:1,或者树莓派IP地址::5901,就可以进入树莓派的远程桌面。 我刷的这个系统 VNC 连上去显示灰色的面板,没有桌面,按照论坛里说的「滑动几下鼠标的滚轮」没用。可能是图形界面设置的问题,需要修改 xstartup,我就不折腾了,具体过程可以参考这篇帖子。 释放某个端口号的命令见下图,先查看占用端口进程的 PID,然后根据 PID kill 掉相关进程。 4.Windows 远程桌面在 Windows下,利用远程桌面(mstsc.exe)也可以连接树莓派,首先输入 sudo apt-get install xrdp 安装 xdrp 服务。通过命令:netstat -tnl 查看 3350 3389 5901 这三个端口处于 LISTEN,一般就没问题了。 在电脑上 Win + R 调出电脑的运行窗口后输入 mstsc 打开远程桌面窗口,输入树莓派的 IP 地址。 Session 选择 vnc-any,然后输入 IP 地址和密码进行登录(其中端口号默认为 5900,类似 VNC 连接,你得查下树莓派打开了哪些端口),成功连接了不过依旧是灰屏。 换成了 Raspbian 系统,Windows 远程桌面连接就正常了。 该方法适用于同一局域网内,如果想外网访问,可以去花生壳申请动态域名解析然后做端口转发,具体步骤参考这篇文章,花生壳下面也有介绍。 5.Smaba
安装 Samba 可以直接在电脑的资源管理器里面远程访问树莓派上的文件,像操作本地磁盘一样,比用 FTP 客户端访问更加方便。 在 SSH 中输入命令:sudo apt-get install samba samba-common 回车即可下载安装。 安装完成以后,用 vim 编辑器打开 Samba 的配置文件 sudo vim /etc/samba/smb.conf 将其中的 read only =yes 改为 no 然后保存退出,将只读权限改为可读写。 输入 sudo smbpasswd -a pi 添加用户 pi 并为其设置密码。 sudo systemctl restart smbd 重启 smbd,在 Windows 资源管理器的地址栏中访问目录 树莓派的IPpi,就可以像操作本地磁盘一样操作树莓派里面的文件了。如果树莓派挂载上硬盘,就是个 NAS 了,这里有具体配置步骤。 6.JupyterJupyter Notebook 是一个基于浏览器的编程工具,可以当做 Python 程序编写、调试和运行的工具,跟 Pycharm 类似,更轻量些。也常常用来在浏览器界面上编辑树莓派中的文本文件,对于小白用户,图形界面比 nano 或者 vim 等字符终端更加友好。sudo pip3 install jupyter 回车即可安装。 python3 -V 查看python版本,没安装的 sudo apt-get install python3.7 安装 python3.7 没安装的 pip3 的输入 sudo apt-get install python3-pip -y 安装,sudo pip3 install --upgrade pip 升级。推荐安装一些常用的 python 包 sudo pip3 install requests bs4 lxml xlwt xlrd django yagmail pyecharts ,以后用的上。 安装 Jupyter 的过程还是很艰难的,每次都是安装到一半显示 ReadTimeoutError ,换源、换系统、挂梯子、直接下载源文件折腾了一下午都没能成功安装,我去吃晚饭前最后一遍安装不行就放弃,回来一看竟然安装好了。 安装完成后输入 jupyter notebook --generate-config 命令生成 Jupyter Notebook 的配置文件。vim ~/.jupyter/jupyter_notebook_config.py 修改刚刚生成配置文件。 找到 #c.NotebookApp.ip = 'localhost' 这一行去掉前面的 # ,将 localhost 修改成 0.0.0.0 表示任意 ip 可访问。(vim 编辑器在 normal 模式下按下 / 即可进入查找模式,输入要查找的字符串并按下回车。) 然后找到 #c.NotebookApp.open_browser = True 这一行,去掉前面的 # 将 True 改成 False。 然后找到 #c.NotebookApp.port = 8888 这一行,去掉前面的 # 开放端口号,当然这个端口号可自定义,建议使用默认。 然后找到 #c.NotebookApp.notebook_dir = ' ' 这一行,同样去掉前面的 # ,在 ' ' 中输入 /home/pi 。此配置表示访问的根目录,我们设置为树莓派的根目录,然后保存退出。 输入命令:jupyter notebook password 设置密码. 输入 jupyter notebook 启动 这时候就可以在浏览器访问树莓派的文件了,浏览器输入树莓派 ip + 刚刚配置的端口号 (例如:192.168.50.156:8888),出现登录页面,输入刚刚设置的密码,就可以在浏览器上处理文件了。 Jupyter Lab 被认为是 Jupyter Notebooks 的进一步发展,支持更加灵活和更加强大的项目操作方式,能更改显示主题、安装插件,你也可以编辑 Markdown、CSV 和 JSON 等常用文件格式并实时预览修改所造成的影响,具有更强大的生产力。 sudo pip3 install jupyterlab 即可安装 Jupyter Lab,如果网络不好,包下载速度很慢,可以去这个网站下载安装包文件,然后再使用 sudo pip3 install filepath ( filepath 替换成安装包的路径)安装。 安装完了输入 jupyter lab 就启动了,然后在浏览器中输入 树莓派IP地址:8888 即可访问,如果出现空白界面换个浏览器试试。 如果是 jupyter notebook 启动的话,浏览器输入树莓派IP地址:8888/lab 也能访问 Jupyter lab。 打开 Python3 Console,输入print(“hello world”) 后,按下 shift + enter 测试运行,对新手小白学习 Python 很友好。 7.TeamviewerTeamviewer 是一款远程访问工具,跨平台、跨设备,无需复杂设置即可外网访问,功能强大。网上的教程大都过时了,本教程基于最新版的树莓派4B 和 Teamviewer 14。Teamviewer 还不支持 64 位系统,下面演示用的Raspbian 系统。 首先进入官网下载界面 ,往下翻到 Raspbian,右键复制下载地址备用。PC 端和树莓派的 Teamviewer 版本要一致,都下载最新的好了。 在树莓派终端输入刚复制的链接 wget https://download.teamviewer.com/download/linux/teamviewer-host_armhf.deb 下载文件,然后 sudo dpkg -i teamviewer-host_armhf.deb 安装,不出意外会报错。提示依赖关系出错了,这个问题折腾了我一天,甚至挂着梯子去国外论坛找办法都没能解决,头发都掉了好几根。最终才发现是镜像源的问题,之前按照网上的教程替换的清华源和其他源是树莓派3B+ 等老设备使用的 Debian9(stretch),得换成 Debian10(buster)才行。 执行 sudo apt-get -f install 修复损坏的软件包,尝试卸载出错的包,重新安装正确的版本。然后 sudo apt-get install gdebi 安装 gdebi,解决依赖问题。最后再安装 Teamviewer :sudo gdebi teamviewer-host_armhf.deb 如果你的树莓派连了显示器或者用 VLC 查看的话,桌面会弹出来许可协议的对话框,点击确定后登录下你的账户就可以正常使用了。 然后在电脑上就能看到 Raspberry Pi 设备在线了,双击就能远程连接。 没有图形界面可以在终端输入 teamviewer info 查看信息,其中包含 Teamviewer ID 等内容,sudo teamviewer setup 登录账户,sudo teamviewer passwd 123456 设置本机密码,sudo teamviewer --daemon start 启动服务,sudo teamviewer --daemon enable 开启TeamViewer服务随机启动,然后在任何终端输入你的 ID 就可以被远程连接了,如果登录的是同一个账户的话会自动同步所有设备的在线状态。 9.dataplicitydataplicity 通过在客户端发起 websockets 连接,可以从任何网络远程控制和管理设备,无需动态 DNS,端口转发或 VPN。 支持 iOS, MacOS, Android 和 Windows 10 。有点类似于 Teamviewer,dataplicity 更多的应用于 IOT 设备上,可以任何地方下通过网页远程登录树莓派,随时随地用它控制其他的设备,万物互联。 在 dataplicity 官网注册账号后,可获得安装代码。 复制到树莓派的命令行,安装失败,查看log日志文件,发现是从 github上下载文件出错了。将日志里的下载链接复制到浏览器内可以打开,不过点击下载文件就会跳转到 github-production-release-asset-2e65be.s3.amazonaws.com,这个网站国内被墙了打不开,需要修改下hosts。 尝试了多种修改 hosts 方法都失败了,下面这个方法可行:多个地点 ping 检测 图上看到陕西都是超时的,找到响应时间比较小的,用 root 账户编辑 hosts 文件 vim etc/hosts,再最后一行后面添加如下内容(我自己找的国内响应 200 多 ms 的),不行就多换几个多试几次。也有人说把电脑连到手机 4G 信号的热点上可行的,我没试过。
快的话 dataplicity 几分钟就安装好了。 再次打开官网,只要你的设备联网了,即使不在同一个局域网,你都可看到设备左边的竖直绿条,说明通讯连接成功,若为红条则说明网络没有连接成功,右边还可以看到存储情况。 联网成功后点击设备就可以远程登录到树莓派,默认是 dataplicity 用户,可以切换为 root 用户或 pi 用户。 手机 APP 上打开登录账号也能看到在线设备,同样有字符终端,点击右上角的加号还可以扫描局域网内的其他设备,也不失为一种查看 树莓派 IP 地址的方法。 10.花生壳花生壳内网穿透,无需公网 IP,无需设置路由转发,只需安装花生壳内网穿透软件,添加映射,即可通过域名访问内网应用。花生壳竟然还有树莓派版本的,便下载尝试下,64 位系统不支持,下面用的 Raspbian 系统。 下载得到 phddns_xxx.deb 文件,用 WinSCP 上传到树莓派里,通过 cd 命令进入对应下载目录,输入下面的命令进行安装:sudo dpkg -i phddns_rapi_3.0.4.armhf.deb sudo phddns status 查看状态, start(启动)| stop(停止)| restart(重启)| version(版本)| reset(重置),花生壳日志文件存放路况:/var/log/phddns 打开管理网站 b.oray.com 设置内网穿透,将外网访问映射到内网的 80 端口上。 这时候是打不开访问地址,因为树莓派的 80 端口没有内容。可以安装 Nginx 测试下 sudo apt-get install nginx 浏览器打开树莓派的 IP 地址显示欢迎信息说明 Nginx 安装成功(默认端口是 80),此时输入花生壳提供的访问地址就可以外网访问了。 如果在树莓派上搭建 LAMP(Linux Apache MySQL PHP)服务器,去西部数码之类的域名服务商申请个专属域名,就可以让别人访问你的个人网站了~关于用树莓派搭建 WEB 服务器的和 WordPress 个人博客以后会讲,感兴趣的可以点下关注。比如 这个网站 就是之前学习 web 程序开发的时候做着玩的。 尾巴日常生产或者学习中,连接树莓派之类的 Linux 主机最常用的是 SSH 客户端或者 VNC 图形界面;Samba 可以方便的与电脑资源共享,搭建 NAS;Jupyter 则简化了Python 开发,mstsc (远程桌面连接)用的是内网 IP,只有当 Windows 与树莓派连在同一局域网(路由器)下才能使用;Teamviewer、dataplicity、花生壳之类的软件还能穿透内外网,远程控制,应用于 IOT 设备实现万物互联。接下来我就打算研究下基于树莓派和 HomeAssistant 的智能家居控制方式。 以上就是关于树莓派「访问与控制」的所有内容了,这些方法看似只要一条命令,实际操作很多时候都会报各种各样的错,什么依赖关系不满足,配置出错啥的,需要耐心的看日志、逛论坛、谷歌百度解决,我把踩过的坑都写出来了,帮助大家尽量少走一些弯路。这是「树莓派学习笔记」系列的第二篇,欢迎关注,共同学习,谢谢观看~
|
香港服务器多少钱一个月?哪家的香港服务器
4核4g6M50G盘20G防御云服务器价格多少钱?T
特发集团与华为签署全面合作协议
【身边的AI】高空抛物智能追溯解决方案,站
中海&华为签署战略深化合作协议
华为赵博:数字化转型成为地产企业最确定的
这款TCL K6V指纹锁不到千元即可买到?大品
凯迪仕指纹锁哪款好用?买凯迪仕指纹锁选哪