环境
- centos 7.1805
- vsftpd 3.0.2
- docker 19.03.2
ftp服务器是运行在docker中的,基于centos:7的镜像,使用docker宿主机可以和vsftpd容器进行通信,可是,一使用其它网段的机器访问ftp服务器就不可以。
配置的是主动模式,已经关闭宿主的防火墙和selinux。
下面贴上vsftpd的配置文件
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
xferlog_enable=YES
xferlog_std_format=YES
xferlog_file=/ftp/log/xferlog
connect_from_port_20=YES
listen=YES
pam_service_name=vsftpd //上面创建的PAM名称
userlist_enable=YES
guest_enable=YES
guest_username=nas
port_enable=YES
详细的报错内容看下图的抓包,如果有wireshark工具的同学,也可以下载WireShark抓包数据,这是抓包的数据。
自己第一次接触ftp,也百度、谷歌了下,可是网上说的都是在被动模式下,要么文件权限问题,要么seilnux没有默认放开ftp端口导致的,从wireshark的抓包,可以看到,报错的是Syntax error 500,感觉问题是出在,访问了docker的宿主机,然后端口映射到了容器的端口上,没有监听到导致的,可是不知道怎么配置。难道ftp就只能安装在物理机,无法放在代理服务器后面么?