FTP服务器的搭建与文件目录详解

这篇具有很好参考价值的文章主要介绍了FTP服务器的搭建与文件目录详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

FTP简介

文件传输协议FTP(File Transfer FTP)作为网络共享文件的传输协议,在网络应用软件中具有广泛的应用。

FTP协议

FTP是TCP/IP的协议簇协议之一,其主要功能是借助网络实现远距离主机间的文件传输。

1.使用Vsftpd服务器

Vsftpd (Very Secure FTP)是linux系统的常用软件。

1.1 Vsftpd的服务器的安装与启动

Vsftpd在yum源中的名称就是叫做vsftpd

yum install -y vsftpd* //*代表下载所有关于vsftpd的软件包

1.2 Vsftpd服务器的用户类型

Vsftpd的用户类型主要分为匿名用户、本地用户和虚拟用户。

(1)匿名用户:如果Vsftpd服务器提供匿名访问功能,默认的匿名访问用户为anonymous或ftp,密码为空,匿名用户登录后进入到工作目录是/var/ftp

(2)本地用户:本地用户信息存储在/etc/passwd文件中,本地用户输入用户名和密码后可登录vsftpd,并且直接进入该用户的宿主目录。

(3)虚拟用户:旨在vsftpd服务器中拥有账号,并且该账号只能用于文件传输服务的专有用户,也称guest用户。该类用户可以通过输入用户名和密码进行授权登录。

2. Vsftpd服务器的测试

FTP服务器的运行模式基于服务器、客户端,服务器安装完Vsftpd软件包后,可以通过客户端进行测试。

1.首先下载vsftpd与其相关的服务

  yum install -y vsftpd* ftp*

2.然后打开ftp服务的端口,使防火墙放行ftp服务

 firewall-cmd --zone=public --add-port=21/tcp --per
 systemctl restart vsftpd firewalld

3.在虚拟机上以匿名用户身份进行测试,使用ftp命令,后面输入本机的ip地址,用户名是ftp,密码是空,登录过程如下。

[root@linux2 ~]# ftp 192.168.123.102
Connected to 192.168.123.102 (192.168.123.102).
220 (vsFTPd 3.0.2)
Name (192.168.123.102:root): ftp
331 Please specify the password.
Password:
230 Login successful. 
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
ftp> ls

以上命令中的192.168.123.102是vsftpd服务器的ip地址

终端打印信息“230 Login successful. ”说明登录成功

3.FTP常用的命令

命令 说明
ls 查看服务器当前目录的文件
mkdir 【目录名】 在服务器新建目录
put 文件名 向服务器上传指定的一个文件
mput 文件名列表 向服务器上传多个文件
chmod 改变服务器中的文件权限
?或help 显示内部命令的帮助信息
open 域名或IP地址 建立于指定服务器的连接
close 终止远端的进程,返回命令状态
bye或quit 推出服务器

4.Vsftp服务器的配置文件

配置基本的Vsftpd服务器比较简单,只需要正确安装了Vsftpd软件,直接启动Vsftpd并放行端口就行了,但是如果想要更进一步的搭建Vsftpd服务,那就要掌握Vsftpd服务器的配置文件。

文件 说明
/etc/vsftpd/vsftpd.conf Vsftpd服务器主配置文件
/etc/vsftpd/ftpusers 禁止访问Vsftp服务器的用户名单
/etc/vsftpd/user_list 指定用户能否访问FTP服务器取决于userlist_deny选项的设置
/etc/vsftpd/chroot_list 目录访问控制文件

下面对这几个文件进行详细说明

1.vsftpd.conf文件

vsftpd.conf位于/etc/vsftpd目录下,与大多数配置文件一样,vsftpd.conf文件中以符号”#“开始注释信息,我们可以用Vim等工具对它进行修改。在Vsftpd中去掉注释,显示该文件的配置内容如下:

[root@linux2 ~]# grep -v "#" /etc/vsftpd/vsftpd.conf
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=YESpam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES

