linux中如何搭建FTP服务

声明:在线安装和离线安装是在不同的服务器上进行的。

在线安装FTP

安装vsftpd服务

1.执行以下命令,安装vsftpd。

yum install -y vsftpd

2.执行以下命令,将vsftpd服务加入到启动项中。

systemctl enable vsftpd

3.执行以下命令,启动 FTP 服务。

systemctl start vsftpd

4.执行以下命令,确认服务是否启动。

netstat -antup | grep ftp

#这条命令是用于查看端口是否占用或者占用情况。

如果显示结果如下,则说明 FTP 服务已成功启动。

添加FTP用户并分配权限

1.执行以下命令,为 FTP 服务创建一个用户,本文以 ftpuser 为例。

useradd ftpuser

2.执行以下命令,重置用户密码

passwd ftpuser

注意:记住此刻设置的密码,默认8位不宜太简单,linux会提示密码过于简单。

3.执行以下命令,创建FTP的工作目录。(用户连接后直接进入这个目录。)

mkdir /var/ftp

4.执行以下命令,为用户分配目录权限。

chown -R ftpuser:ftpuser /var/ftp

修改FTP配置文件

1.执行以下命令,打开 vsftpd.conf 文件。

vim /etc/vsftpd/vsftpd.conf

#禁止匿名用户登录
anonymous_enable=NO
#禁止匿名用户登录
local_enable=YES
write_enable=YES
#全部用户被限制在主目录
chroot_local_user=YES
#启用例外用户名单
chroot_list_enable=YES
#指定用户列表文件,该列表中的用户不被锁定在主目录
chroot_list_file=/etc/vsftpd/chroot_list
#监听IPv4 sockets 
listen=YES
#注释掉以下参数,关闭监听IPv6 sockets
#listen_ipv6=YES
#设置本地用户登录后所在的目录
local_root=/usr/local/sinozur/ftp
allow_writeable_chroot=YES

2.设置指定用户列表文件,该列表中的用户不被锁定在主目录,执行以下命令,创建并编辑 chroot_list 文件。

vim /etc/vsftpd/chroot_list

3.输入刚才创建的用户:ftpuser;注意:一个用户名占一行,设置完成后按 Esc 并输入 :wq! 保存并退出。

4.执行以下命令,重启vsftpd服务。

systemctl restart vsftpd

验证服务是否安装成功

1.我采用局域网内的Windows主机的资源管理器,输入地址连接FTP。

2.输入linux中创建的账号:ftpuser;输入密码。

3.连接后进入的目录就是FTP的工作目录:/usr/local/sinozur/ftp;即可上传或者下载文件。

离线安装FTP

验证机器是否安装FTP

1.执行以下命令,查看是否安装FTP

rpm -qa | grep vsftp

若无返回,则说明未安装;若是又返回值,则说明存在安装。

2.下载离线安装包:

https://rpmfind.net/linux/rpm2html/search.php?query=vsftpd(x86-64)

我下载的是vsftpd-3.0.5-150400.3.9.1.x86_64.rpm安装包

3.通过软件将安装包上传到工作目录下。

[root@localhost ~]# cd /usr/local/ftp/

[root@localhost ftp]# ls

vsftpd-3.0.5-150400.3.9.1.x86_64.rpm

4.执行以下命令安装FTP。

rpm -ivh vsftpd-3.0.5-150400.3.9.1.x86_64.rpm

遇到的错误:

warning: vsftpd-3.0.5-150400.3.9.1.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID 39db7c82: NOKEY
error: Failed dependencies:
	group(nobody) is needed by vsftpd-3.0.5-150400.3.9.1.x86_64
	libc.so.6(GLIBC_2.28)(64bit) is needed by vsftpd-3.0.5-150400.3.9.1.x86_64
	libcrypto.so.1.1()(64bit) is needed by vsftpd-3.0.5-150400.3.9.1.x86_64
	libcrypto.so.1.1(OPENSSL_1_1_0)(64bit) is needed by vsftpd-3.0.5-150400.3.9.1.x86_64
	libssl.so.1.1()(64bit) is needed by vsftpd-3.0.5-150400.3.9.1.x86_64
	libssl.so.1.1(OPENSSL_1_1_0)(64bit) is needed by vsftpd-3.0.5-150400.3.9.1.x86_64
	shadow is needed by vsftpd-3.0.5-150400.3.9.1.x86_64
	user(ftp) is needed by vsftpd-3.0.5-150400.3.9.1.x86_64

