vsftpd (附脚本)

目录

什么是vsftpd

补充:

osi 7层参考模型

tcp/ip 4层模型

web服务器apache

安装软件(服务器端)

启动服务

测试

客户端

下载文件

下载目录

上传文件

上传目录

切换本地路径

本地账户和匿名账户

工作模式

客户端向服务端发起请求

附:脚本实现:安装vsftpd并配置文件上传下载功能

服务端

注意设置静态IP

​编辑

服务端远程


什么是vsftpd

vsftpd 是"very secure FTP daemon"的缩写,安全性是它的一个最大的特点。vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux、BSD、Solaris、 HP-UNIX等系统上面,是一个完全免费的、开放源代码的ftp服务器软件,支持很多其他的 FTP 服务器所不支持的特征。比如:非常高的安全性需求、带宽限制、良好的可伸缩性、可创建虚拟用户、支持IPv6、速率高等。

vsftpd是软件的名字  是一个ftp服务  运行在应用层的服务

用来做文件下载服务器使用

补充:

osi 7层参考模型

应用层

表示层

会话层

传输层

网络层

数据链路层

物理层

tcp/ip 4层模型

应用层   ftp 应用层协议  nfs http nginx  sshd

传输层   21 20   80   22

网络层

数据链路层

物理层

给开发者做参考  网络应用  web

web服务器apache

apache  nginx 都是web服务

apache 排名第一   全球使用量30%

nginx   排名第二    全球使用量30%

google

ibm

apache 重  并发量低  非常稳定

nginx    轻量级的web服务器  高并发  配置方便

安装软件(服务器端)

# yum install vsftpd -y

启动服务

# systemctl start vsftpd
# lsof -i:21

测试

# touch a.txt
# cp a.txt /var/ftp/pub
# echo hello > /var/ftp/pub/a.txt

客户端

可以使用  浏览器  资源管理器 图形第三方客户端工具 命令行的ftp客户端 当作客户端 

命令行工具lftp

# yum install vsftpd -y
# yum install  lftp -y
# ping 服务端ip
下载文件
 # lftp 服务端ip地址
 > cd pub
 > get a.txt
 > get -O 本地路径  a.txt
下载目录
> mirror /test  目的目录
> mirror /test /test
上传文件
修改配置文件,打开上传功能
# vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES

# systemctl restart vsftpd

# lftp 192.168.26.176
> cd pub
> put  a.txt   //如果上传不了,查看目录权限
> mkdir hello
注意:刚上传到的文件下载不了,需要改权限

上传文件需要更改的权限
chmod 777 /var/ftp/pub -R
下载文件需要更改的权限
chmod 777 /var/ftp/pub/a.txt 

注意:/var/ftp 这个目录的权限最高755

上传目录
> mirror -R /test
切换本地路径
>lcd

lcd 命令只影响本地计算机上的工作目录,而不是远程服务器上的目录。要更改远程服务器上的目录,请使用 cd 命令。

本地账户和匿名账户

用给ftp的账户
本地账户:系统账户可以当作vsftpd服务的账户使用

匿名账户:使用"ftp"账户当作vsftpd的账户 默认就是它 不需要加用户名

# lftp 服务端ip

# lftp -u ftp 服务端ip

匿名账户发布文件的默认目录:/var/ftp/

# lftp -u 服务端ip
本地账户发布文件的默认目录:账户的家目录

# lftp -u lilei,密码 服务端ip

工作模式

主动模式

被动模式

  • FTP主动模式:客户端从一个任意的端口N(N>1024)连接到FTP服务器的port 21命令端口,客户端开始监听端口N+1,并发送FTP命令“port N+1”到FTP服务器,FTP服务器以数据端口(20)连接到客户端指定的数据端口(N+1)。

  • FTP被动模式:客户端从一个任意的端口N(N>1024)连接到FTP服务器的port 21命令端口,客户端开始监听端口N+1,客户端提交 PASV命令,服务器会开启一个任意的端口(P >1024),并发送PORT P命令给客户端。客户端发起从本地端口N+1到服务器的端口P的连接用来传送数据。

客户端向服务端发起请求
# vim /etc/vsftpd/vsftpd.conf
pasv_min_port 1025
pasv_max_port 1030

# systemctl restart vsftpd

附:脚本实现:安装vsftpd并配置文件上传下载功能

