云服务器下,与嵌入式板子传递文件的几种方式

  • 一、ftp、sftp、scp
    • 1、ftp
    • 2、sftp
    • 3、scp
  • 二、tftp
    • 1、下载tftp
    • 2、创建tftp服务器的文件目录
    • 3、修改配置文件
      • /etc/default/tftpd-hpa
      • /etc/xinetd.d/tftp
    • 4、重启服务器
    • 5、云服务器安全组添加端口
    • 6、测试
  • 三、nfs
    • 1、下载
    • 2、创建nfs服务器的文件目录
    • 3、修改配置文件
      • /etc/exports
      • /etc/default/nfs-kernel-server
      • /etc/sysctl.conf
    • 4、重启服务器
    • 5、云服务器安全组添加端口
    • 6、测试
  • 四、常见错误
    • 1、==mount.nfs: access denied by server while mounting xxx==
    • 2、==nfs time out xxx==

注:本文使用的是阿里云,其他云服务器的安全组配置应该大同小异
想一步到位的可以直接看 三、nfs

一、ftp、sftp、scp

三者均为文件传输协议,传递单一文件,需要帐号与密码

1、ftp

命令:

ftp ip
例如:
ftp 192.168.1.1

使用put上传文件,get下载文件

具体使用方法

2、sftp

命令:

sftp user@ip
例如:
sftp root@192.168.1.1

同样使用put上传,get下载。不同的是sftp基于ssh,更安全。

3、scp

命令:

上传:scp 本地文件 目标地址:/文件目录

 scp localfile user@ip:/direction例如:scp temp root@192.168.1.1:/home

下载:scp 目标地址:/文件 本地目录

 scp user@ip:/direction/remotefile localdir/例如:scp root@192.168.1.1:/home/temp ./

如果远端的ssh的端口号不为22,例如为222 则命令为:

上传:scp -P 222 temp root@192.168.1.1:/home
下载:scp -P 222 root@192.168.1.1:/home/temp ./

scp同样是基于ssh的,十分安全。但相比于sftp,需要知道文件的确切位置。


以上三种方法在板子上操作起来都十分不方便,没办法快速的传递多个文件。

二、tftp

玩过Linux嵌入式开发板的对这个协议应该不陌生,许多课程也使用该协议传递文件。
下面介绍如何在Ubuntu 20.04.3上部署

1、下载tftp

sudo apt install tftpd-hpa tftp-hpa
#tftpd-hpa是服务器端
#tftp-hpa 是客户端

2、创建tftp服务器的文件目录

可以在任意地方创建,例如home目录下

mkdir /home/tftpServer
chmod 777 /home/tftpServer #需要修改权限为0777

3、修改配置文件

/etc/default/tftpd-hpa

# /etc/default/tftpd-hpaTFTP_USERNAME="tftp"
TFTP_DIRECTORY="/home/tftpServer"  #目录与第2步创建的一致
TFTP_ADDRESS=":69"
TFTP_OPTIONS="-l -c -s"

/etc/xinetd.d/tftp

server tftp {ocket_type      = dgram
protocol        = udp
wait            = yes
user            = root
server          = /usr/sbin/in.tftpd
server_args     = -s /home/tftpServer  -c  #目录与第2步创建的一致
disable         = no                           #一定得是no
er_source       = 11
cps             = 100 2
}

4、重启服务器

 sudo /etc/init.d/tftpd-hpa restart sudo /etc/init.d/xinetd reloadsudo /etc/init.d/xinetd restart

5、云服务器安全组添加端口

在云服务器的安全组中添加如下端口

6、测试

服务器 在/home/tftpServer 目录下放文件temp

板子使用:
下载:


tftp -g -r remoteFile ip
例如:
tftp -g -r temp 192.168.1.1

上传:

tftp -p -l localFile ip
例如:
tftp -p -l temp 192.168.1.1

三、nfs

这是最推荐的方法,以上的方法,都无法做到多文件互通共享,而nfs是最方便的

板子可通过nfs挂载服务器的一个文件目录到板子的任意目录下(一般为/mnt)