网上找了下错误原因:主要是这个centos系统安装这个安装包(vsftpd-3.0.5-150400.3.9.1.x86_64.rpm)缺少依赖。

重新找了个和我系统版本匹配的安装包,上面那个就弃用了。(我的系统内核信息:Linux localhost.localdomain 3.10.0-1160.el7.x86_64)

https://rpmfind.net/linux/centos/7.9.2009/os/x86_64/Packages/vsftpd-3.0.2-28.el7.x86_64.rpm

5.再次执行安装命令以及返回结果。

[root@localhost ftp]# rpm -ivh vsftpd-3.0.2-28.el7.x86_64.rpm

#返回结果
[root@localhost ftp]# rpm -ivh vsftpd-3.0.2-28.el7.x86_64.rpm 
Preparing...                          ################################# [100%]
Updating / installing...
   1:vsftpd-3.0.2-28.el7              ################################# [100%]

 创建FTP工作目录和FTP用户

1.执行以下命令,创建FTP工作目录。

[root@localhost ~]# mkdir ftp

2.执行以下命令,创建用户并修改用户密码。

[root@localhost vsftpd]# useradd ftpuser
[root@localhost vsftpd]# passwd ftpuser
Changing password for user ftpuser.
New password: 
BAD PASSWORD: The password fails the dictionary check - it is too simplistic/systematic
Retype new password: 
passwd: all authentication tokens updated successfully.

3.执行以下命令给工作目录赋权限。

[root@localhost ~]# chown -R ftpuser:ftpuser /root/ftp

查看是否成功。返回结果可见第八行FTP工作目录权限修改成功。

[root@localhost ~]# ll
total 4
-rw-------. 1 root    root    2926 Sep 19 08:43 anaconda-ks.cfg
drwxr-xr-x. 2 root    root       6 Oct 13 07:02 Desktop
drwxr-xr-x. 5 root    root      44 Nov  9 17:41 docker
drwxr-xr-x. 2 root    root       6 Oct 13 07:02 Documents
drwxr-xr-x. 2 root    root       6 Oct 13 07:02 Downloads
drwxr-xr-x  2 ftpuser ftpuser    6 Dec 21 00:43 ftp
drwxr-xr-x. 2 root    root       6 Oct 13 07:02 Music
drwxr-xr-x. 6 root    root     149 Oct 13 10:40 nginx
drwxr-xr-x. 2 root    root       6 Oct 13 07:02 Pictures
drwxr-xr-x. 2 root    root       6 Oct 13 07:02 Public
drwxr-xr-x. 2 root    root       6 Oct 13 07:02 Templates
drwxr-xr-x. 2 root    root       6 Oct 13 07:02 Videos

修改配置文件并启动服务

1.执行以下命令,打开 vsftpd.conf 文件。

[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf 
#禁止匿名用户登录
anonymous_enable=NO
#禁止匿名用户登录
local_enable=YES
write_enable=YES
#全部用户被限制在主目录
chroot_local_user=YES
#启用例外用户名单
chroot_list_enable=YES
#指定用户列表文件,该列表中的用户不被锁定在主目录
chroot_list_file=/etc/vsftpd/chroot_list
#监听IPv4 sockets 
listen=YES
#注释掉以下参数,关闭监听IPv6 sockets
#listen_ipv6=YES
#设置本地用户登录后所在的目录
local_root=/usr/local/sinozur/ftp
allow_writeable_chroot=YES

2.设置指定用户访问FTP工作目录。

vim /etc/vsftpd/chroot_list

添加上刚刚创建的新用户ftpuser。

3.执行以下命令,将vsftpd服务加入到启动项中。

systemctl enable vsftpd

4.执行以下命令,启动 FTP 服务。

systemctl start vsftpd

5.查看返回值。

[root@localhost ~]# netstat -antup | grep ftp
tcp        0      0 0.0.0.0:21              0.0.0.0:*               LISTEN      11172/vsftpd  

验证是否成功连接。

1.连接ftp地址后,提示无法与服务器连接。

2.排查后发现是linux的防火墙开着在。那我们把ftp服务加入到防火墙通行规则中去。

[root@localhost vsftpd]# firewall-cmd --permanent --zone=public --add-service=ftp
success
[root@localhost vsftpd]# firewall-cmd --reload 
success

3.再次尝试连接。

输入用户密码后连接成功。

Bruceblog:Bruce
THE END
分享
二维码
< <上一篇
下一篇>>
文章目录
关闭
目 录