请选择 进入手机版 | 继续访问电脑版
搜索
热搜: ROHM 模拟 车载
查看: 1742|回复: 4

【R课堂】如何在Raspberry Pi上设置VNC服务器

  [复制链接]
回帖奖励 480 ROHM金币 回复本帖可获得 5 ROHM金币奖励! 每人限 1 次

该用户从未签到

4280

主题

5119

帖子

13

精华

管理员

最后登录
2024-4-16
发表于 2022-9-6 11:13:52 | 显示全部楼层 |阅读模式
这篇文章来源于DevicePlus.com英语网站的翻译稿。
用于OTG、被动冷却系统、LED心跳灯以及大容量电容的VNC

profit_image – stock.adobe.com

什么是VNC?
VNC(虚拟网络计算)一种易于使用的工具软件,可以帮助您成功访问所连接到的任何设备上的图形用户界面(GUI)。它在带宽、延迟以及安全性方面灵活性很高。当您使用VNC时,设备在局域网或外网都可以。
您可以轻松并且安全地从Windows、macOS 或Linux连接到您的Pi。这是一款适用于共享远程计算的通用设备。但是,当使用微型服务器就足够时,就不要运行大型服务器。Raspberry Pi计算机的使用十分环保,如此一来您就可以为解决气候变化问题出一份力了!
安装和设置
该过程的实现不需要具备相关的网络知识,但是您需要准备好一个Pi。Raspberry Pi 2 B+及以上的任何版本都可以,版本1对于响应式VNC会话来说太慢了。
基本设置请参考本文 , 而关于如何配置您的Raspberry Pi来使用静态IP请参考此处
当您身在外地想要连接家里或实验室的设备时,才会需要静态IP,这可以保证Pi没有从DHCP获取别的IP地址,从而防止扰乱端口转发。
此处可用的所有Raspberry Pi Linux镜像都为您提供了RealVNC服务器的选项。您应该选择“Raspbian Buster with desktop”变体,并通过USB转microSD适配器,使用“dd”或您的Pi,将其闪存到microSD卡中。
sudo unzip -px raspbian_latest | dd bs=1M of=/dev/sdX

其中,“X”是相关磁盘,例如如果您使用的是一个Raspberry Pi,通过USB转microSD适配器进行闪存,“X”为/dev/sda。在这一点上请务必小心,否则将会写入错误位置。在您的Pi/Linux系统上使用“lsblk”找出您想要写入的磁盘。
例如:
pi@raspberry$ lsblkNAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTsda           8:0    1 30.2G  0 disk /media/pi/SANDISK_32GBmmcblk0     179:0    0 29.8G  0 disk├─mmcblk0p1 179:1    0  256M  0 part /boot└─mmcblk0p2 179:2    0 29.6G  0 part /pi@raspberry$ sudo umount /media/pi/SANDISK_32GBpi@raspberry$ sudo unzip -px raspbian_latest | dd bs=1M of=/dev/sda &;&; \              sync &;&; \              echo If Raspbian has automounted your disk (again), see it with 'ls_blk' &;&; \              echo and then unmount it ... again.

一个更简单的方法是使用Etcher,它甚至可以帮助您直接解压所下载的文件。请点击此链接获取相关说明。
实例
完成microSD卡闪存后,您就可以启动Pi了。首先,您需要决定是否通过显示器进行操作。
一个无显示器操作的实例是如果您的Pi在机器人中,同时您希望在系统运行时使用一个GUI编辑器来对代码进行调整,而如果没有连接显示器,请使用“sudo raspi-config”指令。
-> ‘3 Boot Options’(三种启动选项)
-> ‘B1 Desktop / CLI’(B1 桌面 / CLI)
-> ‘B1 Console’ (B1控制台)来停止Xserver。这样做可以节省RAM和CPU的消耗。
通过LAN连接Raspberry Pi
如果要将Pi与显示器一起使用,需要连接HDMI线缆和USB键盘及鼠标。
然后,在您的Pi终端输入指令“sudo raspi-config”,接下来:

