Linux网络-文件传输协议之FTP服务(附带命令及截图)

目录

一.FTP简介

二.FTP的数据模式

1.主动模式

2.被动模式

3.两种模式比较

三.安装配置vsftpd

1.安装vsftpd

1.1.安装前关闭防火墙

1.2.安装vsftpd

1.3.查看

1.4.备份

2.配置

3.重启后生效

四.相关实验

1.以win为例

1.1.设置并测试测试连通性

1.2.在终端里创建目录

​1.3.在虚拟机win里查看

1.4.在终端里创建文件

1.5.更改路径并下载

2.设置匿名用户(win为例)

2.1.关闭匿名用户

2.2.创建匿名用户

2.3.匿名用户无法登录

2.4.非匿名用户可以登录

3.设置白名单黑名单

3.1.进入设置

3.2.设置白名单

3.3.添加用户

3.4.登录成功

3.5.设置黑名单

3.6.登录失败


一.FTP简介

FTP是FileTransferProtocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet

上的控制文件的双向传输。同时,它也是一个应用程序(Application)基于不同的操作系统有不同

的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件

  • FTP服务器默认使用TCP协议的20、21端口与客户端进行通信
  • 20端口用于建立数据连接,并传输文件数据
  • 21端口用于建立控制连接,并传输FTP控制命令

二.FTP的数据模式

1.主动模式

  • 服务器主动发起数据连接

在主动模式下,FTP客户端随机开启一个大于1024的端口N向服务器的21号端口发起连接,发送

FTP用户名和密码,然后开放N+1号端口进行监听,并向服务器发出PORT N+1命令,告诉服务端

客户端采用主动模式并开放了端口。FTP服务器接收到PORT命令后,会用其本地的FTP数据端口

(通常是20)来连接客户端指定的端口N+1,进行数据传输

2.被动模式

  • 服务器被动等待数据连接

在被动模式下,FTP客户端随机开启一个大于1024的端口N向服务器的21号端口发起连接,发送用

户名和密码进行登陆,同时会开启N+1端口。然后向服务器发送PASV命令,通知服务器自己处于

被动模式。服务器收到命令后,会开放一个大于1024的端口P(端口P的范围是可以设置的,后面

会说到这个是很重要的)进行监听,然后用PORT P命令通知客户端,自己的数据端口是P。客户

端收到命令后,会通过N+1号端口连接服务器的端口P,然后在两个端口之间进行数据传输

3.两种模式比较

  • 主动模式传送数据时是“服务器”连接到“客户端”的端口(客户端开启数据端口)
  • 被动模式传送数据是“客户端”连接到“服务器”的端口(服务端开启数据端口)
  • 主动模式需要客户端必须开放端口给FTP服务端,很多客户端都是在防火墙内,开放端口给FTP服务器访问比较困难
  • 被动模式需要服务器端开放端口给客户端连接就行了

三.安装配置vsftpd

1.安装vsftpd

1.1.安装前关闭防火墙

systemctl stop firewalld

systemctl disable firewalld

setenforce 0

vim /etc/selinux/config

1.2.安装vsftpd

rpm -qc vsftpd

yum install -y vsftpd

1.3.查看

cd /etc/vsftpd

ls

1.4.备份

cp vsftpd.conf{,.bak}

2.配置

vim /etc/vsftpd/vsftpd.conf

3.重启后生效

systemctl restart vsftpd

systemctl enable vsftpd

netstat -lntp

四.相关实验

1.以win为例

1.1.设置并测试测试连通性

1.2.在终端里创建目录

cd /var/ftp

ls

pwd

mkdir xx01

ls


1.3.在虚拟机win里查看

1.4.在终端里创建文件

echo 'zx like xuexi' > zx.txt

ls

1.5.更改路径并下载

2.设置匿名用户(win为例)

2.1.关闭匿名用户

2.2.创建匿名用户

useradd xx

echo 123456 | passwd --stdin xx

useradd xy

echo 123456 | passwd --stdin xy

systemctl restart vsftpd

2.3.匿名用户无法登录

2.4.非匿名用户可以登录

3.设置白名单黑名单

3.1.进入设置

vim /etc/vsftpd/vsftpd.conf

3.2.设置白名单

3.3.添加用户

vim user_list

3.4.登录成功

3.5.设置黑名单

3.6.登录失败

  • 34
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux网络编程下实现的FTP服务器项目是一个包含客户端和服务端的项目,主要用于实现客户端对服务器上的文件进行展示、显示路径、删除、上传、下载等功能,同时也可以对客户端本身文件进行展示、显示路径、删除文件等功能。通过该项目,用户可以利用FTP协议Linux环境下进行文件传输操作。 为了实现FTP服务器的文件传输功能,可以参考以下步骤: 1. 首先,需要编写FTP服务器的代码。可以使用C语言编写,基于Linux网络编程相关的API和库函数,如socket、bind、listen、accept等。编写的服务器代码可以实现文件的上传和下载功能。 2. 在服务器代码中,需要处理客户端的连接请求,并建立与客户端之间的数据通信。可以使用socket函数创建服务器套接字,并使用bind函数将服务器套接字绑定到指定的IP地址和端口号。使用listen函数监听客户端连接请求,并使用accept函数接受客户端的连接请求,建立与客户端之间的通信。 3. 一旦与客户端建立连接,服务器可以接收客户端发送的命令,并根据命令执行相应的操作。例如,当客户端发送上传文件命令时,服务器可以接收客户端发送的文件数据,并保存到服务器的指定目录下。类似地,当客户端发送下载文件命令时,服务器可以读取服务器上的指定文件,并将文件数据发送给客户端。 4. 在客户端代码中,用户可以通过命令行或者形界面与服务器进行交互。用户可以输入相应的命令来上传文件服务器,或者从服务器下载文件到本地。客户端可以使用Linux系统提供的FTP客户端工具,或者自己编写FTP客户端代码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值