今天应老大要求要在一台在公网的机器配置一个vsftp服务,配置好之后居然不能用,甚是纳闷,具体报错如下图: [

vsftp-info](https://qcloud.coding.net/u/guomaoqiu/p/guomaoqiu/git/raw/master/uploads/2015/09/vsftp-info.png)
vsftp-info](https://qcloud.coding.net/u/guomaoqiu/p/guomaoqiu/git/raw/master/uploads/2015/09/vsftp-info.png)
1、我在本机 ftp localhost 却一点没有问题? 2、为什么一出外网就有问题? 3、这台服务器在公网,在防火墙后面,本机iptables是停了的; 4、以前都是在内网,甚至是同一个网段搭建vsftp来使用; 5、vsftp的配置非常的简单,难道还有些地方有疏漏? 解决方法: 1、在/etc/vsftpd/vsftpd.conf末尾添加:

#YES,允许数据传输时使用PASV模式。NO,不允许使用PASV模式。默认值为YES。
pasv_enable=YES

#设定在PASV模式下,建立数据传输所可以使用port范围的下界和上界,0 表示任意。默认值为0。把端口范围设在比较高的一段范围内,比如50000-60000,将有助于安全性的提高.
pasv_min_port=30000
pasv_max_port=30005

#此选项为一个数字IP地址,作为PASV命令的响应。默认值为none,即地址是从呼入的连接套接字(incoming connectd socket)中获取。
pasv_address=xxxxxxxxx #我这里配置的是这台服务器的外网IP

#此选项激活时,将关闭PASV模式的安全检查。该检查确保数据连接和控制连接是来自同一个IP地址。小心打开此选项。此选项唯一合理的用法是存在于由安全隧道方案构成的组织中。默认值为NO

#pasv_promiscuous=NO

2、在防火墙上开启30000-30005端口。 3、重启vsftpd服务 /etc/init.d/vsftpd restart 客户端再次访问就正常啦: [

vsftp-info2](https://qcloud.coding.net/u/guomaoqiu/p/guomaoqiu/git/raw/master/uploads/2015/09/vsftp-info2.png)
vsftp-info2](https://qcloud.coding.net/u/guomaoqiu/p/guomaoqiu/git/raw/master/uploads/2015/09/vsftp-info2.png)