被动模式(PASV)连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,服务器在命令链路上用PASV命令告诉客户端:“我打开了XXXX端口,你过来连接我”。于是客户端向服务器的XXXX端口发送连接请求,建立一条数据链路来传送数据。
所以,在使用ftp的时候,不仅需要转发默认的21端口,还需要转发数据端口。
考虑到frp转发的情况,所以数据端口最好是固定的,所以这里需要修改ftp服务器的配置,这里以vsftpd服务为例。修改 vsftpd.conf 文件,固定被动模式端口范围
这里只开启了50000、50001、50002三个端口,意思就是同时只能有三个用户连接,如果需要更多用户可以配置更多的端口。
在frp的配置中,需要添加默认端口21和被动数据端口50000、50001、50002四个端口配置
运行环境:
1.阿里云服务器做frp服务器
2.路由器做frp客户端。
在被动方式FTP中,命令连接和数据连接都由客户端发起。FRP映射内网服务器的21端口,和至少1个数据传输端口,数据端口貌似不能太大(我用50000不可以),如25840-25842即可。
路由器设置被动端口范围。
所以需开启阿里云安全组端口25840/25842。
本地frp客户端配置文件参考:
运行frp :
现在就可以通过服务器ip:2121连接到内网ftp服务器了。
FTP分主动模式和被动模式情况如下:主动FTP:
命令连接:客户端 >1023端口 ->服务器 21端口
数据连接:客户端 >1023端口 <- 服务器 20端口
被动FTP:
命令连接:客户端 >1023端口 ->服务器 21端口
数据连接:客户端 >1023端口 ->服务器 >1023端口
所以说你使用内网穿透那么配置就很关键了,如果说你的内网穿透软件只支持一个端口或者只支持单向端口,在被动模式下,服务器是不知道客户机是连接的那个端口,自然就找不到了。所以说配置FTP首先要学习FTP理论,小白上手就直接配肯定出问题。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)