云服务器下,与嵌入式板子传递文件的几种方式 |FTP SFTP SCP TFTP NFS | 以及NFS 挂载失败常见问题
云服务器下,与嵌入式板子传递文件的几种方式
- 一、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 挂载失败常见问题相关推荐
- Python加载csv文件的两种方式
本文主要讲解下Python加载csv文件的两种方式,如果知道如何处理的就不必往下看了! 下面来简单介绍下. 实例中的数据集是kaggle的Digit Recognizer的train.csv文件,数据 ...
- django + python上传文件的两种方式
突然心血来潮,研究了下django+python上传文件的两种方式. 第一:直接采用文件读写的方式上传 1. settings.py文件中设置文件的存放路径和文件读取路径 MEDIA_ROOT = o ...
- 下面的log变量记录了云服务器上 当天上传的文件信息 其中第一列是文件名,第二列是文件大小 请编写一个程序,统计出不同类型的 文件的大小总和
下面的log变量记录了云服务器上 当天上传的文件信息 其中第一列是文件名,第二列是文件大小 请编写一个程序,统计出不同类型的 文件的大小总和 比如: jpeg 9988999 json 324324 ...
- 巧用linux云服务器下的的/dev/shm/,避开磁盘IO不给力!
巧用linux云服务器下的的/dev/shm/,避开磁盘IO不给力! 一.什么是tmpfs和/dev/shm/? tmpfs是Linux/Unix系统上的一种基于内存的文件系统.tmpfs可以使用您的 ...
- Linux云服务器下配置Scrapy并抓取数据
基础装备: Linux云服务器(阿里云Ubuntu 16.04): 建立远程连接的软件(这里用的是XShell): 友情链接: Scrapy入门教程:http://scrapy-chs.readt ...
- Centos8.2云服务器下安装和卸载Java JDK
Centos8.2云服务器下安装和卸载Java JDK 一.安装 二.卸载 一.安装 先查看下载本机上面有没有已经安装了JDK: java -version 没有安装. 先去官网下载相应的JDK. 下 ...
- 云服务器下能安装虚拟机吗,云服务器下能安装虚拟机吗
云服务器下能安装虚拟机吗 内容精选 换一换 Windows弹性云服务器虚拟化驱动异常(Tools没有正常运行).为保证弹性云服务器的正常使用,请参见本节内容进行修复.弹性云服务器虚拟化驱动异常会影响弹 ...
- 阿里云服务器不能发邮件禁用25端口的三种解决方法
分享使人快乐,遇到的坑通过博文分享给大家,总结解决办法使更多的人节省宝贵的时间去干其他的事,于是我决定写下了这篇博文: 阿里云发送SMTP邮件失败 阿里云服务器不能发邮件解决方法 ,第三种方法是可 ...
- java aio复制文件_java复制文件的4种方式及拷贝文件到另一个目录下的实例代码...
尽管Java提供了一个可以处理文件的IO操作类. 但是没有一个复制文件的方法. 复制文件是一个重要的操作,当你的程序必须处理很多文件相关的时候. 然而有几种方法可以进行Java文件复制操作,下面列举出 ...
最新文章
- C++: 构造函数和析构函数
- PHP实现归治算法,PHP排序算法系列之归并排序详解
- tailf、tail -f、tail -F 指令
- php web 目录遍历,php的目录遍历操作
- 11. 旋转数组的最小数字
- 嵌入网站的挖矿代码——Webmine
- 全网首发:成功解决UOS系统上运行JAVA程序任务栏名称问题
- arduino-esp32:LVGL中文字库(通用)
- 计算机论文研究思路怎么写,论文的研究思路模板范文 课题研究思路怎么写
- 如何制作网页教程:如何制作网页最简单的方法
- DEP(Data Execution Prevention) 数据执行保护
- 【钉钉杯大学生大数据挑战赛】初赛 A:银行卡电信诈骗危险预测 Baseline
- 拉文大学计算机科学,美国研究生语言双录取,这些大学有你中意的吗?
- docker 进入容器方法
- java——OOA,OOD,OOP
- USB 设备驱动之设备接入梳理(六)
- Atcoder Beginner Contest 260D - Draw Your Cards 解题报告
- 苹果电脑如何设置开启远程控制?
- PDF在线预览插件touchPDF.js:手机端预览
- Nature Communications:基于弥散张量成像的人类纤维束连接体方法面临的挑战
热门文章
- Android安全启动学习(四):device-mapper-verity (dm-verity)和哈希树
- 用正则匹配字符串中连续的字符
- 大黄酸偶联鸡卵白蛋白 rhein-OVA,BFNB/MEB/MEA/BFNH-OVA
- ichunqiu--try to pwn.md
- 求最大公约数(更相减损法)
- 芳华永在!一个老运维的20年奋斗史
- centos下安装mysql选什么版本_CentOS 7 安装MySQL 5.7 或安装指定版本MySQL-Go语言中文社区...
- matlab互相关运算
- 调用链相关理解和说明
- 如何统计列表中每个元素出现的次数