下面对该文件中的常用选项进行介绍,合理使用这些选项是保障FTP安全稳定的前提

选项 说明
anonymous_enable 设置是否允许匿名用户登录服务器
local_enable 设置是否允许本地用户登录服务器
write_enable 设置是否允许写操作
local_umask 设置本地用户创建文件的umask值
anon*_upload_enable* 设置是否允许匿名用户上传文件
anon*_mkdir_write_enable* 设置是否允许匿名用户建立目录
xferlog_enable 是否激活日志功能
chown_uploads 修改匿名用户上传文件的所有者
chown_username=whoever 启用chown_uploads=YES时,指定为主用户账户,whoever表示你的ftp用户
chroot*_local_user* 设置是否将所有用户限制在其主目录
chroot*_list_enable* 设置是否启用限制用户的名单
chroot*_list_file* 设置是否限制/排除主目录下的用户名单,限制/排除有chrootlocaluser值决定
allow*_writeable_choot* 设置chroot目录的写权限

2.ftpusers文件

/etc/vsftpd/ftpusers文件用于指定不能访问vsftp服务器的用户列表,此文件在格式中采用每个用户一行的形式,其中包含的用户通常是系统的超级用户和系统用户

3.user_list文件

/etc/vsftpd/userlist 文件也用于保留用户列表,指定的用户能否访问vsftp服务取决于userlistdeny选项的参数,当userlist_deny选项的参数=YES时,此文件中写入的所有用户都将无法登录vsftp服务,想都别想,但是当userlist_deny=No时,这些用户就起来了,那就表示只有这些用户能够访问vsftp服务,所以一定要注意这个选项的参数。非常重要。

如果要限制一些指定的本地用户不能访问FTP服务,则可以添加以下内容来做到:

进入/etc/vaftpd/vsftpd.conf 末行添加

userlist_enable=YES

userlist_deny=YES

userlistfile=/etc/vsftpd/user_list

进入/etc/vsftpd/user_list 添加你需要拒绝访问的本地用户

toto (意为指定用户 每个指定用户单独占一行)

如果需要指定几个本地用户才能访问FTP服务,则可以添加以下内容来做到:

进入/etc/vaftpd/vsftpd.conf 末行添加

userlist_enable=YES

userlist_deny=NO

userlistfile=/etc/vsftpd/user_list

进入/etc/vsftpd/user_list 添加你需要拒绝访问的本地用户

toto (意为指定用户 每个指定用户单独占一行)

4.chroot_list文件

默认情况下,匿名用户会被锁定在默认FTP目录中,而本地用户却可以访问自己主目录以外的内容,出于安全考虑,通过chroot_list文件可以限制用户只能访问其主目录,也可以实现使用不同哟ing胡不仅能访问自己的目录也可以访问主目录以外的内容。

chrootlist文件设计chrootlocaluser和chroot*_list_enable两个选项*

chroot*_list_file默认指向/etc/ sftpd/chroot_list*

chroot_list文件的功能有两个

  • 是限制用户名单中的用户只能在其主目录中
  • 名单中的用户不仅能访问自己的主目录,还能跳出主目录,访问其它的目录。

当chroot*_list_enable=YES时,chroot_list中的用户只能在本目录中*

当chroot*_list_enable=NO时,chroot_list中的目录可以访问除主目录以外的内容*

5.Vsftp服务器的使用

前面介绍了Vsftpd服务器的安装,启动及主要的配置文件,下面通过具体的实例来介绍该服务器的具体应用。

1.匿名用户访问Vsfto服务器

本次实验环境为Centos7 服务器的IP地址为192.168.123.101 主机名为linux1

第一步:安装Vsftp服务及开启该服务

yum install -y vsftpd
systemctl restart vsftpd

使用ftp匿名用户登录,如下所示:

