Linux开发板 - 01 - 远程通讯/控制(SSH/VNC/FTP)

Posted L建豪 忄YH

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux开发板 - 01 - 远程通讯/控制(SSH/VNC/FTP)相关的知识,希望对你有一定的参考价值。

Linux开发板 - 01 - 远程通讯/控制(SSH/VNC/FTP)

前言:最近向学校实验室借了一块Linux开发板(我一开始还以为是树莓派,本来想借树莓派的),开始接下来一段时间会记录学习过程。我借的是韦东山的JZ2440开发板,我本来以为韦东山和野火或正点原子类似,开发板收发,教程免费。万万没想到原来韦东山是二者都收费……虽然部分免费,但是很乱很旧。

说实话,我想着,都22年了,为什么还xp界面的教程还拿得出手啊,看得难受啊……(或许背后有我不懂的道理?如果有当我没说)

一、本文目的

Linux开发板 和 普通开发板 的学习过程 有什么不一样?

  • 我大致看了一下使用Linux开发板的路线,大致流程可总结为:代码工程在Linux环境下编译,然后下载到Linux开发板内,然后运行。和普通的开发板差不多,都是编译、下载、运行,三步走。唯一特别的就是编译需要在Linux环境下……

学习 Linux开发板 需要先准备什么?

  • 所以除了手上的Linux开发板外,我还需要一个能编译程序的Linux的系统。一般有两种选择:虚拟机,也是大部分推荐的,因为成本低;另一个就是实打实的装了Linux系统。如果是给废弃旧电脑装,装失败了还可以反复尝试,如果是只有一台电脑然后装双系统,那就有点危险了。
  • 因为我前段时间刚好租了一个轻量级云服务器(详情:基于Node.js与WebSocket搭建服务器 笔记 - 00 - 初建云服务器),所以我想着,能不能用这台云服务器来帮我编译程序呢,虽然配置低了点。但又不是不能用 ~~

跳过第一步安装Linux,“本文目的”是第二步。

  • 在装好Linux系统后,难免需要与其他主机通信。比如最基本的传文件,把pc已有的文件弄到Linux系统上。
  • 以前比较笨。如果是工程的话就pc上传git,linux再从git下载。又或者直接用u盘传输。因为我是用废弃旧电脑实打实的安装ubuntu(Linux)。又或者,可以使用宝塔面板等系统,上传文件或远程控制。
  • 为了更贴合实际工作(一般也都是24小时运作的云服务器吧),现在尝试使用云服务器学习Linux。所以学习常规的远程通讯方式:SSH/VNC/FTP

1.相关概念

二、SSH

1.使用Win10普通终端

ssh 用户名@IP地址
  • ①记得Linux防火墙开放端口号;②如果连接过再连接时失败了,就删除配置文件重新连接。

2.使用软件 MobaXterm Personal

  • 这是一款集众多小工具于一身的神器,可在Win10中使用。有免费版,也有收费版,有安装版,也有免安装版。很方便,本文的目的之一,其实也包含介绍该工具。

  • 该软件的官网国内也可以上,挺快的,不卡顿。直接搜索软件名、找到官网,点击下载、点击免费、点击便携版。

在这里插入图片描述

  • 下载完成后打开解压,点击exe打开软件,然后流程如下。
  1. 点击工具栏第一个图标Session;选择上方第一个图标SSH
  2. 填表:Remote host填写连接的IP地址,Specify usename选择用户名和密码,Port填写端口号,默认ssh连接就是22.
  3. 其他设置不需要改动,如果没有预设用户名和密码的,点图标创建。
  4. 需要填写的个信息分别是:“Name该预设的名字”,“Username用户名”,“Password密码”。注意预设的名字随便,只是在软件选择时显示,用户名和密码才是关键。
  5. 最后点击OK连接,就会自动连接上了。

在这里插入图片描述

下面的教程操作就是在该SSH界面操作,因为是远程云服务器,该ssh窗口就是我的控制终端了。

  • MobaXterm Personal工具的SSH连接,除了可以当远程终端外,还可以在左侧的工具栏中查看文件目录,很方便,可以在线浏览和修改文件,也能上传一些小文件。

