Linux在物理机和虚拟机上配置ftp 实现文件上传下载功能

一、 FTP服务的基本配置包括以下几项:
用户权限配置:可以通过配置用户账户和目录访问权限来限制FTP用户的访问权限以及文件上传下载的权限。

端口配置:FTP服务需要开放TCP端口21(控制端口)和20(数据端口),可以在防火墙和路由器等网络设备中进行相应的配置。

SSL/TLS加密配置:可以配置FTP服务启用SSL/TLS加密协议来保证数据传输的安全,可以使用openssl命令生成证书及相关配置。

PASV被动模式配置:当FTP服务器被放在防火墙之后,需要使用PASV被动模式来绕过防火墙的限制。

匿名访问配置:可以配置FTP服务器支持匿名访问,通过设置允许的目录和访问权限来实现功能。

二.安装ftp

1.如果没有安装ftp,就安装vsftpd软件包:如下

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

2.备份主配置文件:

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

#备份是防止操作过程中把原系统文件弄损坏。

3.编辑主配置文件,启用白名单:
启用FTP服务的白名单,可以通过在主配置文件中添加 allow/deny 规则来限制FTP用户能够访问的IP地址或IP地址段。在编辑主配置文件 /etc/vsftpd.conf 时

为了启用白名单,需要对 listen_address 配置项进行修改,并添加 allow/deny 规则,将合法的IP地址或IP地址段列出来,如下所示:

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

4.在系统中添加本地账号zhangsan和lisi:

[root@localhost ~]# useradd lisi

[root@localhost ~]# passwd lisi

5.查看已有的系统本地普通账号:

[root@localhost ~]# tail -3 /etc/passwd

6.关闭防火墙:

[root@localhost ~]# systemctl stop firewalld

[root@localhost ~]# setenforce 0

7.启动ftp服务:

[root@localhost ~]# systemctl start  vsftpd

如果在配置FTP服务启用白名单时出现启动失败的情况,可能是由于配置文件存在语法错误或者规则设置有误引起的。

8.验证

在物理机资源管理器地址栏输入ftp协议及服务器IP地址:

尝试上传文件 成功

9.检查运行状态和自动启动

以下命令检查FTP服务的运行状态

sudo systemctl status vsftpd

为了确保FTP服务在系统启动时自动启动,可以使用以下命令启用FTP服务的自启动功能:

sudo systemctl enable vsftpd

修改完成后,保存修改并使用以下命令重启FTP服务:

sudo systemctl restart vsftpd

10.配置FTP服务限制权限

配置FTP服务,可以编辑 /etc/vsftpd/vsftpd.conf 文件,修改FTP用户的访问权限和文件上传下载的限制等

在命令控制符中连接虚拟机,并且完成文件的上传与下载


C:\Users\86150>ftp 192.168.2.3
连接到 192.168.2.3。
220 (vsFTPd 3.0.2)
200 Always in UTF8 mode.
用户(192.168.2.3:(none)): te     #虚拟机新建的用户
331 Please specify the password.
密码:
230 Login successful.
ftp> ls -a
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
.
..
pub
test.txt    #创建的文本文件
226 Directory send OK.
ftp: 收到 25 字节,用时 0.00秒 12.50千字节/秒。
ftp> get test.txt   #获取即本机下载文本文件
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for test.txt (13 bytes).
226 Transfer complete.
ftp: 收到 13 字节,用时 0.00秒 13000.00千字节/秒。
ftp> put test.txt    #上传文本文件
200 PORT command successful. Consider using PASV.
553 Could not create file.

三、总结
FTP(File Transfer Protocol)是一种用于在计算机之间传输文件的标准网络协议。以下是关于在Linux系统上进行FTP配置的总结:

安装FTP服务器:在Linux系统中,我们可以使用vsftpd、ProFTPD等FTP服务器软件来支持FTP服务。我们需要在Linux系统上使用yum等软件包管理器安装FTP服务器软件。

配置FTP服务器:安装完成FTP服务器后,我们需要配置FTP服务器来支持用户访问和文件传输。在FTP服务器中,我们可以指定FTP的根目录、管理用户和分配权限等。可以在/etc/vsftpd/vsftpd.conf文件中配置FTP服务器。

添加FTP用户:我们需要为FTP服务器添加用户,从而允许用户上传和下载文件。在Linux系统中,我们可以使用useradd和passwd命令来创建FTP用户,并通过chroot命令指定FTP的根目录。

防火墙配置:在Linux系统中,我们通常需要打开FTP服务器所需的端口以允许传输。我们可以在Linux系统中的防火墙中配置相应的规则,以确保FTP客户端和服务器之间的正常通信。

测试FTP服务:在设置和配置FTP服务器后,我们需要测试是否正常工作。我们可以使用FTP客户端工具(如FileZilla)连接到FTP服务器,并使用FTP客户端进行文件上传和下载等操作,以测试配置是否正常运行。

