目录
简介
配置有弹性公网IP的Linux云服务器搭建FTP服务端后,FTP客户端访问FTP服务端可能会报错显示云服务器的内网IP或没响应,也会出现登录成功,但是list目录和文件的时候卡住,我用阿里云ECS配置好vsftpd.conf文件里面的配置后实现了FTP公网上传下载文件
安装ftp
yum -y install vsftpd
创建ftp登录用户
useradd testftp
passwd testftp
设置vsftpd.conf文件
vim /etc/vsftpd/vsftpd.conf
# 禁止匿名访问模式
anonymous_enable=NO
# 允许本地用户模式,这个设定值必须要为YES 时,在/etc/passwd内的账号才能以实体用户的方式登入我们的vsftpd主机,用户在/etc/passwd里面shell环境必须为/bin/bash
local_enable=YES
# 设置可写权限
write_enable=YES
# 本地用户模式创建文件的umask值
local_umask=022
# 禁止匿名用户上传文件
anon_upload_enable=NO
# 禁止匿名用户创建目录
anon_mkdir_write_enable=NO
# 当dirmessage_enable=YES时,可以设定这个项目来让vsftpd寻找该档案来显示讯息!您也可以设定其它档名!
dirmessage_enable=YES
# 当设定为YES时,使用者上传与下载日志都会被纪录起来。记录日志与下一个xferlog_file设定选项有关
xferlog_enable=YES
xferlog_std_format=YES
xferlog_file=/var/log/xferlog
# 为YES表示所有的用户均不能切换到其他目录。为NO时所有的用户均可以切换到其他目录。不可以让ftp用户跳出自己的家目录,否则太危险了,所以设置为YES
chroot_local_user=YES
# 这个是pam模块的名称,我们放置在/etc/pam.d/vsftpd
pam_service_name=vsftpd
# 当userlist_enable为YES,userlist_deny为YES时,ftpusers和user_list文件中的用户均不能访问FTP服务器。
# 测试结果是:此时只有不在ftpusers和user_list的系统用户可以访问
userlist_enable=YES
userlist_deny=YES
# 支持TCP Wrappers
tcp_wrappers=YES
#
listen_port=21
# 新版析vsfptd加入了安全需求,默认是ftp用户切换到根目录不允许写,所以要加这个选项允许写
allow_writeable_chroot=YES
download_enable=YES
# 设定支持ASCII模式的上传和下载功能
ascii_upload_enable=YES
ascii_download_enable=YES
# 当为YES时,vsftpd将以单独模式运行.这意味着vsftpd不必以某种inetd运行,而是可以直接执行.vsftpd执行后会自己侦听和操作进入的连接
listen=YES
# 类似listen选项,但该选项使vsftpd侦听的地址为IPv6格式的
#listen_ipv6=YES
# 如果不加上seccomp_sandbox=NO这一句会出现莫名的530错误
seccomp_sandbox=NO
# 在被动模式,服务器做了NAT,例如云主机,这时候我们用特定的IP访问机器,其实还转了一层。FTP客户端访问机器可能会没响应。具体情况为登录成功,但是list目录和文件的时候卡住。
# 开启被动模式
pasv_enable=YES
# 外网地址(在网络安全组开放设置源ip port和目标源端口)
pasv_address=云服务器绑定的弹性公网IP
#pasv_addr_resolve=YES
# 被动模式最低端口
pasv_min_port=60000
# 被动模式最高端口
pasv_max_port=60005
ax_port端口要对客户端IP开放。否则无法来访问。
# 开启主动模式
#port_enable=YES
# 当主动模式开启的时候 是否启用默认的20端口监听,使用20端口传输数据
#connect_from_port_20=YES
# 上一参数connect_from_port_20使用NO参数时 指定数据传输端口
#ftp_date_port=%portnumber%
启动ftp
systemctl start vsftpd
开放端口
开放21和60000-60005端口