其他分享
首页 > 其他分享> > ftp服务搭建

ftp服务搭建

作者:互联网

yum install vsftpd -y

systemctl stop firewalld 关闭防火墙

或者配置防火墙规则 运行21端口通过

[root@localhost ~]# firewall-cmd --zone=public --add-port=21/tcp --permanent  
success

[root@localhost ~]# systemctl reload firewalld

[root@localhost ~]# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: ens33
sources:
services: dhcpv6-client ssh
ports: 21/tcp
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:

配置selinux

setenforce 0

或者修改配置文件

[root@localhost ~]# vim /etc/selinux/config

#SELINUX=enforcing
SELINUX=disabled

改为disabled

这里需要注意,如果从强制模式(enforcing)、宽容模式(permissive)切换到关闭模式(disabled),或者从关闭模式切换到其他两种模式,则必须重启 Linux 系统才能生效,但是强制模式和宽容模式这两种模式互相切换不用重启 Linux 系统就可以生效。这是因为 SELinux 是整合到 Linux 内核中的,所以必须重启才能正确关闭和启动。而且,如果从关闭模式切换到启动模式,那么重启 Linux 系统的速度会比较慢,那是因为需要重新写入安全上下文信息。

修改vsftpd的配置文件

anonymous_enable=YES  #允许匿名用户登录

anon_upload_enable=YES #运行匿名用户上传文件

anon_mkdir_write_enable=YES 运许匿名用户创建文件
anon_other_write_enable=YES 

如 果设为YES,则允许匿名登入者更多于上传或者建立目录之外的权限,譬如删除或者重命名。(如果anon_upload_enable=NO,则匿名用户 不能上传文件,但可以删除或者重命名已经存在的文件;如果anon_mkdir_write_enable=NO,则匿名用户不能上传或者新建文件夹,但 可以删除或者重命名已经存在的文件夹。)默认值为NO。
anon_umask=022  #匿名用户默认权限

no_anon_password=NO
若是启动这项功能,则使用匿名登入时,不会询问密码。默认值为NO。

重启服务

systemctl restart vsftpd

客户端链接

匿名用户使用的登陆名为ftp或anonymous,口令为空;

[root@localhost tmp]# ftp 192.168.137.105
Connected to 192.168.137.105 (192.168.137.105).
220 (vsFTPd 3.0.2)
Name (192.168.137.105:root): anonymous
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> mkdir 7
550 Create directory operation failed.
ftp> cd pub
250 Directory successfully changed.
ftp> mkdir 7
257 "/pub/7" created
ftp> get hosts
local: hosts remote: hosts
227 Entering Passive Mode (192,168,137,105,45,114).
150 Opening BINARY mode data connection for hosts (158 bytes).
226 Transfer complete.
158 bytes received in 7.2e-05 secs (2194.44 Kbytes/sec)
ftp> put file1
local: file1 remote: file1
227 Entering Passive Mode (192,168,137,105,247,219).
150 Ok to send data.
226 Transfer complete.
ftp>

错误 227 无路由

当你只是设置防火墙规则而不是直接停止防火墙时

会报错227

解决 ftp>passive

关闭pasv模式

开启则是再次passive

ftp> get hosts
local: hosts remote: hosts
227 Entering Passive Mode (192,168,137,105,157,90).
ftp: connect: 没有到主机的路由
ftp> passive
Passive mode off.
ftp> get hosts
local: hosts remote: hosts
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for hosts (158 bytes).
226 Transfer complete.
158 bytes received in 7.3e-05 secs (2164.38 Kbytes/sec)
ftp>

FTP服务的两种工作模式:

port方式(主动模式), 连接过程:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时, 客户端在命令链路上用PORT命令告诉服务器:“我打开了***X端口,你过来连接我”。于是服务器从20端口向客户端的***X端口发送连接请求,建立一条数据链路来传送数据。

pasv方式 ( 被动模式 ), 连接过程:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时, 服务器在命令链路上用PASV命令告诉客户端:“我打开了***X端口,你过来连接我”。于是客户端向服务器的***X端口发送连接请求,建立一条数据链 路来传送数据。

由于服务器上的FTP进行TCP/IP筛选,仅允许特定的端口可以被客户端连接,所以无法使用PASV方式。找到了原因,解决办法也很简单,只需要关闭客户端的PASV方式,强制其用PORT方式访问服务器即可。

 

标签:ftp,服务,端口,anon,匿名,服务器,搭建,客户端
来源: https://www.cnblogs.com/feng2039/p/16159095.html