# 文件传输 ## 1. 服务器手动挂载U盘 ```bash 查看挂载的分区 sudo fdisk -l 手动挂载 sudo mount /dev/sdb1 /mnt/ ``` ## 2. 服务器文件传输 ### ftp 文件传输协议(File Transfer Protocol,FTP)是在网络上进行文件传输的一套标准协议,工作在OSI模型的第七层,TCP模型的第四层,即应用层,使用TCP传输而不是UDP,客户端和服务器建立连接前经过一个三次握手的过程,保证客户端之间的连接是可靠的。默认端口21。传输文件类型为ASCII文件和二进制。 FTP允许用户以文件操作的方式(如文件的增、删、改、查、传送等)与另一主机相互通信。然而, 用户并不真正登录到自己想要存取的计算机上面而成为完全用户, 可用FTP程序访问远程资源, 实现用户往返传输文件、目录管理以及访问电子邮件等等, 即使双方计算机可能配有不同的操作系统和文件存储方式。 ```bash #输入ftp进入命令行; #连接使用open IP; #上传使用put filename #下载使用get filename #退出使用quit ftp >open 172.16.33.213 >put filename >get filename >quit #也可以用输入格式:ftp [hostname|ip] ftp 172.16.33.213 ``` ### ftps 一种多传输协议,相当于加密版的FTP。当你在FTP服务器上收发文件的时候,你面临两个风险。第一个风险是在上载文件的时候为文件加密。第二个风险是,这些文件在你等待接收方下载的时候将停留在FTP服务器上,这时你如何保证这些文件的安全。你的第二个选择(创建一个支持SSL的FTP服务器)能够让你的主机使用一个FTPS连接上载这些文件。这包括使用一个在FTP协议下面的SSL层加密控制和数据通道。一种替代FTPS的协议是安全文件传输协议(SFTP)。这个协议使用SSH文件传输协议加密从客户机到服务器的FTP连接。 FTPS是在安全套接层使用标准的FTP协议和指令的一种增强型FTP协议,为FTP协议和数据通道增加了SSL安全功能。FTPS也称作“FTP-SSL”和“FTP-over-SSL”。SSL是一个在客户机和具有SSL功能的服务器之间的安全连接中对数据进行加密和解密的协议。 和sftp连接方法类似,在windows中可以使用FileZilla等传输软件来连接FTPS进行上传,下载文件,建立,删除目录等操作,在FileZilla连接时,有显式和隐式TLS/SSL连接之分,连接时也有指纹提示。 SFTP 和FTPS都是为ftp连接加密,协议非常相似。 - ftps使用ssl协议加密。 - sftp借助ssh加密。 ### sftp 类似于ftp传输协议,属于ssh,但是有加密的过程,相比于ftp有更高的安全性。如果有服务器的端口不是默认的22,请在sftp后面加-P 端口号 即可。 ```bash $ sftp root@223.6.6.6 The authenticity of host ‘223.6.6.6 (223.6.6.6)’ can’t be established. ECDSA key fingerprint is SHA256:Hl/dKTFzL4lOlF8DIG5itaV4OAsZunC2AWlFGLjLfsg. Are you sure you want to continue connecting (yes/no)? yes【输入yes回车】 Warning: Permanently added ‘223.6.6.6’ (ECDSA) to the list of known hosts. root@223.6.6.6’s password:【输入223.6.6.6的root密码并回车】 Connected to 223.6.6.6. sftp> 将223.6.6.6服务器文件下载到223.5.5.5的home目录 sftp> get /var/www/renwole.txt /home/ 将223.5.5.5服务器文件上传到223.6.6.6服务器的mnt目录 sftp> put /home/renwole.txt /mnt/ 你如果不知道远程主机的目录是什么样, ls命令可以列出223.6.6.6服务器的当前目录列表 sftp> ls //和查看本地操作命令一样 sftp> pwd //查询223.6.6.6的当前工作目录 exit //退出当前机器,返回原始机器 ``` ### scp scp使用规则:scp -P 端口 文件路径 用户名@主机地址:远程目录如果想拷贝本地文件到另外一台ssh终端,可以使用以下命令 ```bash scp /renwole/mariadb.tar.gz root@223.6.6.6:/renwole123/ root@223.6.6.6’s password:【输入密码回车】 mariadb.tar.gz 8% 37MB 1.3MB/s 05:29 ETA 如果反过来操作,把远程主机的文件拷贝到当前系统,操作为 scp root@223.6.6.6:/renwole123/mariadb.tar.gz /renwole 如果你想拷贝文件夹以及文件夹内的所有文件,就加参数 -r 如果你的端口号不是22,那么需要在scp后加个 -P (区分大小写)端口号。建议加-C选项,因为这样可以启用SSH的压缩功能;传输速度更快 scp -P 6632 -C /renwole/mariadbroot@223.6.6.6:/renwole123/ ```