总结:1、内网访问公网需要用被动模式

   2、云服务器需要放开除20、21以外的部分端口,指定范围

   3、PASV IP配置为云服务器的弹性公网IP

   4、局域网使用主动模式连接FTP,客户端需要关闭防火墙,或者对指定IP放开全部端口

已知环境:

  FTP的服务端在华为云服务器,使用serv-U搭建

  客户端在公司内网,可以访问外网但是不能被访问到

项目上之前用的FTP都是在局域网内,用的是主动模式,不懂是为啥但一直就是用的主动模式。

这次用资源管理器连接测试的时候提示:

请检查是否有权限打开该文件夹

详细信息:TYPE A:200 type set to a. 227  Entering Passive Mode

搜索资料,出现的提示最多的就是关闭客户端的被动模式,强制使用主动模式访问(配置方式就是修改Internet-设置-高级-被动,勾选为被动,去掉为主动)

强制主动模式后,因为本机为内网,服务器无法访问到本机,所以不能使用主动模式。

切换到被动模式,需要服务器打开高段位端口号,使用serv-U暂时没有找到配置端口号的地方,公司网络有暂时稳定的外网IP,所以就在华为云的安全组配置了指定IP的全端口允许

 

 结果还是不可以,查看日志连接时显示192.168.0.*,显示的是云服务器的内网地址,最终解决通过修改监听器的PASV的IP,改为服务器的公网地址。然后可以正常连接

serv-U指定PASV端口在全局-限制和设置下的网络设置,之前在域下的限制和设置打开没找到网络设置

 

 

 

FTP的主动和被动模式

2.3. 主动模式(PORT)
主动模式下,客户端随机打开一个大于1024 的端口向服务器的命令端口 P,即 21 端口,发起连接,同时开放N +1 端口监听,并向服务器发出 “port N+1” 命令,由服务器从它自己的数据端口 (20) 主动连接到客户端指定的数据端口 (N+1)。

FTP 的客户端只是告诉服务器自己的端口号,让服务器来连接客户端指定的端口。对于客户端的防火墙来说,这是从外部到内部的连接,可能会被阻塞。

2.4. 被动模式(PASV)
为了解决服务器发起到客户的连接问题,有了另一种 FTP 连接方式,即被动方式。命令连接和数据连接都由客户端发起,这样就解决了从服务器到客户端的数据端口的连接被防火墙过滤的问题。

被动模式下,当开启一个 FTP 连接时,客户端打开两个任意的本地端口 (N > 1024 和 N+1) 。

第一个端口连接服务器的 21 端口,提交 PASV 命令。然后,服务器会开启一个任意的端口 (P > 1024 ),返回如“227 entering passive mode (127,0,0,1,4,18)”。 它返回了 227 开头的信息,在括号中有以逗号隔开的六个数字,前四个指服务器的地址,最后两个,将倒数第二个乘256 再加上最后一个数字,这就是 FTP 服务器开放的用来进行数据传输的端口。如得到 227 entering passive mode(h1,h2,h3,h4,p1,p2),那么端口号是 p1*256+p2,ip 地址为h1.h2.h3.h4。这意味着在服务器上有一个端口被开放。客户端收到命令取得端口号之后, 会通过 N+1 号端口连接服务器的端口 P,然后在两个端口之间进行数据传输。

参考网址:

https://blog.csdn.net/white1114579650/article/details/120509708

https://blog.csdn.net/white1114579650/article/details/120509573

有几次日志截图

 

posted on 2022-11-30 16:00  陈岚  阅读(510)  评论(0编辑  收藏  举报