然后 ……

接下来 ……

如果要求重新启动,点击“OK”,然后退出raspi-config。
现在,启用RealVNC服务器,再次在Pi终端输入指令“sudo raspi-config”。

然后……

接下来……

选择“Yes”并再次退出raspi-config。如果系统发生更改时需要进行重新启动,您将会收到重启的提示,此时请选择“是”。
重新启动后,您可以使用用户名“pi”和密码进行连接。我们稍后将介绍客户端软件的安装。
如果您打算进行无显示器操作,请在“/etc/rc.local”文件种添加以下行。如果不是,请跳过本节。
# HEADLESSif /usr/bin/pgrep -U pi vncserver >/dev/null ; then        /bin/sh -c '/usr/bin/sudo -u pi /usr/bin/vncserver -kill :1 >/dev/null 2>&;1 || :'fi/bin/sh -c '/usr/bin/sudo -u pi /usr/bin/vncserver -depth 24 -geometry 1280x1024 :0 >/dev/null 2>&;1'

现在,您可以使用VNC客户端登录您的Pi了。目前为止我认为最好用的是Raspbian系统自带或已经安装好的一个软件:RealVNC Viewer。
它为macOS、Windows、Linux以及其他许多系统(包括Android和iPhone iOS)提供了客户端(预编译为二进制包)。您可以点击此处下载您所需要的客户端。在macOS 和Windows上并不需要什么特殊的操作,只需双击所要下载的软件即可。在Ubuntu或其他类似的基于Debian的发行版上,对于modern模式的设备,在终端窗口中使用以下指令下载“DEB x64”:
sudo dpkg -i VNC-Viewer-6.19.325-Linux-x64.deb

对于其他Linux系统,请根据需要使用RPM或者独立的BIN,或通用脚本。安装完成后,输入“vncviewer”并按下回车键。您将会看到一个高级的GUI界面。在顶部,您需要输入Pi的地址,您可以通过在Pi终端输入“hostname -I”来找到该地址信息。另一种选择是使用适用于iPhone iOS 或Android的免费Fing应用程序。
地址格式为IPORTl。例如,在这个网络中,10.0.9.116:5900是我的Pi上的“:0”实例,而“:1”实例将使用端口5901,因此我输入10.0.9.116:5901。
输入地址后,按下回车键,然后稍等片刻。系统会提示您进行身份验证,并且可以设置VNC Viewer来存储登录信息。然后,您将直接进入Pi的桌面环境中。



通过网络/WAN连接Raspberry Pi
通过互联网连接到您的Pi这一过程有点复杂。您需要在路由器上设置端口转发,还需要将Pi设置为使用静态IP地址。使用安装或设置部分中的链接来设置一个静态IP地址,或者如果您的路由器包含此选项,可以在网络客户端列表中选择Pi,并设置DHCP地址保留。这样的话就可以保证Pi始终具有相同的IP地址了。
接下来,将外部端口20202/tcp通过端口转发传输到您的Pi端口22/tcp。如此一来就无需暴露VNC服务器,我们将能够确保与您的Pi之间的连接是尽可能安全的。RealVNC只为企业用户提供256位AES,但是我们暂时不需要购买,SSH可以提供很大的帮助。
将以下指令复制到Pi的终端窗口中:
sudo service ssh startsudo systemctl enable sshsudo apt-get updatesudo apt-get -y install ufwsudo ufw enablesudo ufw default denysudo ufw logging lowsudo ufw allow log 5900/tcpsudo ufw allow log 5901/tcpsudo ufw allow log 22/tcp

