目录
一、SRC
优秀blog
vsftpd是用来将节点上资源发布到网络上的工具。需要使用账号密码登录,这个账号可以是所在节点的linux系统用户,也可以是虚拟用户。默认访问登录用户的家目录下的资源,也可以设置为访问登录用户权限下的文件。
一般在所在节点创建1个ftp用户,然后在其家目录中放置资源,然后就可以通过ftp协议url访问了。
ftp是一种文件传输协议,基于这种协议的有许多ftp软件。ftp软件分为服务器:vsftpd 端和客户端:ftp,一般的linux发行版即使是min版,都会预装ftp。
ftp使用的端口默认有20,21。所以要保证这两个端口没有被防火墙拦截,而且没有被其他软件占用
20端口用来传输数据
21端口用来服务器与客户端之间传输指令
1. 优点
同一局域网内,没有网络也可以传输文件
可以做网盘
速度快
安全稳定
二、com
1. 虚拟用户
虚拟用户是指linux系统中不存在,但可以登录到ftp上的用户。一般禁止使用
vsftpd节点上创建用来登录的系统用户,必须使用passwd设置密码,因为登录要用
默认访问的是登录的系统用户的家目录
useradd -d 指定的家目录 用户名
usermod -d 指定的家目录 用户名
三、搭建ftp服务器
1. 安装 vsftpd。
yum install -y vsftpd
2. 配置:安装后自动在/etc/vsftpd/下生成配置文件
{1} vsftpd.conf需要做的修改
anonymous_enable=NO #禁止匿名访问,默认为YES,表示可以使用虚拟用户
anon_upload_enable=NO #禁止匿名用户上传
local_enable=YES #允许本地主机访问,表示可以使用系统用户登录
listen=YES #这里默认NO,listen_ipv6是YES,这样设置会启动不了,反过来就可以了
listen_ipv6=NO
#
userlist_enable=YES
userlist_deny=NO
local_root用来强制设置所有用户访问的目录,设置后,chroot_list失效,所有用户都会访问这个目录
local_root=/opt/ftpdata
{2} user_list
[1] local_enable=YES
后默认所有本地用户都可以登录,user_list用来进行过滤设置。
userlist_enable和userlist_deny 2个配置的关系的关系
当且仅当userlist_enable=YES时,user_list文件才会被使用:userlist_deny项的配置才有效;当其为NO时,无论userlist_deny项为何值都是无效的,本地全体用户(除去ftpusers中的用户)都可以登入FTP
当userlist_enable=YES时,userlist_deny=YES时:user_list是一个黑名单,即:所有出现在名单中的用户都会被拒绝登入;
当userlist_enable=YES时,userlist_deny=NO时:user_list是一个白名单,即:只有出现在名单中的用户才会被准许登入(user_list之外的用户都被拒绝登入);另外需要特别提醒的是:使用白名单后,匿名用户将无法登入!除非显式在user_list中加入一行:anonymous
[2] 落地使用
添加ftpuser用户,只需要添加用户名,密码不需要在这设,会读取系统用户信息
一行一个用户名
{3} ftpusers
ftpusers不受任何配制项的影响,永远生效的黑名单
{4} 创建chroot_list文件(默认没有)
[1] 用来设置登录用户是否只能访问家目录
x | chroot_local_user=YES | chroot_local_user=NO |
---|---|---|
chroot_list_enable=YES | 1.所有用户都被限制在其主目录下 2.使用chroot_list_file指定的用户列表,这些用户作为“例外”,不受限制 | 1.所有用户都不被限制其主目录下 2.使用chroot_list_file指定的用户列表,这些用户作为“例外”,受到限制 |
chroot_list_enable=NO | 1.所有用户都被限制在其主目录下 2.不使用chroot_list_file指定的用户列表,没有任何“例外”用户 | 1.所有用户都不被限制其主目录下 2.不使用chroot_list_file指定的用户列表,没有任何“例外”用户 |
[2] 落地使用
添加ftpuser用户
3. 启动
systemctl start vsftpd
4. browser访问
在浏览器输入ftp://ip即可,注意不要输入端口
四、linux下ftp的使用
ftp ftp服务器的ip
之后会提示输入账号密码
ftp 用户名:密码@ip
输入后进入ftp界面
command | desc |
---|---|
ls(没有ll) | 查看文件列表 |
cd | |
bin | 切换为bin模式 |
get [remote-file] [local-file] | 从远端主机中传送至本地主机中. |
mget [remote-files] | 可一次性下载多个,可以使用* ,会下载到linux的当前目录下 |
put local-file [remote-file] | 将本地一个文件传送至远端主机中. |
mkdir | 创建文件夹 |
lcd、lpwd | 在命令前面加上 l 表示在本机操作(local),上传时会很方便 |
ascii 、asc | 设定以ASCII方式传送文件(缺省值) |
binary | 设定以二进制方式传送文件. |
bell | 每完成一次文件传送,报警提示. |
case | 当为ON时,用MGET命令拷贝的文件名到本地机器中,全部转换为小写字母. |
cd | 同UNIX的CD命令. |
cdup | 返回上一级目录. |
chmod | 改变远端主机的文件权限. |
close | 终止远端的FTP进程,返回到FTP命令状态, 所有的宏定义都被删除. |
delete | 删除远端主机中的文件. |
dir [remote-directory] [local-file] | 列出当前远端主机目录中的文件.如果有本地文件,就将结果写至本地文件. |
ls [remote-directory] [local-file] | 同DIR. |
help [command] | 输出命令的解释. |
lcd | 改变当前本地主机的工作目录,如果缺省,就转到当前用户的HOME目录. |
macdef | 定义宏命令. |
mdelete [remote-files] | 删除一批文件. |
mget [remote-files] | 从远端主机接收一批文件至本地主机. |
mkdir directory-name | 在远端主机中建立目录. |
mput local-files | 将本地主机中一批文件传送至远端主机. |
open host [port] | 重新建立一个新的连接. |
prompt | 交互提示模式. |
pwd | 列出当前远端主机目录. |
recv remote-file [local-file] | 同GET. |
rename [from] [to] | 改变远端主机中的文件名. |
rmdir directory-name | 删除远端主机中的目录. |
send local-file [remote-file] | 同PUT. |
status | 显示当前FTP的状态. |
system | 显示远端主机系统类型. |
user user-name [password] [account] | 重新以别的用户名登录远端主机. |
? [command] | 同HELP. [command]指定需要帮助的命令名称。如果没有指定 command,ftp 将显示全部命令的列表。 |
! | 从 ftp 子系统退出到外壳。 |
bye、quit 、exit | 终止主机FTP进程,并退出FTP管理方式. |