栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

回顾linux系统中的FTP

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

回顾linux系统中的FTP

文章目录

FTP匿名登录FTP本地用户登录FTP主动模式与被动模式

FTP主动模式FTP被动模式 yum仓的ftp源创建总结


FTP匿名登录

20端口用于建立数据连接,并传输文件数据21端口用于建立控制连接,并传输FTP控制命令
FTP数据连接分为主动模式和被动模式
主动模式:服务器主动发起数据连接
被动模式:服务器被动等待数据连接

#开启服务,关闭防火墙和增强型安全功能

systemctl stop firewalld
sstenforce 0
yum install -y vsftpdcd letc/ vsftpd/
cp vsftpd.conf vsftpd.conf.bak#备份文件
systemctl start vsftpd

设置匿名用户访问的FTP服务(最大权限)#修改配置文件

vim /etc/vsftpd/ vsftpd.conf
anonymous_enable=YEs#开启匿名用户访问。默认已开启
write_enable=YEs#开放服务器的写权限(若要上传,必须开启)。默认已开启
anon_umask=022#设置匿名用户所上传数据的权限掩码(反掩码)。
anon_upload_enable=YES#允许匿名用户..上.传文件。默认已注释,需取消注释
anon_mkdir_write_enable=YES#允许匿名用户创建(上传)目录。默认已注释,需取消注释
anon_other_write_enable=YES#允许删除、重命名、覆盖等操作。需添加
chmod 777 /var/ ftp/pub/#为匿名访问ftp的根目录下的pub子目录设置最大权限,以便匿名用户上传数据

#开启服务,关闭防火墙和增强型安全功能
systemctl start vsftpd
systemctl stop firewalld
setenforce 0
#匿名访问测试
在windows系统打开开始菜单,输入cmd命令打开命令提示符#建立ftp连接
ftp 192.168.80.10
#匿名访问,用户名为ftp,密码为空,直接回车即可完成登录
ftp> pwd
#匿名访问ftp的根目录为Linux系统的/var/ ftp/目录

ftp> ls#查看当前目录
ftp> cd pub#切换到pub自录
ftp> get文件名#下载文件到当前windows本地目录
ftp> put文件名#上传文件到ftp目录
ftp> quit#退出
FTP本地用户登录

设置本地用户验证访问ftp,并禁止切换到ftp以外的目录(默认登录的根目录为本地用户的家目录)

#修改配置文件

vim /etc/vsftpd/vsftpd.conf
local_enable=Yes              #启用本地用户
anonymous_enable=NO           #关闭匿名用户访问
write_enable=YES              #开放服务器的写权限(若要上传,必须开启)
local_umask=077               #可设置仅宿主用户拥有被上传的文件的权限(反掩码)
chroot_local_user=YES         #将访问禁锢在用户的宿主目录中
allow_writeable_chroot=YES    #允许被限制的用户主目录具有写权限
#anon mkdir write enable=YES  #注释
#anon other write enable=YES  #注释

#开启服务,关闭防火墙和增强型安全功能

systemctl start vsftpd
systemctl stop firewalld
setenforce 0

在网页中访问:

ftp 192.168.10.12
ftp: //zhangsan@192.168.10.12
修改匿名用户、本地用户登录的默认根目录
anon_root=/var/www/html            #anon_root针对匿名用户
local_root=/var/www/html           #local_root针对系统用户
使用user_list用户列表文件
vim /etc/vsftpd/user_list          //末尾添加zhangsan用户zhangsan
vim /etc/vsftpd/vsftpd.conf
userlist_enable=YES    #启用user_list用户列表文件
userlist_deny=NO       #设置白名单,仅允许user_list用户列表文件的用户访问。默认为YES,为黑名单禁用
FTP主动模式与被动模式 FTP主动模式

在主动模式的 FTP 中,客户端从一个随机的非系统端口(N > 1023)连接到 FTP 服务器的命令端口端口 21。然后,客户端开始监听端口 N+1,并将 FTP 命令端口 N+1 告诉 FTP 服务器,“请把数据发送给我的 N+1 端口”。然后,服务器将从本地数据端口 (端口20) 连接回客户端的数据端口,也就是 N+1 端口。

第 1 步,客户端的命令端口与服务器的命令端口连接并发送命令端口 1027。
第 2 步,服务器将一个 ACK 发送回客户端的命令端口。
第 3 步,服务器在其本地数据端口上启动连接,连接到前面指定的客户端的数据端口。
第 4 步,客户端返回 ACK。

但是,主动连接有时候会被客户端的防火墙阻止。

FTP被动模式

在被动模式的 FTP 中,客户端启动到服务器的两个连接,解决了防火墙阻止从服务器到客户端的传入数据端口连接的问题。FTP 连接建立后,客户端在本地打开两个随机的非系统端口 N 和 N + 1(N > 1023)。第一个端口连接服务器上的 21 端口,但是客户端这次将会发出 PASV 命令,也就是不允许服务器连接回其数据端口。这样,服务器随后会打开一个随机的非系统端口 P (P > 1023),并将 P 发送给客户端作为 PASV 命令的响应。然后客户端启动从端口 N+1 到端口 P 的连接来传输数据。


第 1 步,客户端在命令端口上与服务器连接,并发出 PASV 命令。
第 2 步,服务器使用端口 21进行响应ACK,告诉客户端发送数据传输请求。
第 3 步,客户端从自己的一个高位端口向服务器发送数据传输请求。
第 4 步,服务器将 ACK 发送回客户端的数据端口。

yum仓的ftp源创建

服务端:
yum -y install vsftpd
mkdir /var/ftp/centos7 #创建光盘挂载目录
mount /dev/sr0 /mnt #镜像挂载
cp -rf /mnt/* /var/ftp/centos7/ &
mkdir /var/ftp/other #创建目录repodata数据文件
cd /var/ftp/other
createrepo -g /mnt/repodata/repomd.xml ./ #工具建立仓库数据文件
systemctl start vsftpd

客户端:

cd /etc/yum.repo.d
mkdir bak.repo 
mv CentOS-*  bak.repo
vim centos7.repo
[centos7]               #仓库类别
named=centos7           #仓库名称 
baseurl=ftp://192.168.146.30/centos7      #URL 访问路径
enabled=1         #启用此软件仓库
gpgcheck=1        #验证软件包的签名
gpgkey=ftp://192.168.146.30/centos7/RPM-GPG-KEY-CentOS-7    #GPG 公钥文件的位置
 
[other]
name=centos7
baseurl=ftp://192.168.146.30/other
enabled=1     #启动此软件仓库
gpgcheck=0    #验证软件包的签名
yun clean all &&  yum makecache    #清除缓存并更新
验证: yum install -y httpd 
总结

FTP的两种登录方式:匿名登录与本地用户登录
FTP的主动模式与被动模式
yum仓的ftp源创建方法

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/706106.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号