# 文件传输
## 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/
```