- 一、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上部署
sudo apt install tftpd-hpa tftp-hpa #tftpd-hpa是服务器端 #tftp-hpa 是客户端2、创建tftp服务器的文件目录
可以在任意地方创建,例如home目录下
mkdir /home/tftpServer chmod 777 /home/tftpServer #需要修改权限为07773、修改配置文件 /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 restart5、云服务器安全组添加端口
在云服务器的安全组中添加如下端口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设置固定的端口。
修改 /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文件即为成功



