ftp服务器搭建

一,vsftpd的安装

1.为了方便后续的配置建议用root登录。或者切换到root用户。
2.检查是否安装vsftpd。

[root@localhost ~]# vsftpd -v

在这里插入图片描述
如果没有安装使用yum安装。

[root@localhost ~]# yum -y install vsftpd

3.安装完成后,查看位置

[root@localhost ~]# whereis vsftpd

vsftpd: /usr/sbin/vsftpd /etc/vsftpd /usr/share/man/man8/vsftpd.8.gz

4.启动VSFTP服务

[root@localhost ~]# systemctl start vsftpd.service

5.查看是否启动成功

[root@localhost ~]# netstat -npal|grep vsftpd
在这里插入图片描述
或者通过查询是vsftpd服务是否存在systemctl status vsftpd.service

如果vsftpd启动失败,可能由以下原因导致(本人启动失败原因):

21端口占用:ftp默认启动端口号是21。当端口被占用时无法启动。
解决办法:

```c
 netstat -anp |grep 21 //查看21端口的占用情况
```

 如果被占用,查看占用此端口号的进程PID

```c
 lsof -i :21
```
释放端口:

```c
kill -9 4110    //4110为进程ID
```
至此端口已解除占用。

6.关闭SELinux限制,添加防火墙白名单
①设置关闭SELinux对ftp的限制

[root@localhost ~]# getsebool -a | grep ftp

ftp_home_dir --> on

ftpd_anon_write --> off

ftpd_connect_all_unreserved --> off

ftpd_connect_db --> off

ftpd_full_access --> on

ftpd_use_cifs --> off

ftpd_use_fusefs --> off

ftpd_use_nfs --> off

ftpd_use_passive_mode --> off

httpd_can_connect_ftp --> off

httpd_enable_ftp_server --> off

sftpd_anon_write --> off

sftpd_enable_homedirs --> off

sftpd_full_access --> off

sftpd_write_ssh_home --> off

tftp_anon_write --> off

tftp_home_dir --> off

[root@localhost ~]# setsebool -P ftpd_full_access on

②将ftp加入防火墙白名单(防火墙已关闭可以忽略此处)

firewall-cmd --permanent --zone=public --add-service=ftp

firewall-cmd --reload

查看防火墙状态:firewall-cmd --list-all

二、修改配置参数

1.建立用户和指定目录

useradd -d /home/ftpbus ftpuser //ftpuser是用户名,ftpbus 是该用户指定目录
passwd ftpuser //给用户设置密码

开启ftpbus权限:chmod 777 ftpuser

2.修改vsftpd.conf配置文件:

[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf

修改一下几个参数:

#不允许匿名访问
anonymous_enable=NO
#将用户限制在为其配置的主目录
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
#添加以下内容-其中ftpbus为可访问的目录
local_root=/home/ftpbus

userlist_enable=YES这个选项如果是YES,那/etc/vsftpd/user_list中的用户将被禁止访问ftp。如果是NO,则只有user_list里面的用户才能访问ftp。

3.新建chroot_list文件
在/etc/vsftpd下新建chroot_list文件,在文件中添加ftpuser用户,使其只允许访问指定目录。

vim chroot_list

写入ftpuser

三、重启以及连接

重启命令:

systemctl restart vsftpd.service

访问:
在浏览器中输入:ftp://ip地址。我这里使用的事阿里云的测试服务器,一直访问不到连接超时,后经过各种查找,才发现是测试服务器的21端口没有在安全组中设置导致的。如何设置阿里云服务器安全组:https://blog.csdn.net/lzc2644481789/article/details/108210351
设置完成后,再访问就会出现输入用户名密码的弹框。输入上面配置的账号密码即可。
在这里插入图片描述

其他问题:

在弹框输入账号密码过程中一直出现,弹框不消失,一直让输入账号密码。考虑是账号密码输入错误。但由于浏览器不会报错也不给提示,大家可以通过cmd命令连接ftp,这样更加方便定位问题所在。使用方式如下:
1.打开cmd
2.输入ftp
3.输入 open ip地址
4.cmd提示输入用户和密码
5.常见提示错误对应原因:

  • 500 OOPS: vsftpd: refusing to run with writable root inside chroot()
    在/etc/vsftpd/vsftpd.conf添加配置。
    allow_writeable_chroot=YES # 如果启用了限定用户在其主目录下需要添加这个配置。

  • 530 Login incorrect.登录失败。用户密码错误请检查。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值