[root@linux2 ~]# ftp 192.168.123.101
Connected to 192.168.123.101 (192.168.123.101).
220 (vsFTPd 3.0.2)
Name (192.168.123.101:root): ftp
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
ftp> ls
227 Entering Passive Mode (192,168,123,101,101,29).
150 Here comes the directory listing.
drwxr-xr-x    2 0        0               6 Oct 13  2020 pub
226 Directory send OK.

登录成功,使用ls命令浏览默认的FTP目录 (/var/ftp)

1、首先在FTP默认目录/var/pub中创建两个文本文件1.txt和2.txt

[root@ayaka ~]# cd /var/ftp/pub/

[root@ayaka pub]# touch 1.txt

[root@ayaka pub]# touch 2.txt

[root@ayaka pub]# ls
1.txt 2.txt

2、在客户端上进入/pub目录

ftp> ls
227 Entering Passive Mode (192,168,123,101,75,103).
150 Here comes the directory listing.
-rw-r–r-- 1 0 0 0 May 09 10:37 1.txt
-rw-r–r-- 1 0 0 0 May 09 10:37 2.txt

将Vsftpd服务器上文件下载到客户端

进入pub目录 使用get命令将文件1.txt与2.txt下载到当前目录下,下载成功的过程如下

220 (vsFTPd 3.0.2)
Name (192.168.123.101:root): ftp
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> cd pub
250 Directory successfully changed.
ftp> ls
227 Entering Passive Mode (192,168,123,101,25,132).
150 Here comes the directory listing.
-rw-r--r--    1 0        0              50 May 09 10:54 1.txt
-rw-r--r--    1 0        0               0 May 09 10:37 2.txt
226 Directory send OK.
ftp> !pwd
/root
ftp> get 1.txt
local: 1.txt remote: 1.txt
227 Entering Passive Mode (192,168,123,101,145,74).
150 Opening BINARY mode data connection for 1.txt (50 bytes).
226 Transfer complete.
50 bytes received in 0.000134 secs (373.13 Kbytes/sec)
ftp> !ls
1  1.txt  anaconda-ks.cfg
ftp>

测试在Vsftp服务器创建目录

ftp> mkdir toto
550 Permission denied.
ftp

通过以上操作可以得出:在默认情况下,匿名用户一般只有从服务器服务器下载文件的权限,不能上传文件或进行其它操作

那如何让他变得有权限呢,接下来我们来配置vsftpd使得有上传文件或进行其它操作

更改vsftpd.conf文件,开启匿名用户上传,创建目录权限

将如下两个参数取消注释

29 #anon_upload_enable=YES //允许匿名文件上传文件

34 #anon_mkdir_write_enable=YES //允许匿名用户建立目录

取消注释后保存并退出 重启vsftpd服务让它生效

systemctl restart vsftpd

创建匿名用户上传目录

需要在/var/ftp目录下创建一个目录,修改目录的权限,让匿名用户具有写权限

[root@ayaka pub]# mkdir /var/ftp/hub
[root@ayaka pub]# chmod o+w /var/ftp/hub

上传目录

使用put命令把本地文件上传到FTP服务器上,具体过程如下。

[root@linux2 ~]# ftp 192.168.123.101
Connected to 192.168.123.101 (192.168.123.101).
220 (vsFTPd 3.0.2)
Name (192.168.123.101:root): ftp
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> cd hub  			//进入目录hub 
250 Directory successfully changed.
ftp> !ls			//执行本机Shell命令,显示当前内容 
1  1.txt  anaconda-ks.cfg  file1.txt
ftp> put 1   		//上传文件1
local: 1 remote: 1
227 Entering Passive Mode (192,168,123,101,176,227).
150 Ok to send data.
226 Transfer complete.
1664 bytes sent in 0.000814 secs (2044.23 Kbytes/sec)
ftp> ls -l          //查看hub目录中的文件列表
227 Entering Passive Mode (192,168,123,101,85,50).
150 Here comes the directory listing.
-rw-------    1 14       50           1664 May 09 11:26 1
226 Directory send OK.
ftp> mkdir tomato			//创建目录
257 "/hub/tomato" created				//创建目录成功
ftp> ls
227 Entering Passive Mode (192,168,123,101,99,18).
150 Here comes the directory listing.
-rw-------    1 14       50           1664 May 09 11:26 1
drwx------    2 14       50              6 May 09 11:35 tomato
226 Directory send OK.
ftp> 

