指定chroot_list_enable=YES时,名单文件的路径
(图片来源网络,侵删)pam_service_name 设置PAM服务的名称
userlist*_enable* 是否启用用户名单
tcp_wrappers* 是否启用tcp包装器
listen* 是否持续监听客户端请求
listen*_ipv6* 是否监听IPV6端口
connect*_from*_port*_20* 是否使用20端口传输数据
xferlog*_std*_format* 是否使用标准格式记录日志
(图片来源网络,侵删)(2) 配置文件修改
vim /etc/vsftpd/vsftpd.conf
添加:pasv_promiscuous=YES
ftp> quote pasv
227 Entering Passive Mode (192,168,0,112,164,248).
ftp> passive
Passive mode on.
(图片来源网络,侵删)ftp> ls
227 Entering Passive Mode (192,168,0,112,169,241).
425 Security: Bad IP connecting.
这个原因是因为服务器本身设置了两个ip地址
解决办法是
vim /etc/vsftpd/vsftpd.conf
添加:pasv_promiscuous=YES
ftp> quote pasv
227 Entering Passive Mode (192,168,0,112,143,83).
ftp> passive
Passive mode on.
ftp> ls
227 Entering Passive Mode (192,168,0,112,85,218).
150 Here comes the directory listing.
drwx2 1001 1001 4096 Mar 06 01:46 test
######################################
什么叫做PASV mode(被动模式传送)?他是如何工作的?
FTP的连接一般是有两个连接的,一个是客户程序和服务器传输命令的,另一个是数据传送的连接。
FTP服务程序一般会支持两种不同的模式:
一种是Port模式
一种是Passive模式(Pasv Mode),
主动模式和被动模式的区别:
先假设客户端为C,服务端为S.
Port模式:
当客户端C向服务端S连接后,使用的是Port模式,那么客户端C会发送一条命令告诉服务端S(客户端C在本地打开了一个端口N在等着你进行数据连接),当服务端S收到这个Port命令后就会向客户端打开的那个端口N进行连接,这种数据连接就生成了。
Pasv模式:
当客户端C向服务端S连接后,服务端S会发信息给客户端C,这个信息是(服务端S在本地打开了一个端口M,你现在去连接我吧),当客户端C收到这个信息后,就可以向服务端S的M端口进行连接,连接成功后,数据连接也建立了。
从上可知两种模式主要的不同是数据连接建立的不同:
对于Port模式,是客户端C在本地打开一个端口等服务端S去连接建立数据连接;
而Pasv模式就是服务端S打开一个端口等待客户端C去建立一个数据连接。
我需要把传送模式设置成PASV mode吗?
如果您连接到INTERNET的方式如下图,您需要设置成为PASV mode模式传送
路由上有两个IP一个是内网IP(也就是您的网关地址)另外一个是外网IP,您所有LAN中的计算机都是共享这个218.63.1.5访问INTERNET的(中间通过了192.168.1.1这个网关),让我们来看一个连接的详细过程,以便您更进一步了解为什么需要设置成为PASV mode传送:
当您通过下载工具或使用浏览器下载影片的时候就开始连接FTP服务器,当FTP服务收到您的连接请求后发送应答信息给客户并开始等待用户的认证信息,>认证通过后开始建立数据连接如果您不是设置成为PASV mode,那客户段(下载工具)会在本地计算机开一个数据端口,然后发送一条“命令”给FTP服务段,(我已打开了n端口你现在可以连接我),那么FTP服务器段就开始连接您IP地址的N端口,(但是连接是失败的)因为您是通过192.168.1.1这个网关(您的路由设备)访问internet的FTP服务段他实际上是同您的外网地址为218.63.1.5的路由设备连接,根本就连接不上您下载工具中打开的端口,例如您使用的是192.168.1.2这个客户机,FTP服务段此时无法同您计算机192.168.1.2)监听端口N连接上,所以此时您会看到服务器反馈的错误信息,提示您192.168.1.2打开的端口无法连接之类的,信息此时您就需要把传送模式设置成为PASV模式,而如果您使用的是PASV模式那么当您的FTP通过认证后,客户段首先向服务器发送一条PASV命令,服务段接受到命令后打开一个端口并告诉客户段“我已打开了一个端口,您此时可以来连接了”客户段(下载工具)接受到信息后,就去连接服务段已经打开了的端口,从而完成数据连接,所有FTP下载的数据流都将通过这个端口传送
而且在用iptables做NAT时,应该装载这两个模块(ip_nat_ftp、ip_conntrack_ftp),才能正常连到FTP服务器。
FTP模式与数据端口
FTP分为两类,PORT FTP和PASV FTP,PORT FTP是一般形式的FTP,这两种FTP在建立控制连接时操作是一样的,都是由客户端首先和FTP服务器的控制端口(默认值为21)建立控制链接,并通过此链接进行传输操作指令,它们的区别在于使用数据传输端口(ftpdata)的方式,PORT FTP由FTP服务器指定数据传输所使用的端口,默认值为20,PASV FTP由FTP客户端决定数据传输的端口,PASV FTP这种做法,主要是考虑到存在防火墙的环境下,由客户端与服务器进行沟通(客户端向服务器发出数据传输请求中包含了数据传输端口),决定两者之间的数据传输端口更为方便一些。
下面是一个简单的介绍,描述了FTP和SFTP连接模式设置的一些基本区别:
| 连接模式/属性 | FTP (File Transfer Protocol) | SFTP (SSH File Transfer Protocol) |
| 协议 | 不加密的明文传输 | 加密的SSH传输 |
| 端口 | 默认端口21 | 默认端口22,但通常使用不同的端口 |
| 安全性 | 不安全,传输数据可以被窃取 | 安全,使用SSH加密 |
| 传输加密 | 否 | 是 |
| 验证方式 | 用户名/密码 | 用户名/密码,也可以使用SSH密钥 |
| 通道 | 单独的FTP数据通道 | SSH会话内的子通道 |
| 适用场景 | 需要快速传输不敏感数据 | 传输敏感数据或需要安全性保障 |
| 兼容性 | 所有现代操作系统和设备 | 需要支持SSH的客户端和服务器 |
| 配置设置 | 主动模式:服务器发起数据连接 | 无需特别配置,使用SSH会话 |
| 被动模式:客户端发起数据连接 | 可以配置SSH密钥认证 | |
| 需要开放相应的端口 | 可以限制客户端IP地址 |
请注意,这个介绍只是提供了一个基本的对比,具体的配置和设置可能会根据不同的FTP和SFTP服务器软件或客户端有所不同,在实际应用中,应当根据实际的安全需求和网络环境来调整设置。
上一篇:ftp服务器所需的端口号_FTP