栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

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

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

云服务器下,与嵌入式板子传递文件的几种方式
  • 一、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、修改配置文件
      • mountd
      • nlockmgr
    • 4、重启服务器
    • 5、云服务器安全组添加端口
    • 6、测试

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

TFTP_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 reload
	sudo /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 *(rw,sync,no_root_squash,no_subtree_check)

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

mountd

修改 /etc/default/nfs-kernel-server

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

修改 /etc/sysctl.conf

系统控制文件,用于配置系统信息。其中配置的内容对应了 /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  service
    100000    4   tcp    111  portmapper
    100000    3   tcp    111  portmapper
    100000    2   tcp    111  portmapper
    100000    4   udp    111  portmapper
    100000    3   udp    111  portmapper
    100000    2   udp    111  portmapper
    100005    1   udp  10000  mountd
    100005    1   tcp  10000  mountd
    100005    2   udp  10000  mountd
    100005    2   tcp  10000  mountd
    100005    3   udp  10000  mountd
    100005    3   tcp  10000  mountd
    100003    3   tcp   2049  nfs
    100003    4   tcp   2049  nfs
    100227    3   tcp   2049
    100003    3   udp   2049  nfs
    100227    3   udp   2049
    100021    1   udp  10013  nlockmgr
    100021    3   udp  10013  nlockmgr
    100021    4   udp  10013  nlockmgr
    100021    1   tcp  10013  nlockmgr
    100021    3   tcp  10013  nlockmgr
    100021    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文件即为成功

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/511791.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号