请务必使用“sudo raspi-config”或“passwd pi”更改默认密码,千万不要在“raspberry”上公开SSH密钥。
需要明确的是,请确保您将通过端口转发将20202 _TCP_传输到了Pi静态IP地址—端口22 _TCP_。
动态DNS?
现在一切都准备好了,您可以在工作场所,或者任何其他地方连接到您的Pi了。如何连接?您的Pi所在网络的外部地址是什么?
通过动态DNS,您就可以使用“一般”名称进行连接,从而解决这个问题了。“Example.com”中包含了一个使用“一般”名称的示例,并且您无需记住IP地址就可以实现连接。想要记住IP地址“93.184.216.34”似乎有些麻烦,因为您有太多需要记住的事情了。
但是,您可以轻松记住诸如“risingsun.csproject.org”之类的地址。让我们在您的Pi上安装一个动态DNS客户端,这样就可以保证这个名称始终指向您的Pi的外部网络地址了。
请在您的Pi终端粘贴以下指令:
apt-get updateapt-get -y install inadyn

您需要选择一个动态DNS服务商。如果您想要免费的,请使用FreeDNS。注册并使用指令sudo nano /etc/inadyn.conf来编辑“/etc/inadyn.conf:”。为方便起见,此处列出了相关参数:
period = 300# The FreeDNS username must be in lower case and# the password (max 16 chars) is case sensitiveprovider freedns.afraid.org {    username = lower-case-username    password = case-sensitive-pwd    hostname = some.example.com}

获取所有信息后,将这些指令粘贴到Pi的终端窗口:
# Start it nowsudo service inadyn start# Persist across rebootssudo systemctl enable inadyn

要连接到您的Pi,现在需要在您的工作站或者笔记本电脑上执行以下操作(这适用于macOS 和Linux,Windows上的SSH隧道不在本文讨论范围内):
ssh -l pi -p 20202 -L 5900:localhost:5900 \risingsun.csproject.org

这将为您的VNC通讯创建一个SSH隧道。对于Raspberry 2 B+及更高版本的型号,SSH并不会造成CPU利用率增高的问题,所以不用担心。
为了通过隧道连接,请在VNC Viewer中输入地址“127.0.0.1:5900”,然后通过本地SSH隧道连接到Pi上的VNC服务。
如有必要,请输入您的凭据,然后您将会返回到Pi的桌面环境。即使您在一个咖啡厅或者机场使用公共Wi-Fi也不用担心了。
当然,您也可以仅通过SSH连接到Pi,然后使用以下指令启动VNC服务ad-hoc:
nohup vncserver :0

这将会持续运行,直到您杀死进程(例如用“pkill -9 -U pi vncserver”指令)。
提升您的VNC体验

有奖问答:您可以做一些事情来提升VNC性能。一种方法是________________,以获得一个更加舒适的用户体验。
Tips:点击阅读原文,获得答案
请规范答题,连续答错将无法获得奖励哦~

回复

使用道具 举报

该用户从未签到

0

主题

452

帖子

0

精华

金牌会员

最后登录
2023-4-23
发表于 2022-9-6 14:41:11 | 显示全部楼层

回帖奖励 +5 ROHM金币

此帖仅作者可见

使用道具 举报

  • TA的每日心情
    开心
    2022-9-1 14:42
  • 签到天数: 1 天

    [LV.1]初来乍到

    2

    主题

    3182

    帖子

    0

    精华

    论坛元老

    最后登录
    2024-4-16
    发表于 2022-9-6 15:51:45 | 显示全部楼层

    回帖奖励 +5 ROHM金币

    此帖仅作者可见

    使用道具 举报

    该用户从未签到

    2248

    主题

    1万

    帖子

    1

    精华

    论坛元老

    最后登录
    2024-4-16
    发表于 2022-9-6 16:58:31 | 显示全部楼层

    回帖奖励 +5 ROHM金币

    此帖仅作者可见

    使用道具 举报

    该用户从未签到

    205

    主题

    1万

    帖子

    0

    精华

    论坛元老

    最后登录
    2023-6-10
    发表于 2022-9-6 22:17:01 | 显示全部楼层

    回帖奖励 +5 ROHM金币

    此帖仅作者可见

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条

    Archiver|手机版|小黑屋|罗姆半导体技术社区

    GMT+8, 2024-4-16 18:24 , Processed in 0.131188 second(s), 19 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表