一、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