Linux下安装FTP服务

Linux下安装FTP服务

系统:Debian 10.5 (阿里云)

工具:Xshell 6 (Build 0206)

1.安装FTP

在安装任何软件之前,重要的是通过apt在终端中运行以下命令来确保系统是最新的

sudo apt update

安装vsftpd守护程序

sudo apt install vsftpd
sudo systemctl status vsftpd #用于确认FTP版本等信息

在这里插入图片描述

2.配置FTP服务器

先备份配置文件,然后再对源文件进行编辑

cp /etc/vsftpd.conf /etc/vsftpd.conf.bak

修改源文件如下选项(可以键入esc然后输出:/加想检索的内容快速跳转)

vim /etc/vsftpd.conf
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 #是否将所有用户限制在主目录)
chroot_list_enable=YES #设置是否将用户锁定在自己的主目录中 
chroot_list_file=/etc/vsftpd.chroot_list #可在文件中设置多个账号
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd #根据情况可更改为ftp
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模式
pasv_min_port=10000
pasv_max_port=10100
allow_writeable_chroot=YES
pasv_address=0.0.0.0 #服务器外网ip

以上设置完成后需要开放端口21和10000-10100

启动并验证

sudo service vsftpd start
ps aux | grep vsftp

在这里插入图片描述

3.配置FTP默认用户

安装好ftp后默认是会自动创建ftp用户的,然后我们设置ftp用户的密码,输入

sudo passwd ftp,然后输入密码,再确认密码。

ftp用户家目录默认如下

cat /etc/passwd | grep ftp 
ftp:x:108:119:ftp daemon,,,:/srv/ftp:/usr/sbin/nologin

4.可能出现的问题

在这里插入图片描述

如果登录ftp总是出现密码错误,可以将/etc/vsftpd.conf配置文件的pam_service_name=vsftpd改为pam_service_name=ftp,即可解决

更改后不再出错,但如果出现如下问题

这里是因为服务器不接受被动连接(前面服务器端配置有问题,接下来会进行修改),然后win10默认使用被动连接

在这里插入图片描述

分析之后发现,采用ftp被动模式登录成功,服务端映射给客户端的ip地址是私有的,所以客户端无法和服务器建立连接关系,也就意味着ftp命令无法使用,只能采取主动模式。解决方案如下:

listen=NO           ===》 修改为listen=YES    
listen_ipv6=YES     ===》 修改为listen_ipv6=NO   
pasv_address=公网IP    #一定要是公网IP,如果不添加,返回被动模式的ip是0.0.0.0

开启主动连接解决办法:打开控制面板:选择internet选项—–高级—-使用被动FTP(为防火墙和DSL调制解调器兼容性)”前面的勾去掉

在这里插入图片描述

当然如果在不更改的情况下想要访问,可以通过cmd进行

在这里插入图片描述

5. FTP挂载

在搭建完FTP服务器后,在Windows系统上,最常见的挂载方式是ftp映射。

右键选择【添加一个网络位置】,根据向导完成即可

在这里插入图片描述

6.权限控制

只想让指定的账户不限制在其主目录,其它账户都限制在其主目录。

对于chroot_local_user与chroot_list_enable的组合效果,可以参考下表:

chroot_local_user=YESchroot_local_user=NO
chroot_list_enable=YES1.所有用户都被限制在其主目录下 2.使用chroot_list_file指定的用户列表,这些用户作为“例外”,不受限制1.所有用户都不被限制其主目录下 2.使用chroot_list_file指定的用户列表,这些用户作为“例外”,受到限制
chroot_list_enable=NO1.所有用户都被限制在其主目录下 2.不使用chroot_list_file指定的用户列表,没有任何“例外”用户1.所有用户都不被限制其主目录下 2.不使用chroot_list_file指定的用户列表,没有任何“例外”用户

因安全问题,vsftpd不允许匿名用户在ftp主目录上传,可以新建一个子目录,然后设置权限为777

设置fpt相关目录及权限

sudo mkdir -p /srv/ftp/up
sudo mkdir -p /srv/ftp/server
sudo chmod 755 /srv/ftp
#server为只读文件
sudo chmod 777 /srv/ftp/up
sudo chmod 755 /srv/ftp/server

在文件/etc/ftpusers中列出了不可登陆ftp的用户,可按需自行注释他们

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值