Answers:
要为vsftpd配置被动模式,您需要在vsftpd.conf中设置一些参数。
pasv_enable=Yes
pasv_max_port=10100
pasv_min_port=10090
这将启用被动模式,并将其限制为使用十一个端口进行数据连接。这很有用,因为您需要在防火墙上打开这些端口。
iptables -I INPUT -p tcp --destination-port 10090:10100 -j ACCEPT
如果在测试之后一切正常,则使用以下命令保存防火墙的状态
service iptables save
这将更新/etc/sysconfig/iptables
文件。
要在CentOS 7中做到这一点,您必须使用新的firewalld,而不是iptables:
查找您的区域:
# firewall-cmd --get-active-zones
public
interfaces: eth0
我的区域是“ public”,因此我将我的区域设置为public,添加端口范围,然后我们重新加载:
# firewall-cmd --permanent --zone=public --add-port=10090-10100/tcp
# firewall-cmd --reload
建立连接后会发生什么
您的客户端通过端口21连接到vsftpd服务器。
服务器对客户端做出响应,告诉客户端从上面指定的范围连接到哪个端口。
客户端在指定的端口上建立数据连接,会话继续。
这里对不同的ftp 模式有很好的解释。
pasv_address
。
要启用被动模式,请在vsftp.conf中设置以下配置选项:
pasv_enable=YES
pasv_min_port=41361
pasv_max_port=65534
pasv_address=xxx.xxx.xxx.xxx
当然,您可以更改起始端口和结束端口,并且应该用服务器的公共IP替换xxx。
此外,您应该在防火墙中打开被动模式端口范围。在centos上,您可以加载ip_conntrack_ftp
模块以处理防火墙中的ftp连接。编辑/etc/sysconfig/iptables-config
ip_conntrack_ftp并将其添加到IPTABLES_MODULES选项。之后重启iptables:
/sbin/service iptables restart
pasv_address
设置完所有其他功能后仍然无法正常工作时,诀窍是什么?
pasv_address
,则应添加pasv_addr_resolve=YES
(默认为NO
)
在旁边pasv_enable=YES
,指定VSFTP将在其中运行PASV模式的端口范围:
pasv_min_port=50000
pasv_max_port=50999
port_enable=YES
不要忘记配置iptables允许这些端口上的数据包传输:
iptables -I INPUT -p tcp --dport 50000:50999 -j ACCEPT
iptables -A INPUT ...
被忽略
pasv_address
在vsftpd.conf文件中。
通常,不是ftp服务器vsftpd,而是像iptable这样的防火墙,它阻止使用被动模式(阻止数据传输所需的tcp连接)。
max
端口放在min
... 后面,但是更重要的是,如果打开端口10090至10100,则是11个端口,而不是您所说的10个。