ftp: connect: 没有到主机的路由

FTP协议有两种工作方式:PORT方式和PASV方式,中文意思为主动式和被动式。


PORT(主动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,

建立一条命令链路。当需要传送数据时,客户端在命令链路上用PORT命令告诉服务器:“我打开了XXXX端口,

你过来连接我”。于是服务器从20端口向客户端的XXXX端口发送连接请求,建立一条数据链路来传送数据。 


PASV(被动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,

建立一条命令链路。当需要传送数据时,服务器在命令链路上用PASV命令告诉客户端:“我打开了XXXX端口,

你过来连接我”。于是客户端向服务器的XXXX端口发送连接请求,建立一条数据链路来传送数据。 


操作系统:centos7.3


客户端登录

[root@test ~]# ftp 113.142.57.158

Connected to 113.142.57.158 (113.142.57.158).

220 (vsFTPd 3.0.2)

Name (113.142.57.158:root): posftp

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 (192,168,1,84,128,204).

ftp: connect: 没有到主机的路由

ftp> passive

Passive mode off.

ftp> ls

200 PORT command successful. Consider using PASV.

150 Here comes the directory listing.

drwxr-xr-x    2 1001     100          4096 Nov 28 13:12 letposexe

-rw-r--r--    1 1007     100      15523840 Apr 26 13:53 letposexe.tar

226 Directory send OK.

ftp> 



服务器修改:

设置被动模式端口

echo '

pasv_enable=YES

pasv_min_port=41000

pasv_max_port=42000

' >>/etc/profile



--重启服务

systemctl  restart  vsftpd.service