linux搭建ftp服务

Scroll Down

1.安装vsftpd

yum install -y vsftpd

2.添加用户

useradd -s /sbin/nologin -d /opt/ftpdata ftpdd

-s /sbin/nologin代表设置用户默认shell为非登录的
树莓派为/usr/sbin/nologin

如没有自动创建文件夹,可以手动创建,并赋予用户读写权限

mkdir /opt/ftpdata
chown -R ftpdd.ftpdd /opt/ftpdata
chmod 755 /opt/ftpdata

3.修改配置文件,关闭匿名登录

#某些情况下,路径为/etc/vsftpd.conf
vim /etc/vsftpd/vsftpd.conf
anonymous_enable = NO

raspbian中,anonymous_enable默认就是NO

4.设置用户相关参数,限制用户只能访问用户自己的文件夹,并开启写权限,不开的话会出错,除非去除文件夹写权限

userlist_enable=YES
userlist_deny=NO
chroot_local_user=YES
chroot_list_enable=NO
allow_writeable_chroot=YES
chroot_list_file=/etc/vsftpd/vsftpd.chroot_list
pasv_enable=no

listen=YES
listen_ipv6=NO

其他配置参考

anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=002
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=yes
xferlog_std_format=YES
listen=YES
pam_service_name=vsftpd
userlist_enable=NO
userlist_deny=YES
userlist_file=/etc/vsftpd/user_list
use_localtime=YES
banner_file=/etc/vsftpd/welcomedfsj
tcp_wrappers=YES
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/vsftpd.chroot_list
allow_writeable_chroot=YES
pasv_promiscuous=YES
user_config_dir=/etc/vsftpd/user_dir
pasv_min_port=30000
pasv_max_port=30000

#guest_enable=YES
#guest_username=vftpuser
listen_address=192.168.xxx.xxx
#连接端口,默认为21
listen_port=21
#限速
local_max_rate=4096000
#超时测试
#idle_session_timeout=10
#data_connection_timeout=1

FTP服务有两种模式:

  • 主动模式(port):
    port_enable=YES/NO,port模式开关,默认为NO。
    port模式,传输端口固定,默认为20。

  • 被动模式(pasv):
    pasv_enable=YES/NO,pasv模式开关,默认YES。
    pasv模式,传输端口在pasv_min_port和pasv_max_port范围内随机,无需开启20端口。

ftp默认的控制(连接)端口为21。

5.启动vsftpd服务

service vsftpd start

6.开启端口
主动模式开启20、21端口,被动模式开启21、30000端口,视配置而定。

firewalld-cmd --add-port=21/tcp --permanent
firewalld-cmd --add-port=30000/tcp --permanent
firewalld-cmd --reload