服务端
vim vsftpd_install.sh

#! /bin/bash

systemctl stop vsftpd
yum erase vsftpd -y &> /dev/null
rm -rf /etc/vsftpd/vsftpd.conf

systemctl disable firewalld
setenforce 0

yum install vsftpd lftp -y &> /dev/null
systemctl start vsftpd

if [ $? -eq 0 ];then
   echo Vsftpd 安装  [成功]
else
   echo Vsftpd 安装 [失败]
   exit
fi

#修改配置文件
#cp /vsftpd.conf /etc

echo  'anon_upload_enable=YES' >> /etc/vsftpd/vsftpd.conf
echo 'anon_mkdir_write_enable=YES' >> /etc/vsftpd/vsftpd.conf

systemctl restart vsftpd

# ======================客户端测试=====================================================

echo test >> /testfile
rm -rf /var/ftp/pub/*
chmod 777 /var/ftp/pub -R

ip=`cat /etc/sysconfig/network-scripts/ifcfg-ens33 | grep IPADDR | cut -d '=' -f 2`

#注意查看一下配置文件是否存在,选择合适分隔符号

#上传功能测试
lftp $ip <<EOF
cd pub
put /testfile
exit
EOF

if [ -e /var/ftp/pub/testfile ];then
    echo 上传功能配置成功
else
    echo 上传功能配置失败
    exit
fi

# 下载功能测试
chmod 777 /var/ftp/pub/testfile

rm -rf /tmp/*
lftp $ip <<EOF
cd pub
get -O /tmp/ testfile
exit
EOF

if [ -e /tmp/testfile ];then
    echo 下载功能配置成功
else
    echo 下载功能配置失败
    exit
fi
注意设置静态IP
# vim /etc/sysconfig/network-scripts/ifcfg-ens33

NAME=ens33
BOOTPROTO=static
DEVICE=ens33
ONBOOT=yes
IPADDR=ip地址
PREFIX=24
GATEWAY=网关
DNS1=域名

服务端远程
vim vsftpd_install.sh

#! /bin/bash

systemctl stop vsftpd
yum erase vsftpd -y &> /dev/null
rm -rf /etc/vsftpd/vsftpd.conf

systemctl disable firewalld
setenforce 0

yum install vsftpd lftp -y &> /dev/null
systemctl start vsftpd

if [ $? -eq 0 ];then
   echo Vsftpd 安装  [成功]
else
   echo Vsftpd 安装 [失败]
   exit
fi

#修改配置文件
#cp /vsftpd.conf /etc

echo  'anon_upload_enable=YES' >> /etc/vsftpd/vsftpd.conf
echo 'anon_mkdir_write_enable=YES' >> /etc/vsftpd/vsftpd.conf

systemctl restart vsftpd

#===============================远程客户端测试==========================================
scp lftp.sh 客户端ip:/
ssh 客户端ip 'bash /lftp.sh'
vim lftp.sh
# ======================客户端测试================================
ip=服务端ip

# 创建测试文件
echo test >> /testfile

ssh $ip 'rm -rf /var/ftp/pub/*'

ssh $ip 'chmod 777 /var/ftp/pub -R'


#上传功能测试
lftp $ip <<EOF
cd pub
put /testfile
exit
EOF

ssh $ip 'if [ -e /var/ftp/pub/testfile ];then
    echo 上传功能配置成功
else
    echo 上传功能配置失败
    exit
fi'

# 下载功能测试
ssh $ip 'chmod 777 /var/ftp/pub/testfile'

rm -rf /tmp/*

lftp $ip <<EOF
cd pub
get -O /tmp/ testfile
exit
EOF

if [ -e /tmp/testfile ];then
    echo 下载功能配置成功
else
    echo 下载功能配置失败
    exit
fi

客户端需要提前设置免密登录

client操作:制作密钥对
# ssh-keygen       //一路回车
# cd /root/.ssh/
# ls
id_rsa(私钥)  id_rsa.pub(公钥)  known_hosts

私钥自己拿着 不能给别人
公钥给别人  公钥给了谁,拿着公钥的人就能远程登录谁

拷贝公钥(id_rsa.pub文件的内容)到远程机器上
# ssh-copy-id  服务端ip

测试无密码登录:
# ssh 客户端ip

最后结果图示:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值