FTP服务器配置 VSFTP配置文件路径:/etc/vsftpd/vsftpd.conf,重要参数: anonymous_enable=yes/no 是否允许匿名用户访问 anon_upload_enable=yes/no 是否允许匿名用户上传文件 anon_mkdir_write_enable=yes/no 是否允许匿名用户创建目录 anon_other_write_enable=yes/no 匿名用户和虚拟用户是否拥有删除权限 local_enable=yes/no 是否允许本地用户登陆 write_enable=yes/no 设置全局是否可写 anon_root=/var 指定匿名用户目录 chroot_local_user=yes 锁定所有用户用户主目录 chroot_list_enable=yes/no 锁定列表中的用户到主目录,需要配合下一参数使用 chroot_list_file=/etc/vsftpd/chroot_list 指定存储被锁定用户的列表文件位置 chown_uploads=yes/no 匿名用户上传所有者指定功能,需要与下一参数配合使用 chown_username=用户名 指定匿名用户上传文件的所有者 max_clients=300 最大客户端连接数为300 anon_max_rate=30000 匿名用户和虚拟用户限速为30K/S local_max_rate=30000 本地用户限速为30K/S max_per_ip=10 每个IP最大连接数 listen_port=22 更改监听端口 实现如下要求:允许匿名用户登陆,匿名用户限速为60K/S,只允许下载。监听端口为22,最大连接数为10。新建用户ftp1,限速为200K/S,允许上传下载删除新建文件夹。进入目录/etc/vsftpd,用vi编辑器打开vsftpd.conf主配置文件: 直接添加以下选项: [root@LidadeFedora vsftpd]# service vsftpd restart 添加用户ftp1,设置登录脚本为 /sbin/nologin: vsftp默认目录为:/var/ftp,为方便测试,在/var/ftp下新建一个文件"testLocal",在"/var/ftp/pub"新建一个文件"testAnon"。 由于使用root用户新建文件,文件的所有者为root,所以需要把文件的权限设置为644其他用户才能读取该文件 设置/var/ftp/pub权限为777,表示所有用户均有读写权限. 由于端口22被ssh服务器占用,所以需要关闭ssh服务并重启vsftp服务。 客户端用Flashfxp测试:新建站点"VsftpTest",输入Vsftp服务器的IP地址,端口填22,用户名填ftp1,密码填你设置的密码,然后点击"连接"按钮: 由于没有使用选项:local_root,登陆本地用户时自动跳转到该用户的主目录.没有使用chroot_local_user=yes,所以本地用户可以浏览整个文件系统中他有权限读取的文件和文件夹: 切换到目录"/var/ftp/pub",该目录的权限为777,上传一个10M以上的文件,测试ftp1的上传速度: 新建文件夹和删除权限测试省略。下面测试匿名用户权限:勾选"匿名"选项并连接: 匿名用户登陆成功: 进入pub目录,尝试删除testAnon文件失败,说明这里是配置文件中的anon_other_write_enable=no生效了。最终权限等于配置文件中的权限和linux文件系统权限相或的结果。比如vsftp配置文件中允许匿名用户下载,但光这样是不够的,还需要被下载的文件或文件夹的能够被其他用户读取。 尝试上传文件失败,符合匿名用户只允许下载的要求: 最后测试匿名用户下载速度: vsftp配置
好的,这是一个关于实现 Windows 物理机和 Ubuntu Linux 虚拟机之间互通的问题,需要安装 vsftpd 服务器设置 FTP 共享,同时支持匿名和用户访问,最后通过 Windows 物理机和 Linux 虚拟机测试下载和上传。下面是实现步骤: 1. 首先在 Ubuntu Linux 虚拟机中安装 vsftpd 服务器,可以使用以下命令: ``` sudo apt-get update sudo apt-get install vsftpd ``` 2. 安装完成后,需要对 vsftpd 服务器进行配置。打开 vsftpd 配置文件 /etc/vsftpd.conf,可以使用以下命令进行编辑: ``` sudo nano /etc/vsftpd.conf ``` 在文件中添加以下配置项: ``` anonymous_enable=YES 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 secure_chroot_dir=/var/run/vsftpd/empty pam_service_name=vsftpd ``` 这些配置项将允许匿名用户和本地用户访问 FTP 服务器,并且可以上传和下载文件。另外,chroot_local_user=YES 表示限制用户只能访问他们的主目录,这可以增强 FTP 服务器的安全性。 3. 接下来,需要启动 vsftpd 服务器。可以使用以下命令: ``` sudo service vsftpd start ``` 4. 在 Windows 物理机上,可以使用 FTP 客户端软件(如 FileZilla)连接到 Ubuntu Linux 虚拟机的 vsftpd 服务器。输入虚拟机的 IP 地址、FTP 用户名和密码即可连接。 5. 可以在 FTP 客户端软件中测试上传和下载文件,以验证 Windows 物理机和 Ubuntu Linux 虚拟机之间的互通。 6. 如果需要增加 RedHat Linux 的互通,可以在 RedHat Linux 中安装 vsftpd 服务器并进行配置,然后在 FTP 客户端软件中连接即可。 以上就是实现 Windows 物理机和 Ubuntu Linux 虚拟机之间互通的步骤。希望对你有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值