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(安全外壳协议) 、VNC 、FTP(传输协议) 。
- 关于FTP,可以看看这个科普视频:FTP,SFTP和TFTP 。
二、SSH
1.使用Win10普通终端
-
我在讲云服务器时也详细讲了一遍
SSH
的使用方法:基于Node.js与WebSocket搭建服务器 笔记 - 00 - 初建云服务器 。推荐教程:win10 开启ssh server服务 远程登录 。 -
大致上只需要记住以下一条Win10连接指令即可,Linux不需要配置什么(除了防火墙)。
ssh 用户名@IP地址
- ①记得Linux防火墙开放端口号;②如果连接过再连接时失败了,就删除配置文件重新连接。
2.使用软件 MobaXterm Personal
-
这是一款集众多小工具于一身的神器,可在Win10中使用。有免费版,也有收费版,有安装版,也有免安装版。很方便,本文的目的之一,其实也包含介绍该工具。
-
该软件的官网国内也可以上,挺快的,不卡顿。直接搜索软件名、找到官网,点击下载、点击免费、点击便携版。
- 下载完成后打开解压,点击exe打开软件,然后流程如下。
- 点击工具栏第一个图标
Session
;选择上方第一个图标SSH
。- 填表:
Remote host
填写连接的IP地址,Specify usename
选择用户名和密码,Port
填写端口号,默认ssh连接就是22.- 其他设置不需要改动,如果没有预设用户名和密码的,点图标创建。
- 需要填写的个信息分别是:“
Name
该预设的名字”,“Username
用户名”,“Password密码
”。注意预设的名字随便,只是在软件选择时显示,用户名和密码才是关键。- 最后点击
OK
连接,就会自动连接上了。
下面的教程操作就是在该SSH界面操作,因为是远程云服务器,该ssh窗口就是我的控制终端了。
MobaXterm Personal
工具的SSH连接,除了可以当远程终端外,还可以在左侧的工具栏中查看文件目录,很方便,可以在线浏览和修改文件,也能上传一些小文件。
三、VNC
- 可以参考教程:我是几个教程交叉看的,只看一个教程会出现新问题,为了解决新的问题就会再参考其他教程。
- 可以先安装我的步骤来,如果不成功再看其他教程。
1.Linux端设置:安装VNC服务 和 xfce4桌面服务
- 新主机上可能没有相关的下载源,然后报错,可以参考教程:Package ‘vnc4server‘ has no installation candidate,添加需要的源。
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
- 如果不修改配置文件,进入后可能会是全灰的界面,或是雪花屏。其原因是没有设置正确的桌面环境。参考教程的解释:windows下通过VNC图形化访问Ubuntu桌面环境。
#!/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 协议,实现一键蓝牙快速配网+远程控制。(附带源码)