2.本地用户访问Vsftp服务器

本地用户是在FTP服务器上拥有用户账户的用户,相当于FTP服务器中的真实实际用户,其通过输入自己的账号和口令来进行授权登录,当用户成功登录服务器后,其登录目录为用户的主目录,用户的权限对该主目录的操作权限,可以下载也可以上传文件。

下面我们将用实例来介绍本地用户登录服务器下载,上传文件的过程。

本地用户访问Vsftp服务器,本例Vsftp服务器的ip地址为192.168.123.101 客户端主机名为Client

Vsftp服务器建立用户ftpuser,并在用户的家目录建立文件toto和yoyo 命令如下

[root@ayaka pub]# useradd ftpuser

[root@ayaka pub]# echo “123” | passwd --stdin ftpuser //设置ftpuser的密码为123

[root@ayaka pub]# su - ftpuser //登录用户ftpuser

[ftpuser@ayaka ~]$ touch toto.txt

[ftpuser@ayaka ~]$ touch yoyo.txt

使用本地用户登录Vsftpd服务器后,其登录目录为用户的主目录/home/ftpuser,具体过程如下

[root@linux2 ~]# ftp 192.168.123.102
Connected to 192.168.123.102 (192.168.123.102).
220 (vsFTPd 3.0.2)
Name (192.168.123.102:root): ftpuser
331 Please specify the password.
Password:
530 Login incorrect.
Login failed.
ftp> ^Z
[2]+  已停止               ftp 192.168.123.102
[root@linux2 ~]#
[root@linux2 ~]# ftp 192.168.123.101
Connected to 192.168.123.101 (192.168.123.101).
220 (vsFTPd 3.0.2)
Name (192.168.123.101:root): ftpuser
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (192,168,123,101,56,176).
150 Here comes the directory listing.
-rw-rw-r--    1 1000     1000            0 May 09 11:44 toto.txt
-rw-rw-r--    1 1000     1000            0 May 09 11:44 yoyo.txt
226 Directory send OK.
ftp> pwd
257 "/home/ftpuser"
ftp>

创建目录

用户ftpuser创建目录tomato,具体操作如下

ftp> mkdir tomato
257 "/home/ftpuser/tomato" created
ftp> ls
227 Entering Passive Mode (192,168,123,101,244,9).
150 Here comes the directory listing.
drwxr-xr-x    2 1000     1000            6 May 09 11:52 tomato
-rw-rw-r--    1 1000     1000            0 May 09 11:44 toto.txt
-rw-rw-r--    1 1000     1000            0 May 09 11:44 yoyo.txt
226 Directory send OK.
ftp>

上传本地文件

用户ftpuser上传本地文件到服务器指定目录,具体操作如下:

ftp> !ls -l
总用量 16
-rw-r--r--. 1 root root 1664 1023 2020 1
-rw-r--r--. 1 root root   50 59 18:56 1.txt
-rw-------. 1 root root 1295 57 19:16 anaconda-ks.cfg
-rw-r--r--. 1 root root    7 59 19:20 file1.txt
ftp> !pwd
/root
ftp> put anaconda-ks.cfg				//上传本地文件
local: anaconda-ks.cfg remote: anaconda-ks.cfg
227 Entering Passive Mode (192,168,123,101,101,125).
150 Ok to send data.
226 Transfer complete.
1295 bytes sent in 0.00108 secs (1194.65 Kbytes/sec)
ftp> ls -l				//浏览远程目录,验证上传文件是否为本地文件
227 Entering Passive Mode (192,168,123,101,149,213).
150 Here comes the directory listing.
-rw-r--r--    1 1000     1000         1295 May 09 11:55 anaconda-ks.cfg
drwxr-xr-x    2 1000     1000            6 May 09 11:52 tomato
-rw-rw-r--    1 1000     1000            0 May 09 11:44 toto.txt
-rw-rw-r--    1 1000     1000            0 May 09 11:44 yoyo.txt
226 Directory send OK.
ftp>

