CentOS 6.5 & CentOS 7 rpm安装ftp服务端与ftp客户端「建议收藏」

2022-11-01 16:28:31 浏览数 (1)

一、rpm安装ftp服务端

1、查看是否安装vsftp

代码语言:javascript复制
rpm -qa|grep vsftpd

如果出现vsftpd,说明已经安装 vsftp

2、下载vsftpd:

我这里下载的是vsftpd-2.2.2-24.el6.x86_64.rpm 下载地址:ftp服务端程序vsftpd-2.2.2-24.el6.x86_64.rpm 以及ftp客户端 ftp-0.17-54.el6.x86_64.rpm

3、安装vsftpd

代码语言:javascript复制
rpm -ivh vsftpd-2.2.2-24.el6.x86_64.rpm

4、测试是否安装成功

代码语言:javascript复制
service vsftpd start

为 vsftpd 启动 vsftp

5、配置vsftpd

代码语言:javascript复制
whereis vsftpd
代码语言:javascript复制
cd /etc/vsftpd/
代码语言:javascript复制
cp vsftpd.conf vsftpd.conf_bak

效果如下图:

编辑vsftpd.conf文件:

代码语言:javascript复制
vim vsftpd.conf

在文件末尾添加以下内容(我的配置,采用被动模式):

代码语言:javascript复制
#启动被动式联机(passivemode), 必须设置为 YES!开启被动模式
pasv_enable=YES
#30000-30999(开放1000个端口用于被动模式调用)
pasv_min_port=30000
pasv_max_port=30999
#默认是 50,限制了同一IP地址客户端连接数。0表示不限制,如果配置具体数值,则数值不要小于2000。
max_per_ip=0
#默认是 100,限制了所有用户连接数。0表示不限制,如果配置具体数值,则数值不要小于2000。
max_clients=0
#解决ftp登陆慢问题
reverse_lookup_enable=NO
#FTP访问目录
local_root=/home/userftp/
#关闭匿名用户登录,为设置允许登录的用户提供前提。
anonymous_enable=NO
# 修改连接端口
listen_port=32121

6、vsftpd.conf文件的其它参数(可供参考):

代码语言:javascript复制
核心设置
# 允许本地用户登录
local_enable=YES
# 本地用户的写权限
write_enable=YES
# 使用FTP的本地文件权限,默认为077
# 一般设置为022
local_umask=022
# 切换目录时
# 是否显示目录下.message的内容
dirmessage_enable=YES
dirlist_enable = NO
#验证方式
#pam_service_name=vsftpd
# 启用FTP数据端口的数据连接
connect_from_port_20=YES
# 以独立的FTP服务运行
listen=yes
# 修改连接端口
#listen_port=2121
匿名登录设置
# 允许匿名登录
anonymous_enable=NO
# 如果允许匿名登录
# 是否开启匿名上传权限
#anon_upload_enable=YES
# 如果允许匿名登录
# 是否允许匿名建立文件夹并在文件夹内上传文件
#anon_mkdir_write_enable=YES
# 如果允许匿名登录
# 匿名帐号可以有删除的权限
#anon_other_write_enable=yes
# 如果允许匿名登录
# 匿名的下载权限
# 匿名为Other,可设置目录/文件属性控制
#anon_world_readable_only=no
# 如果允许匿名登录
# 限制匿名用户传输速率,单位bite
#anon_max_rate=30000
用户限制设置
限制登录
# 用userlist来限制用户访问
#userlist_enable=yes
# 名单中的人不允许访问
#userlist_deny=no
# 限制名单文件放置的路径
#userlist_file=/etc/vsftpd/userlist_deny.chroot
限制目录
# 限制所有用户都在家目录
#chroot_local_user=yes
# 调用限制在家目录的用户名单
chroot_list_enable=YES
# 限制在家目录的用户名单所在路径
chroot_list_file=/etc/vsftpd/chroot_list
日志设置
# 日志文件路径设置
xferlog_file=/var/log/vsftpd.log
# 激活上传/下载的日志
xferlog_enable=YES
# 使用标准的日志格式
#xferlog_std_format=YES
安全设置
# 用户空闲超时,单位秒
#idle_session_timeout=600
# 数据连接空闲超时,单位秒
#data_connection_timeout=120
# 将客户端空闲1分钟后断开
#accept_timeout=60
# 中断1分钟后重新连接
#connect_timeout=60
# 本地用户传输速率,单位bite
#local_max_rate=50000
# FTP的最大连接数
#max_clients=200
# 每IP的最大连接数
#max_per_ip=5
被动模式设置
# 是否开户被动模式
pasv_enable=yes
# 被动模式最小端口
pasv_min_port=5000
# 被动模式最大端口
pasv_max_port=6000
其他设置
# 欢迎信息
ftpd_banner=Welcome to Ftp Server!

7、 添加ftp防火墙规则:

7.1、针对centos6.5

#防火墙放开32121端口(默认21,这里我指定了32121端口)

代码语言:javascript复制
/sbin/iptables -I INPUT -p tcp --dport 32121 -j ACCEPT

#防火墙放开30000-30999端口

代码语言:javascript复制
/sbin/iptables -I INPUT -p tcp --dport 30000-30999 -j ACCEPT

#将更改进行保存

代码语言:javascript复制
/etc/rc.d/init.d/iptables save 

#重启防火墙以便改动生效,当然如果不觉得麻烦也可重启系统(命令:reboot)

代码语言:javascript复制
/etc/init.d/iptables restart 

查看打开端口命令

代码语言:javascript复制
/etc/init.d/iptables status
7.2、针对centos7

#防火墙放开32121端口

代码语言:javascript复制
firewall-cmd --add-port=32121/tcp --permanent

#防火墙放开30000-30999端口

