centos7 配置ftp服务器搭建(匿名访问,以及本地登录)

大家好,今天来给大家分享一个基于centos 7的ftp服务器搭建

实现功能:匿名访问,本地登录

查看系统版本:

[root@localhost ~]# cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)

查看本地ip地址

[root@localhost ~]# ifconfig ens33
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.5 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 240e:3a2:743:df40:bb08:8c86:f745:edd4 prefixlen 64 scopeid 0x0
inet6 fe80::617f:ef93:80d4:e14e prefixlen 64 scopeid 0x20
ether 00:0c:29:87:af:a6 txqueuelen 1000 (Ethernet)
RX packets 50282 bytes 3247879 (3.0 MiB)
RX errors 0 dropped 922 overruns 0 frame 0
TX packets 6542 bytes 8519343 (8.1 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

我们连一下xshell (远程控制终端)

[C:~]$ ssh 192.168.1.5

Connecting to 192.168.1.5:22…
Connection established.
To escape to local shell, press ‘Ctrl+Alt+]’.

Last login: Sat Oct 23 11:15:44 2021 from 192.168.1.2
[root@localhost ~]#

测试网络:

[root@localhost ~]# ping www.baidu.com
PING www.a.shifen.com (180.101.49.11) 56(84) bytes of data.
64 bytes from 180.101.49.11 (180.101.49.11): icmp_seq=1 ttl=54 time=10.0 ms
64 bytes from 180.101.49.11 (180.101.49.11): icmp_seq=2 ttl=54 time=9.79 ms
64 bytes from 180.101.49.11 (180.101.49.11): icmp_seq=3 ttl=54 time=7.52 ms
64 bytes from 180.101.49.11 (180.101.49.11): icmp_seq=4 ttl=54 time=8.06 ms
^C
— www.a.shifen.com ping statistics —
4 packets transmitted, 4 received, 0% packet loss, time 22033ms
rtt min/avg/max/mdev = 7.523/8.862/10.065/1.094 ms

这样的话,我们的服务器就可以上网了 (可使用网络yum源)

接下来我们安装vsftpd服务程序

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

进入vsftpd主目录

[root@localhost ~]# cd /etc/vsftpd/
[root@localhost vsftpd]# ls
ftpusers user_list vsftpd.conf vsftpd_conf_migrate.sh
[root@localhost vsftpd]#

将主配置文件内容当中#全部去掉

[root@localhost vsftpd]# cat vsftpd.conf |grep -v “#”
anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES

pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES

这些是有效地配置文件,我们需要对它进行改动

对主配置文件改名为vsftpd.conf.bak

[root@localhost vsftpd]# mv vsftpd.conf vsftpd.conf.bak

查看

[root@localhost vsftpd]# ls
ftpusers user_list vsftpd.conf.bak vsftpd_conf_migrate.sh

将vsftpd.conf.bak的#号过滤掉,将这个结果过滤到vsftp.conf

[root@localhost vsftpd]# cat vsftpd.conf.bak |grep -v “#” >vsftpd.conf

编辑vsftpd 主配置文件

[root@localhost vsftpd]# vim vsftpd.conf

anon_umask=022
anon_update_enable=YES
anon_nkdir_write_enable=YES
anon_other_write_enable=YES //将这四行的配置文件加入vsftpd.conf,(实现匿名访问)

如下

anonymous_enable=YES
anon_umask=022
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES

pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES

:wq

保存退出

重启ftp服务器:

[root@localhost vsftpd]# systemctl restart vsftpd

[root@localhost vsftpd]# systemctl enable vsftpd.service //设置开机自启动

Created symlink from /etc/systemd/system/multi-user.target.wants/vsftpd.service to /usr/lib/systemd/system/vsftpd.service.
[root@localhost vsftpd]#

[root@localhost vsftpd]# systemctl stop firewalld //关闭防火墙

在这里插入图片描述

本地测试,显示vsftpd服务器正常

[root@localhost vsftpd]# cd /var/ftp/
[root@localhost ftp]# ls
pub(本来就有的文件)

[root@localhost ftp]#

[root@localhost ftp]# touch 123.txt //创建文件123.txt
[root@localhost ftp]#

在这里插入图片描述

在这里插入图片描述

创建文件报错,(权限不够)

[root@localhost ftp]# chmod 777 pub/ //加权限

在这里插入图片描述

匿名用户访问成功

开始做本地用户

[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf //编辑配置文件

anonymous_enable=YES
anon_umask=022
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES

pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES //这是我们刚刚编辑的配置文件

在这里插入图片描述

按箭头去修改

改成:
在这里插入图片描述

或者注释掉这四行也是一样的效果:

anonymous_enable=NO
#anon_umask=022
#anon_upload_enable=YES
#anon_mkdir_write_enable=YES
#anon_other_write_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES

pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES

编辑这个文件

[root@localhost vsftpd]# vim ftpusers

Users that are not allowed to login via ftp

root
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody

根据具体要求,删掉你想登录FTP服务的本地用户。

例如,删掉root。

Users that are not allowed to login via ftp

bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody
~

[root@localhost vsftpd]# systemctl restart vsftpd //重启vsftpd 服务

在这里插入图片描述

在这里插入图片描述
实验成功。测试的时候,既可以用windows的文件搜索,也可以用第三方工具


版权声明:本文为weixin_47556601原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。