下载服务器文件到本地

用ftpuser下载文件toto到本地当前目录下,下载文件yoyo到本地目录/tmp下,并且重命名为toto.bak 具体操作如下文章来源地址https://www.toymoban.com/news/detail-588931.html

ftp> get toto
local: toto remote: toto
227 Entering Passive Mode (192,168,123,101,206,168).
550 Failed to open file.
ftp> ls
227 Entering Passive Mode (192,168,123,101,98,221).
150 Here comes the directory listing.
-rw-r--r--    1 1000     1000         1295 May 09 11:55 anaconda-ks.cfg
drwxr-xr-x    2 1000     1000            6 May 09 11:52 tomato
-rw-rw-r--    1 1000     1000            0 May 09 11:44 toto.txt
-rw-rw-r--    1 1000     1000            0 May 09 11:44 yoyo.txt
226 Directory send OK.
ftp> get toto.txt           //下载文件到本地目录 
local: toto.txt remote: toto.txt
227 Entering Passive Mode (192,168,123,101,46,209).
150 Opening BINARY mode data connection for toto.txt (0 bytes).
226 Transfer complete.
ftp> !ls -l					//浏览本地目录,验证下载文件操作是否成功
总用量 16
-rw-r--r--. 1 root root 1664 1023 2020 1
-rw-r--r--. 1 root root   50 59 18:56 1.txt
-rw-------. 1 root root 1295 57 19:16 anaconda-ks.cfg
-rw-r--r--. 1 root root    7 59 19:20 file1.txt
-rw-r--r--. 1 root root    0 59 19:59 toto.txt
// 下载文件yoyo.txt 到 本地目录/tmp下 并重命名为yoyo.bak
tp> get yoyo.txt /tmp/yoyo.bak
local: /tmp/yoyo.bak remote: yoyo.txt
227 Entering Passive Mode (192,168,123,101,46,136).
150 Opening BINARY mode data connection for yoyo.txt (0 bytes).
226 Transfer complete.
ftp> lcd /tmp   进入本地目录/tmp 
Local directory now /tmp
ftp> !ls   //浏览验证本地目录是否有yoyo.bak 
ks-script-e7_otA                                                         yoyo.bak
systemd-private-7da9c4fa89d64f18a66b1cf3053c3ff6-chronyd.service-JoFutU  yum.log
vmware-root_797-4257069498
ftp>