三、VNC

  • 可以参考教程:我是几个教程交叉看的,只看一个教程会出现新问题,为了解决新的问题就会再参考其他教程。
  • 可以先安装我的步骤来,如果不成功再看其他教程。
  1. 如何在Ubuntu 20.04上安装和配置VNC
  2. Windows下通过VNC访问Linux服务器(可视化界面)
  3. windows下通过VNC图形化访问Ubuntu桌面环境

1.Linux端设置:安装VNC服务 和 xfce4桌面服务

vim工具的退出指令是:wq,其中冒号代表指令,w代表保存,q代表退出。输入指令是i。更多操作可以参考:Linux Vim三种工作模式

sudo vim /etc/apt/sources.list
  • 在文本末尾加上。
 deb http://archive.ubuntu.com/ubuntu/ bionic universe
  • 使用指令更新源,等待更新完毕。
sudo apt update
  • 安装软件,输入如下指令。
sudo apt-get install vnc4server
  • 在终端输入指令,开启vnc服务,冒号后的数值代表端口号,完整的默认端口号5902,如果后面的数字是1,那就是5901。数字从1开始。记得,如果是云服务器要开放防火墙,输入完整的端口号。
vncserver :2
  • 第一次会有提示需要设定密码,成功后会显示类似如下信息。

New ‘VM-4-11-ubuntu:2 (ubuntu)’ desktop is VM-4-11-ubuntu:2

Starting applications specified in /home/ubuntu/.vnc/xstartup
Log file is /home/ubuntu/.vnc/VM-4-11-ubuntu:2.log

  • 其中文件/home/ubuntu/.vnc/xstartup就是配置文件,我们需要修改一些配置文件。使用以下指令打开配置文件。
sudo vim /home/ubuntu/.vnc/xstartup
#!/bin/sh                                                                       

# Uncomment the following two lines for normal desktop:
# unset SESSION_MANAGER
# exec /etc/X11/xinit/xinitrc


[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
x-window-manager &
  • 文件内有一段注释写着:“对普通的桌面,取消以下两行注释”,我的是云服务器,所以没有普通桌面。我需要设定一个新的“桌面服务”(本文暂不扩展探究显示普通桌面的设置)。参考教程使用xfce4桌面服务,把最后一行的注释掉,然后添加以下内容。添加完后保存退出。
#下面这块主要是针对运用xfce4管理桌面
x-session-manager & xfdesktop & xfce4-panel &
xfce4-menu-plugin &
xfsettingsd &
xfconfd &
xfwm4 &
  • 修改完配置后,使用以下指令安装xfce4桌面服务。安装过程中,终端会有个类似弹窗的界面,按一下回车确认即可。
sudo apt install xfce4 xfce4-goodies
  • 安装完毕后使用指令关闭vnc服务,再启动vnc,Linux端就算完成了。
vncserver -kill :2
vncserver :2

2.Win10端设置:RealVNC

  • 该软件也是可以免费白嫖使用的,下载方式也是搜索官网下载,也有免安装版。请看下面gif动图。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NK3ubWSr-1625493919074)(/img/20217520403900.gif)]

  • 可以注意到在软件内新建窗口后,只输入了2个内容,第一个是IP地址:端口号,第二个是一个窗口名字,随便写。重点是第一个,端口是只需要填缩写(比如后缀2)就可以了。
  • 创建窗口后,第一次打开窗口时会弹出需要输入密码,注意这个就是前面在Linux中设定vnc服务时填写的密码,一般要求6位以上。同时注意到窗口上还写着IP地址::完整的端口号,端口号被自动补全了,表示590就是公认默认vnc连接端口(?)。
  • MobaXterm Personal软件也有vnc连接功能,不过我感觉好像不太好用,所以就选择之前用习惯的RealVNC

四、FTP

参考教程:Ubuntu系统搭建FTP服务器,这篇教程讲得和完整,一篇就够用了。