代码语言:javascript复制
firewall-cmd --add-port=30000-30999/tcp --permanent

#将更改进行保存

代码语言:javascript复制
firewall-cmd --reload

查看当前开放的端口:

代码语言:javascript复制
firewall-cmd --zone=public --list-ports

8、 添加用户(注意,该处添加nologin类型用户ftpuser):

添加nologin类型用户

代码语言:javascript复制
useradd -s /sbin/nologin -d /home/ftpuser ftpuser

ftpuser 设置ftpuser的密码

代码语言:javascript复制
passwd ftpuser

注意后面要输两次ftpuser要设置的密码,前后一致

9、重新启动

对于centos6.5:

代码语言:javascript复制
service vsftpd stop
代码语言:javascript复制
service vsftpd start

对于centos7,还可以使用:

代码语言:javascript复制
systemctl start vsftpd.service

查看是否启动:

代码语言:javascript复制
systemctl status vsftpd.service

二、rpm安装ftp客户端

安装后即可使用ftp命令在本机进行测试

1、下载

我这里下载的是ftp-0.17-54.el6.x86_64.rpm这个版本 下载地址同上:ftp服务端程序vsftpd-2.2.2-24.el6.x86_64.rpm 以及ftp客户端 ftp-0.17-54.el6.x86_64.rpm

2、安装

代码语言:javascript复制
rpm -Uvh ftp-0.17-54.el6.x86_64.rpm

3、使用ftp命令在本机进行测试

命令格式 : ftp 本机ip 端口

代码语言:javascript复制
ftp 192.168.77.135

然后分三步操作:

  • 输入用户名
  • 输入密码
  • ls查看ftp目录

至此,ftp安装测试就完成了!

三、ftp常用命令

3.1 常用FTP命令

许多FTP命令与您在Linux shell提示符中键入的命令类似或相同。

以下是一些最常见的FTP命令

  • help或? – 列出所有可用的FTP命令。
  • cd – 更改远程计算机上的目录。
  • lcd – 更改本地计算机上的目录。
  • ls – 列出当前远程目录中的文件和目录的名称。
  • mkdir – 在当前远程目录中创建一个新目录。
  • pwd – 打印远程计算机上的当前工作目录。
  • delete – 删除当前远程目录中的文件。
  • rmdir – 删除当前远程目录中的目录。
  • get – 将一个文件从远程复制到本地计算机。
  • mget – 将多个文件从远程复制到本地计算机。
  • put – 将一个文件从本地复制到远程计算机。
  • mput – 将一个文件从本地复制到远程计算机。

3.2 使用FTP命令下载文件

登录后,您当前的工作目录是远程用户主目录。

使用该ftp命令下载文件时,文件将下载到您键入ftp命令的目录中。

如果要将文件下载到另一个本地目录,请使用该lcd命令切换到该目录。

假设我们要将文件下载到~/ftp_downloads目录:

代码语言:javascript复制
lcd ~/ftp_downloads

要从远程服务器下载单个文件,请使用该get命令。例如,要下载名为的文件,请backup.zip使用以下命令:

代码语言:javascript复制
get backup.zip

输出应该如下所示:

200 PORT command successful 150-Connecting to port 60609 150 6516.9 kbytes to download 226-File successfully transferred 226 2.356 seconds (measured here), 2.70 Mbytes per second 6673256 bytes received in 2.55 seconds (2.49 Mbytes/s) 要一次下载多个文件,请使用该mget命令。您可以提供单个文件名列表或使用通配符。

代码语言:javascript复制
mget backup1.zip backup2.zip

下载多个文件时,系统将提示您确认每个文件。

代码语言:javascript复制
mget backup1.zip? y

200 PORT command successful 150 Connecting to port 52231 226-File successfully transferred 226 0.000 seconds (measured here), 31.51 Kbytes per second 14 bytes received in 0.00058 seconds (23.6 kbytes/s)

代码语言:javascript复制
mget backup2.zip? y

200 PORT command successful 150-Connecting to port 59179 150 7.2 kbytes to download 226-File successfully transferred 226 0.000 seconds (measured here), 16.68 Mbytes per second 7415 bytes received in 0.011 seconds (661 kbytes/s) 完成从远程FTP服务器下载文件后,bye或关闭连接quit。

代码语言:javascript复制
quit

221-Goodbye. You uploaded 0 and downloaded 6544 kbytes. 221 Logout.

3.3使用FTP命令上传文件

要将文件从本地目录上载到远程FTP服务器,请使用以下put命令:

代码语言:javascript复制
put image.jpg

输出应该如下所示:

200 PORT command successful 150 Connecting to port 34583 226-File successfully transferred 226 0.849 seconds (measured here), 111.48 Kbytes per second 96936 bytes sent in 0.421 seconds (225 kbytes/s) 如果要上载不在当前工作目录中的文件,请使用该文件的绝对路径。

要将多个文件从本地目录上载到远程FTP服务器,请使用以下mput命令:

代码语言:javascript复制
mput image1.jpg image2.jpg
代码语言:javascript复制
mput image1.jpg? y

200 PORT command successful 150 Connecting to port 41075 226-File successfully transferred 226 1.439 seconds (measured here), 102.89 Kbytes per second 151586 bytes sent in 1.07 seconds (138 kbytes/s)

代码语言:javascript复制
mput image2.jpg? y

200 PORT command successful 150 Connecting to port 40759 226-File successfully transferred 226 1.727 seconds (measured here), 111.75 Kbytes per second 197565 bytes sent in 1.39 seconds (138 kbytes/s)

上传多个文件时,系统将提示您确认要上传的每个文件。 完成上传文件到远程FTP服务器后,用bye或关闭连接quit。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/179635.html原文链接:https://javaforall.cn

0 人点赞