到了这里,关于FTP服务器的搭建与文件目录详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Windows 10搭建FTP服务器实现局域网文件共享

    打开“控制面板”→单击“程序”→单击“启动或关闭Windoes功能” 在Internet information Services下勾选FTP服务和IIS相关服务,如下图所示: 勾选完成后单击“确定” 加载完成后重启电脑 打开“控制面板”→单击“管理工具”→单击“IIS管理器”,如下图所示: 右击“网站”→

    2024年02月03日
    浏览(37)
  • windows10ftp搭建,实现主机与虚拟机文件传输文件,以及解决FTP文件夹错误,无法与服务器建立连接。

    1.我是用的win10虚拟机来搭建ftp 首先,打开控制面板,点击程序 2.选择启用或关闭Windows功能 3.勾选以下选项,点击确定。这一步的主要目的是开启IIS管理控制台 进入等待 4.搜索IIS管理器,双击打开  5.右击网站,选择添加FTP站点  6.这时弹出下面界面, FTP站点名称 任意填写,

    2024年02月08日
    浏览(38)
  • 计算机 - - - windows电脑搭建FTP局域网文件传输服务器

    控制面板,打开程序和功能,启用或关闭Windows功能。 勾选这几个 然后点确定,应用更改成功后重启电脑生效。 打开IIS管理器。 添加ftp站点。 输入ftp站点名称,选择文件存放的物理路径。 ip地址设置为当前电脑的ip地址,端口默认21,无SSL。 身份验证选择匿名,基本(不选

    2024年02月07日
    浏览(37)
  • 搭建Serv-U FTP服务器共享文件外网远程访问「无公网IP」

    转载自内网穿透工具的文章:使用Serv-U搭建FTP服务器并公网访问【内网穿透】 科技日益发展的今天,移动电子设备似乎成了我们生活的主角,智能手机、平板电脑几乎从不离身。但智能手机和平板电脑也有缺憾,就是自身的存储容量实在太少,能随时调取资料的大容量存储设

    2024年02月03日
    浏览(42)
  • 搭建Serv-U FTP服务器共享文件并外网远程访问「无公网IP」

    转载自内网穿透工具的文章:使用Serv-U搭建FTP服务器并公网访问【内网穿透】 科技日益发展的今天,移动电子设备似乎成了我们生活的主角,智能手机、平板电脑几乎从不离身。但智能手机和平板电脑也有缺憾,就是自身的存储容量实在太少,能随时调取资料的大容量存储设

    2024年02月03日
    浏览(28)
  • 宝塔 ftp 服务器发回了不可路由的地址/读取目录列表失败

    ftp连接不上: 1.注意内网IP和外网IP 2.检查ftp服务是否启动 (面板首页即可看到) 3.检查防火墙 20 端口 ftp 21 端口及被动端口 39000 - 40000 是否放行 (如是腾讯云/阿里云等还需检查安全组) 4.是否主动/被动模式都不能连接 5.新建一个用户看是否能连接 6.修改ftp配置文件 将For

    2024年01月23日
    浏览(30)
  • 简单FTP客户端软件开发——搭建FTP服务器

    计网课程设计的要求是: 1) 该FTP客户端程序具有以下基本功能: 2) 开发美观易用的图形界面 FTP使用客户服务器方式,因为开发的是客户端,所以需要一个FTP服务器,客户端进行连接访问,进行文件操作。 前面我们已经安装好了Linux虚拟机,在Linux搭建FTP服务器原参考博客

    2024年02月03日
    浏览(42)
  • Linux搭建 FTP服务器

    vsftpd 是 very secure ftp daemon 的缩写,它是 Linux 上使用最受欢迎、使用最广泛的 FTP 服务器之一,它具有安全,速度快,稳定的特点,很多重要的 FTP 站点比如 ftp.gnu.org、ftp.freebsd.org 都是使用 vsftpd 作为服务器的。 工作模式 服务器使用两个端口和客户端通信,一个是命令端口,

    2024年02月05日
    浏览(40)
  • centos搭建FTP服务器

    在LINUX虚拟机上,使用vsftpd搭建一个FTP服务器,并创建一个用户名为“ftpuser”的用户,使用windows主机通过ftp向文件夹中复制一个名为自己姓名首字母的txt文件,拍照上传文件在ftp服务器中的情况截图。 步骤: 1.配置主机和虚拟机网络连通 2.在centos上通过yum指令安装vsftpd并启动

    2023年04月08日
    浏览(31)
  • 更安全的ftp服务器Pure-FTP搭建(4)

    实验简介 实验所属系列:Linux服务器搭建 实验对象: 本科/专科信息安全专业 相关课程及专业:计算机基础,计算机网络 实验时数(学分):2学时 实验类别:实践类 预备知识 本实验要求实验者具备如下的相关知识 也许您对FTP不陌生,但是您是否了解FTP到底是个什么玩意?

    2024年02月16日
    浏览(27)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包