服务器对nfs服务器文件目录做的修改,在板子上可直接看到。而且对于内存空间小的板子来说,可以使用更大的空间存储文件

下面介绍如何在云服务器上使用nfs服务器

1、下载

sudo apt-get install nfs-kernel-server

2、创建nfs服务器的文件目录

mkdir /home/nfsShare
sudo chmod 777 /home/nfsShare

3、修改配置文件

/etc/exports

添加:

/home/nfsShare *(insecure,rw,sync,no_root_squash,no_subtree_check)

NFS服务需要开启 mountd,nfs,nlockmgr,portmapper,rquotad这5个服务.
其中nfs、portmapper的端口是固定的.
另外 mountd,nlockmgr 服务的端口是随机分配的.
所以需要给mountd,nlockmgr设置固定的端口。

/etc/default/nfs-kernel-server

修改mountd端口

#将mountd 端口号固定为10000
RPCMOUNTDOPTS="--manage-gids --port 10000"

/etc/sysctl.conf

修改 nlockmgr端口

系统控制文件,用于配置系统信息。其中配置的内容对应了 /proc/sys/ 目录下的子目录及文件。

需要使用 sysctl -p 来生效配置。

# nfs 固定nlockmgr端口号
fs.nfs.nlm_udpport=10013
fs.nfs.nlm_tcpport=10013

4、重启服务器

sysctl -p
systemctl restart rpcbind.service
systemctl restart nfs.service
sudo /etc/init.d/nfs-kernel-server restart

5、云服务器安全组添加端口

查看使用的端口号是否为配置的端口号

rpcinfo -p
结果:program vers proto   port  service100000    4   tcp    111  portmapper100000    3   tcp    111  portmapper100000    2   tcp    111  portmapper100000    4   udp    111  portmapper100000    3   udp    111  portmapper100000    2   udp    111  portmapper100005    1   udp  10000  mountd100005    1   tcp  10000  mountd100005    2   udp  10000  mountd100005    2   tcp  10000  mountd100005    3   udp  10000  mountd100005    3   tcp  10000  mountd100003    3   tcp   2049  nfs100003    4   tcp   2049  nfs100227    3   tcp   2049100003    3   udp   2049  nfs100227    3   udp   2049100021    1   udp  10013  nlockmgr100021    3   udp  10013  nlockmgr100021    4   udp  10013  nlockmgr100021    1   tcp  10013  nlockmgr100021    3   tcp  10013  nlockmgr100021    4   tcp  10013  nlockmgr

上面打印的所有端口都得开放,不仅只是2049这个端口


6、测试

在nfs服务器文件目录下,添加文件temp

在板子上执行

mount -t nfs -o nolock  192.168.1.1:/home/nfsShare /mnt -o proto=tcp

可以在板子的/mnt目录下看到temp文件即为成功

四、常见错误

1、mount.nfs: access denied by server while mounting xxx

可能是因为我们设定的固定端口号过大,修改/etc/exports

/home/nfsShare *(insecure,rw,sync,no_root_squash,no_subtree_check)

2、nfs time out xxx

可能是防火墙,关闭防火墙即可

如果是云服务器,则可能是端口未开放,可以看本文第三章的第3节

