upload successful

匿名访问

服务端

安装FTP服务

1
[root@bogon ~]# yum -y install vsftpd

修改配置文件

1
2
3
4
5
6
7
8
9
10
11
[root@bogon ~]# vi /etc/vsftpd/vsftpd.conf
anonymous_enable=YES # 允许匿名访问
write_enable=YES # 允许写文件
anon_upload_enable=YES # 允许匿名用户上传文件
anon_mkdir_write_enable=YES # 允许匿名用户创建目录和写权限
手动添加:
anon_other_write_enable=YES # 允许匿名用户删除、重命名等其它权限
pasv_enable=YES # 设置被动模式
pasv_min_port=4500 # 最小端口
pasv_max_port=5000 # 最大端口
# 会在4500-5000之间随机挑选端口来与服务端建立连接

客户端模式都是以被动模式与服务端建立连接,如果服务端设置主动模式,就需要在客户端中执行 passive 来切换为主动模式进行建立连接;

启动服务

1
[root@bogon ~]# systemctl restart vsftpd

配置/var/ftp目录权限

1
[root@bogon ~]# chmod 775 -R /var/ftp/

放行防火墙

1
2
3
4
5
6
7
8
9
10
11
[root@bogon ~]# vi /etc/firewalld/zones/public.xml
<rule family="ipv4">
<port protocol="tcp" port="20-21"/>
<accept/>
</rule>
<rule family="ipv4">
<port protocol="tcp" port="4500-5000"/>
<accept/>
</rule>

[root@bogon ~]# firewall-cmd --reload

客户端

安装ftp服务

1
[root@bogon ~]# yum -y install ftp

验证

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[root@bogon ~]# ftp 172.16.1.12
Connected to 172.16.1.12 (172.16.1.12).
220 (vsFTPd 3.0.2)
Name (172.16.1.12:root): ftp
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (172,16,1,12,17,252).
150 Here comes the directory listing.
drwxrwxr-x 2 0 0 6 Oct 13 16:10 pub
226 Directory send OK.
ftp>

上传文件

1
2
3
4
5
6
ftp> !ls	# 查看当前主机目录的文件
anaconda-ks.cfg initial-setup-ks.cfg vmware-install.pl 公共 模板 视频 图片 文档 下载 音乐 桌面
ftp> put anaconda-ks.cfg
local: anaconda-ks.cfg remote: anaconda-ks.cfg
227 Entering Passive Mode (172,16,1,12,18,4).
553 Could not create file.

此时发现上传不了文件到服务端中,原因是权限不够;需要对/var/ftp目录设置777,但是在验证之前设置权限777,会导致客户端登录失败;

1
2
# 服务端操作
[root@bogon pub]# chmod 777 -R /var/ftp/
1
2
3
4
5
6
7
8
9
10
11
12
ftp> put anaconda-ks.cfg
local: anaconda-ks.cfg remote: anaconda-ks.cfg
227 Entering Passive Mode (172,16,1,12,18,231).
150 Ok to send data.
226 Transfer complete.
1604 bytes sent in 0.000384 secs (4177.08 Kbytes/sec)
ftp> ls
227 Entering Passive Mode (172,16,1,12,18,33).
150 Here comes the directory listing.
-rw------- 1 14 50 1604 Feb 09 14:27 anaconda-ks.cfg
drwxrwxrwx 2 0 0 6 Oct 13 16:10 pub
226 Directory send OK.

上传文件成功!不太建议使用匿名访问,太麻烦!

本地用户访问

服务端

修改配置文件

1
2
3
4
5
6
7
8
9
10
[root@bogon ~]# vi /etc/vsftpd/vsftpd.conf
local_enable=YES
write_enable=YES
local_umask=022
local_root=/var/ftp
需要注释的:
#anonymous_enable=YES
#anon_upload_enable=YES
#anon_mkdir_write_enable=YES
#anon_other_write_enable=YES

local_umask=022
目录权限:777-022=755
文件权限:666-022=644

重启服务

1
[root@bogon ~]# systemctl restart vsftpd

创建本地用户

1
2
useradd zx
echo "*****" | passwd --stdin zx

客户端

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
[root@bogon ~]# ftp 172.16.1.12
Connected to 172.16.1.12 (172.16.1.12).
220 (vsFTPd 3.0.2)
Name (172.16.1.12:root): zx # 服务端本地用户
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> pwd
257 "/var/ftp"
ftp> mkdir localuser
257 "/var/ftp/localuser" created
ftp> cd localuser
250 Directory successfully changed.
ftp> put vmware-install.pl
local: vmware-install.pl remote: vmware-install.pl
227 Entering Passive Mode (172,16,1,12,19,125).
150 Ok to send data.
226 Transfer complete.
227024 bytes sent in 0.0738 secs (3074.58 Kbytes/sec)
ftp> ls
227 Entering Passive Mode (172,16,1,12,19,119).
150 Here comes the directory listing.
-rw-r--r-- 1 1000 1000 227024 Feb 09 14:37 vmware-install.pl
226 Directory send OK.
ftp>