linux环境

1
2
3
4
5
LSB Version:    :core-4.1-amd64:core-4.1-noarch
Distributor ID: CentOS
Description:    CentOS Linux release 7.3.1611 (Core) 
Release:    7.3.1611
Codename:   Core

安装

1
2
3
4
5
6
yum install vsftpd

systemctl restart vsftpd.service   # 重启vsftpd
systemctl stop vsftpd.service      # 停止vsftpd
systemctl start vsftpd.service     # 启动vsftpd
systemctl status vsftpd.service    # 查看vsftpd的状态

匿名配置

服务器配置文件

位置:/etc/vsftpd/vsftpd.conf
坑:从网上购买的服务器(阿里云)要从控制台开放ftp的端口,建议放开全部端口,如果有需要限制,再限制,否则会出现登录失败的问题
防火墙:开放所需端口


匿名设置:配置文件内容

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
anonymous_enable=YES    #允许匿名登录
local_enable=YES
write_enable=YES
local_umask=022         #匿名上传的默认权限,匿名不能修改生效,只能上传删除     
anon_upload_enable=YES      #允许匿名上传
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/xferlog
xferlog_std_format=YES
listen=YES
listen_ipv6=NO

pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES

匿名用户的默认根目录:/var/ftp/pub
需要更改权限:chmod -R 755 /var/ftp/pub

客户端(deepin)

安装:

1
2
sudo apt-get install vsftpd
sudo apt-get install lftp

匿名连接ftp服务器

1
lftp IP

常用命令

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
lpwd 当地目录
pwd 远程目录
lcd 本地切换目录
cd 远程切换目录
mput hello.c aaa.txt 上传多个文件
--------------------------------
put 上传单个文件
mput 上传多个文件
get 下载单个文件
mget 下载多个文件
mirror 下载整个目录及其子目录
mirror -R 上传整个目录及其子目录
退出 bye、quit、exit

详细请谷歌、百度,help一下
至此,匿名用户可以用终端上传下载文件!!!

浏览器访问ftp服务器

在地址栏中输入ftp://服务器ip地址

文件管理器访问ftp服务器

在地址栏中输入ftp://服务器ip地址

让其他人下载

匿名用户不能修改文件的权限,只能上传和删除,如果要能让别人下载,需要使用用户登录服务器,为下载的文件添加执行权限
至此,可以用浏览器和文件管理器下载分享的文件了

wget下载

使用wget ftp://IP地址/pub/ftp.txt
卡在PASV ... 无法连接到
查看wget的参数,使用wget --no-passive-ftp ftp://IP地址/pub/ftp.txt


用户名连接ftp服务器

创建用户

1
2
3
sudo adduser ftpuser              # 创建用户
sudo passwd ftpuser               # 为此用户设置密码
sudo usermod -a -G ftp ftpuser    # 将创建的ftpuser用户添加到ftp组

服务器配置文件

位置:/etc/vsftpd/vsftpd.conf

配置文件内容

匿名关闭,强制实行实名

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=755
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/xferlog
xferlog_std_format=YES
listen=YES
listen_ipv6=NO

pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES

用户名登录

1
lftp 用户名:密码@ftp地址:传送端口(默认21)

用户的默认路径:/home/ftpuser
上传和下载不再赘述

让其他人下载

在客户端上传文件后,查看文件的执行权限,下载需要执行权限,如果没有,执行chmod +x ftp.txt 通过浏览器或文件管理器访问ftp://IP地址,用户登录,即可下载

wget下载

  • 第一种方法
    使用wget ftp://用户名:密码@IP地址/ftp.txt
    卡在PASV ...
    使用wget ftp://用户名:密码@IP地址/ftp.txt --no-passive-ftp
  • 第二种方法
    使用wget ftp://IP地址/ftp.txt --ftp-user=用户名 --ftp-password=密码 --no-passive-ftp
  • 第三种方法 使用wget --user=ftpuser --password=passwd IP:/home/ftp.txt[绝对路径] --no-passive-ftp
    这样可以下载任意位置的文件了。
    注意:目录建议设成权限755,文件需要有执行权限

多使用wget -help,查看linux系统对wget参数的解释