云服务器下,与嵌入式板子传递文件的几种方式 |FTP SFTP SCP TFTP NFS | 以及NFS 挂载失败常见问题相关推荐

  1. Python加载csv文件的两种方式

    本文主要讲解下Python加载csv文件的两种方式,如果知道如何处理的就不必往下看了! 下面来简单介绍下. 实例中的数据集是kaggle的Digit Recognizer的train.csv文件,数据 ...

  2. django + python上传文件的两种方式

    突然心血来潮,研究了下django+python上传文件的两种方式. 第一:直接采用文件读写的方式上传 1. settings.py文件中设置文件的存放路径和文件读取路径 MEDIA_ROOT = o ...

  3. 下面的log变量记录了云服务器上 当天上传的文件信息 其中第一列是文件名,第二列是文件大小 请编写一个程序,统计出不同类型的 文件的大小总和

    下面的log变量记录了云服务器上 当天上传的文件信息 其中第一列是文件名,第二列是文件大小 请编写一个程序,统计出不同类型的 文件的大小总和 比如: jpeg 9988999 json 324324 ...

  4. 巧用linux云服务器下的的/dev/shm/,避开磁盘IO不给力!

    巧用linux云服务器下的的/dev/shm/,避开磁盘IO不给力! 一.什么是tmpfs和/dev/shm/? tmpfs是Linux/Unix系统上的一种基于内存的文件系统.tmpfs可以使用您的 ...

  5. Linux云服务器下配置Scrapy并抓取数据

    基础装备: Linux云服务器(阿里云Ubuntu 16.04):   建立远程连接的软件(这里用的是XShell): 友情链接: Scrapy入门教程:http://scrapy-chs.readt ...

  6. Centos8.2云服务器下安装和卸载Java JDK

    Centos8.2云服务器下安装和卸载Java JDK 一.安装 二.卸载 一.安装 先查看下载本机上面有没有已经安装了JDK: java -version 没有安装. 先去官网下载相应的JDK. 下 ...

  7. 云服务器下能安装虚拟机吗,云服务器下能安装虚拟机吗

    云服务器下能安装虚拟机吗 内容精选 换一换 Windows弹性云服务器虚拟化驱动异常(Tools没有正常运行).为保证弹性云服务器的正常使用,请参见本节内容进行修复.弹性云服务器虚拟化驱动异常会影响弹 ...

  8. 阿里云服务器不能发邮件禁用25端口的三种解决方法

    分享使人快乐,遇到的坑通过博文分享给大家,总结解决办法使更多的人节省宝贵的时间去干其他的事,于是我决定写下了这篇博文: 阿里云发送SMTP邮件失败   阿里云服务器不能发邮件解决方法 ,第三种方法是可 ...

  9. java aio复制文件_java复制文件的4种方式及拷贝文件到另一个目录下的实例代码...

    尽管Java提供了一个可以处理文件的IO操作类. 但是没有一个复制文件的方法. 复制文件是一个重要的操作,当你的程序必须处理很多文件相关的时候. 然而有几种方法可以进行Java文件复制操作,下面列举出 ...

最新文章

  1. C++: 构造函数和析构函数
  2. PHP实现归治算法,PHP排序算法系列之归并排序详解
  3. tailf、tail -f、tail -F 指令
  4. php web 目录遍历,php的目录遍历操作
  5. 11. 旋转数组的最小数字
  6. 嵌入网站的挖矿代码——Webmine
  7. 全网首发:成功解决UOS系统上运行JAVA程序任务栏名称问题
  8. arduino-esp32:LVGL中文字库(通用)
  9. 计算机论文研究思路怎么写,论文的研究思路模板范文 课题研究思路怎么写
  10. 如何制作网页教程:如何制作网页最简单的方法
  11. DEP(Data Execution Prevention) 数据执行保护
  12. 【钉钉杯大学生大数据挑战赛】初赛 A:银行卡电信诈骗危险预测 Baseline
  13. 拉文大学计算机科学,美国研究生语言双录取,这些大学有你中意的吗?
  14. docker 进入容器方法
  15. java——OOA,OOD,OOP
  16. USB 设备驱动之设备接入梳理(六)
  17. Atcoder Beginner Contest 260D - Draw Your Cards 解题报告
  18. 苹果电脑如何设置开启远程控制?
  19. PDF在线预览插件touchPDF.js:手机端预览
  20. Nature Communications:基于弥散张量成像的人类纤维束连接体方法面临的挑战

热门文章

  1. Android安全启动学习(四):device-mapper-verity (dm-verity)和哈希树
  2. 用正则匹配字符串中连续的字符
  3. 大黄酸偶联鸡卵白蛋白 rhein-OVA,BFNB/MEB/MEA/BFNH-OVA
  4. ichunqiu--try to pwn.md
  5. 求最大公约数(更相减损法)
  6. 芳华永在!一个老运维的20年奋斗史
  7. centos下安装mysql选什么版本_CentOS 7 安装MySQL 5.7 或安装指定版本MySQL-Go语言中文社区...
  8. matlab互相关运算
  9. 调用链相关理解和说明
  10. 如何统计列表中每个元素出现的次数