1.Linux端设置

  • 安装软件包
sudo apt-get install vsftpd
  • 通过查看版本,判断是否安装成功
vsftpd -version
  • 修改配置文件(和上面操作类似)。
sudo vim /etc/confign
  • 你可以在文本内看到以下被注释掉的代码,细心的找出他们,然后一条条取消注释
anonymous_enable=NO

local_enable=YES

write_enables=YES

chroot_list_enable=YES

chroot_list_file=/etc/vsftpd.chroot_list

secure_chroot_dir=/var/run/vsftpd/empty

pam_service_namevsftpd

rsa_cert_file=/etc/ss1/certs/ss1-cert-snakeoil.pem

rsa_private_key_file=/etc/ss1/private/ss1-certsnakeoil.key

ss1_enable=NO
  • 同时,还需要在文本的最后,添加上一段代码,这个代码作用是指定FTP连接上后,默认处于的文件夹。该文件夹默认没有,要自己手动创建。
local_root=/home/用户目录/ftp
allow_writeable_chroot=YES
  • 开启FTP服务,在教程里还有一段修改文件夹权限的,感觉不修改也没问题吧。如果是自己用的话
sudo /etc/init.d/vsftpd restart
  • 如果看到如下提示,就表示FTP服务器正常开启并运行了。
Restarting vsftpd (via systemctl):vsftpd.service

2.Win10端设置

1)使用文件浏览器访问

  • 可以选择直接使用文件夹访问!Win10的文件夹居然有这种功能……直接在文件浏览器中输入网址即可。
ftp://IP地址/
  • 如果是第一次进入,是会提示需要用户名和密码的,这个是ubuntu的用户名和密码。然后就会到达之前设定好的ftp文件夹中,接着就是正常的拖拽文件操作了。

2)使用软件 MobaXterm Personal

  • 操作和上面的类似,在选择用户时,我直接选择了在ssh中已经设置好的预设,端口默认21,输入好IP地址后就可以使用了。

在这里插入图片描述

  • 和使用文件浏览器打开差不多,都是默认直接打开了预设的ftp文件。注意,我无法返回ftp文件夹的上一级中目录。表示我只能在该目录下进行文件传输下载或修改。(暂时够用,就不改了

五、总结

1.共同点 与 差异点

  • 共同点:SSH、VNC、FTP都可以进行文件传输,且文件传输的专用程度是逐渐递增。
  • 差异点 - SSH:主要命令行操作,连接时Linux设置少,登陆时,需要用Linux的用户名和密码;
  • 差异点 - VNC:主要图形界面操作,连接时Linux设置多,登陆时,需要用vnc的专属密码;
  • 差异点 - FTP:主要文件界面操作,连接时Linux设置中,登陆时,需要用Linux的用户名和密码;

2. 个人使用

  • 用云服务器没有核显,只有单核+2G内存,用VNC显示图形界面时,卡得要死,所以不适合。因为我是用云服务器,所以要操作就一定要SSH远程登陆终端。上传文件用FTP挺方便的,直接使用文件浏览器查看,十分方便。

*拖稿几天,终于写完了。*如有错漏请评论提出,我经常上线,看到后会修正的。包括错别字。

以上是关于Linux开发板 - 01 - 远程通讯/控制(SSH/VNC/FTP)的主要内容,如果未能解决你的问题,请参考以下文章

微信小程序控制硬件16 安信可 ESP32-S 开发板实现移植腾讯物联开发平台蓝牙 llsync 协议,实现一键蓝牙快速配网+远程控制。(附带源码)

微信小程序控制硬件16 安信可 ESP32-S 开发板实现移植腾讯物联开发平台蓝牙 llsync 协议,实现一键蓝牙快速配网+远程控制。(附带源码)

2020毕业设计选用4412开发板,实战教程,小成果不放过

全国首家linux开发板支持OTA远程自动升级 为您的学习保驾护航

SSH协议远程开发板Linux系统

物联网Arduino Uno开发板连接阿里云实现云端远程控制LED灯开关