linux 搭建FTP服务器

FTP用于计算机之间通过网络进行文件传输。你可以通过FTP在计算机账户间进行文件传输,也可以在账户和桌面计算机之间传输文件,或者访问在线软件归档。

服务器条件:基于VM的Ubuntu虚拟机20.04

1、保证虚拟机处于联网状态,进入特权模式或者用sudo下载vsftpd

apt install vsftpd

2、配置vsftpd,输入以下命令进入vsftpd的配置文件

vim /etc/vsftpd.conf

对配置文件举例:

#这里以下的是对设置的介绍
# You may specify an explicit list of local users to chroot() to their home
# directory. If chroot_local_user is YES, then this list becomes a list of
# users to NOT chroot().
# (Warning! chroot'ing can be very dangerous. If using chroot, make sure that
# the user does not have write access to the top level directory within the
# chroot)
#此后是可以选择的设置
#chroot_local_user=YES
#chroot_list_enable=YES

根据介绍判断是否需要开启该功能,若是开启的话将#chroot_local_user=YES改为chroot_local_user=YES即可,也就是删除前面的#(也可以直接写),以下是常用的一些:

# 禁止匿名用户anonymous登录
#anonymous_enable=NO
# 允许本地用户登录
#local_enable=YES
# 让登录的用户有写权限(上传,删除)
#write_enable=YES
# 默认umask
#local_umask=022
# 把传输记录的日志保存到/var/log/vsftpd.log
#xferlog_enable=YES
#xferlog_file=/var/log/vsftpd.log
#xferlog_std_format=NO
# 允许ASCII模式上传
#ascii_upload_enable=YES 
# 允许ASCII模式下载
#ascii_download_enable=YES
# 使用20号端口传输数据
#connect_from_port_20=YES
# chroot_local_user设置了YES,那么所有的用户默认将被chroot,
# 用户目录被限制在了自己的home下,无法向上改变目录。
# chroot_list_enable设置了YES,即让chroot用户列表有效。
# 如果chroot_local_user设置了YES,那么chroot_list_file
# 设置的文件里,是不被chroot的用户(可以向上改变目录)
# 如果chroot_local_user设置了NO,那么chroot_list_file
# 设置的文件里,是被chroot的用户(无法向上改变目录)
#chroot_list_enable=YES
# touch /etc/vsftpd/chroot_list 新建
#chroot_list_file=/etc/vsftpd/chroot_list
#use_localtime=YES
# 以standalone模式在ipv4上运行
listen=YES
# PAM认证服务名,这里默认是vsftpd,在安装vsftpd的时候已经创建了这个pam文件,
# 在/etc/pam.d/vsftpd,根据这个pam文件里的设置,/etc/vsftpd/ftpusers
# 文件里的用户将禁止登录ftp服务器,比如root这样敏感的用户,所以你要禁止别的用户
# 登录的时候,也可以把该用户追加到/etc/vsftpd/ftpusers里。
pam_service_name=vsftpd
# 重启 vsftpd
service vsftpd restart

下面是我设置的:


listen=NO
listen_ipv6=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
chroot_local_user=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
ssl_enable=NO
pasv_enable=Yes
pasv_min_port=10000
pasv_max_port=10100
allow_writeable_chroot=YES

3、更新防火墙

FTP服务默认是21号端口,这里我们开放20和21号端口(默认禁止FTP通信):

ufw allow from any to any port 20,21,10000:10100 proto tcp

4、重启vsftpd服务

service vsftpd restart

5、建立FTP服务器的用户

useradd -m ftpuser
passwd ftpuser
//第一次输入密码
New password: 
//第二次输入密码
Retype new password: 
//账户设置成功
passwd: password updated successfully

6、验证登录

将一个文件存入FTP服务器中(/home/ftpuser目录存放上传到服务器的文件):

//建立一个FTP-TEST文件,里面打印FTP TESTING字符串
bash -c "echo FTP TESTING > /home/ftpuser/FTP-TEST"

终端输入:

ftp:127.0.0.1    //可以将127.0.0.1换成本机IP

输入账户名和密码:

linux 搭建FTP服务器_第1张图片

 这里由于我存入的文件有中文,在这里显示的乱码(未解决!!!!求解!!!!

 我们在Windows机上也可以访问,打开文件管理器-此电脑-快捷访问-ftp:ip地址

linux 搭建FTP服务器_第2张图片

linux 搭建FTP服务器_第3张图片

 这样我们就可以把服务器上的文件得到了!!!

总结:

       1、 FTP主要是用来下载一些文件,可以把本次设置的Linux服务器当作一个网盘存放文件,当然你要用FTP服务的话,服务器要联网(如果条件允许的话你可与租一台服务器)。

        2、vsftpd服务登录后中文乱码问题没有解决,我用FileZilla FTP Client软件进行传输,在站点管理器中设置了强制UTF-8字符集,在vsftp配置文件也开启了utf8_systemtype但依旧显示的乱码,求广大家人们给出有效解决意见(拜托!!!!)。

        

 

 

你可能感兴趣的:(服务器,linux,运维)