FTP是FileTransferProtocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。在FTP的使用当中,用户经常遇到两个概念:“下载”(Download)和"上传"(Upload)。"下载"文件就是从远程主机拷贝文件至自己的计算机上;"上传"文件就是将文件从自己的计算机中拷贝至远程主机上。用Internet语言来说,用户可通过客户机程序向(从)远程主机上传(下载)文件。
FTP主要作用是提供文件的共享,互联网上的媒体资源和软件资源,绝大部分都是通过FTP服务器传递的。
FTP允许用户以文件操作的方式(如文件的增、删、改、查、传送等)与另一主机相互通信。然而, 用户并不真正登录到自己想要存取的计算机上面而成为完全用户, 可用FTP程序访问远程资源, 实现用户往返传输文件、目录管理以及访问电子邮件等等, 即使双方计算机可能配有不同的操作系统和文件存储方式。FTP 采用 Internet 标准文件传输协议 FTP 的用户界面, 向用户提供了一组用来管理计算机之间文件传输的应用程序。FTP 是基于客户———服务器(C/S)模型而设计的,在客户端与 FTP 服务器之间建立两个连接。
默认情况下FTP协议使用TCP端口中的 20和21这两个端口,其中20用于传输数据,21用于传输控制信息。但是,是否使用20作为传输数据的端口与FTP使用的传输模式有关,如果采用主动模式,那么数据传输端口就是20;如果采用被动模式,则具体最终使用哪个端口要服务器端和客户端协商决定。
我的centos 7中已经存在了,这里只是更新了
systemctl stop firewalld #关闭防火墙
systemctl disable firewalld
setenforce 0 #这是linux另一道防火墙
将/etc/selinux/config中修改内容为:SELINUX=disabled
yum list | grep vsftp #查看本地的ftp版本
yum -y install vsftpd. #安装vsftpd
systemctl start/enable vsftp # 启动FTP服务
systemctl stop firewalld #临时关闭防火墙
systemctl disable firewalld #关闭防火墙(下次开机时仍然生效)
vim /etc/selinux/config #修改SELINUX=disabled
setenforce 0
LFTP是一款非常著名的字符界面的文件传输工具。支持FTP、HTTP、FISH、SFTP、HTTPS和FTPS协议。
在客户端安装lftp
yum -y install lftp
利用lftp登录lftp服务器
lftp 172.16.23.128 #这是我的ip地址
查看ftp服务器下的文件:ls
下载文件abc.txt
get abc.txt
下载pub文件夹
mirror pub
查看下载的内容:位置就是当前位置
wget 是一个从网络上自动下载文件的自由工具,支持通过 HTTP、HTTPS、FTP 三个最常见的 TCP/IP协议 下载,并可以使用 HTTP 代理。“wget” 这个名称来源于 “World Wide Web” 与 “get” 的结合。
所谓自动下载,是指 wget 可以在用户退出系统的之后在继续后台执行,直到下载任务完成。
从前面搭建的ftp服务器上下载abc.txt
wget ftp://172.16.23.128/abc.txt
wget命令后面的-o表示指定下载文件放的位置(即存储位置)
查看下载结果
从ftp服务器上下载文件夹
wget -m ftp://172.16.23.128/pub
查看下载结果
创建一个文件5.txt,并写入内容
上传文件
put 5.txt
可以发现客户端是没有权限上传文件,仔细想想在实际生活中服务器的文件是很重要的,所以并不会允许客户端随意的上传文件,所以需要服务端放开指定客户端的权限。
下面是在FTP服务器上启动上传功能的流程:
配置FTP服务器的功能的开启和关闭的文件:vstfp.conf(内容如下)
vim /etc/vsftpd/vsftpd.conf
在vsftpd.conf启用禁用匿名账户(默认,比较方便)
anonymous_enable=YES#yes是允许匿名登录
anon_upload_enable=YES #启动上传文件功能
anon_mkdir_write_enable=YES #启动创建目录的能力
mkdir /var/ftp/upload
chmod 777 /var/ftp/upload #修改文件夹权限
完成上面后记得重启vsftpd服务
5. 客户端测试(在客户端虚拟机上面做)
lftp 172.16.23.128
touch 234.txt
echo 234 > 234.txt
lftp 172.16.23.128/upload #将文件上传到ftp服务器的upload目录下,这里直接登录进入了这个目录
上传文件:
put 234.txt
ls 可以看见我们的234.txt文件上传上去了
NFS也是一款,网络文件系统,英文Network File System(NFS),是由SUN公司研制的UNIX表示层协议(presentation layer protocol),能使使用者访问网络上别处的文件就像在使用自己的计算机一样。NFS是基于UDP/IP协议的应用,其实现主要是采用远程过程调用RPC机制,RPC提供了一组与机器、操作系统以及低层传送协议无关的存取远程文件的操作。RPC采用了XDR的支持。XDR是一种与机器无关的数据描述编码的协议,他以独立与任意机器体系结构的格式对网上传送的数据进行编码和解码,支持在异构系统之间数据的传送,多服务器节点同时挂载以及并发的写入。
两台centos 7虚拟机
主服务器IP地址:172.16.23.128
从机IP地址:172.16.23.137
systemctl stop firewalld
systemctl disable firewalld
vim /etc/selinux/config #修改SELINUX=disabled
setenforce 0
yum install -y nfs-utils
我这里已经装过了
4. 在主服务器上创建文件数据(后面测试用)
mkdir /webdata #创建一个文件夹
echo "nfs test2022" > /webdata/index.html #创建一个html文件
5. 配置NFS(/etc/exports是nfs的主配置文件)
vim /etc/exports
在exports中加入的内容如下:
/webdata 172.16.23.0/24(rw)
/webdata 指定发布资源的目录
172.16.23.0/24:允许访问nfs的客户机所在的网段,子网掩码是24位
(rw):客户机可读可写
systemctl start nfs-server
检查输出目录(可以看到我们在exports中配置的),若正常输出则配置成功
exportfs -v #可以查看我们发布了哪些文件资源
7. 客户机安装NFS客户端
yum install -y nfs-utils httpd
showmount -e 172.16.23.128
可以看到nfs服务器(主机器)释放的/webdata文件夹
9. 客户机上手动挂载
mount -f nfs 172.168.23.139:/webdata /var/www/html #这里的ip地址是nfs服务器主机的地址
此时我们可以查看/var/www/html/index.html(可以看当之前在主机上创建的html文件)
拓展:取消挂载是
umount -t nfs 172.168.23.139:/webdata /var/www/html
任意找一台处客户机以外的机器,通过elinks访问,这里由于我只创建了两台服务器,所以使用主服务器来访问客户服务器的web,注意两点:
yum install -y httpd
systemctl start httpd
yum install -y elinks
通过elink访问客户服务器web(显示的是index.html,因为/var/www/html默认作为web服务器文件夹内容)
elinks http://172.16.23.137
12. 在主服务器上更新index.html看客户服务器index.html是否发生变化
SSH是一种网络协议,用于计算机之间的加密登录。如果一个用户从本地计算机,使用SSH协议登录另一台远程计算机,我们就可以认为,这种登录是安全的,即使被中途截获,密码也不会泄露。最早的时候,互联网通信都是明文通信,一旦被截获,内容就暴露无疑。1995年,芬兰学者Tatu Ylonen设计了SSH协议,将登录信息全部加密,成为互联网安全的一个基本解决方案,迅速在全世界获得推广,目前已经成为Linux系统的标准配置。
rpm -qa | grep ssh
yum install openssh-server
systemctl start sshd
netstat -antp | grep sshd
使用ssh命令可以登录其他主机(如下是以root的身份登录ip为172.16.23.139这个机器,相当于获得了这台机器的控制权)