![通过交换机、路由器和调制解调器设置远程 FTP 服务器访问](https://linux22.com/image/1438674/%E9%80%9A%E8%BF%87%E4%BA%A4%E6%8D%A2%E6%9C%BA%E3%80%81%E8%B7%AF%E7%94%B1%E5%99%A8%E5%92%8C%E8%B0%83%E5%88%B6%E8%A7%A3%E8%B0%83%E5%99%A8%E8%AE%BE%E7%BD%AE%E8%BF%9C%E7%A8%8B%20FTP%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E8%AE%BF%E9%97%AE.png)
我正在尝试从一台通过交换机 (Netgear GS108PE) 连接到我们的 (Virgin) DSL 调制解调器的 PC 访问我的远程 FTP 服务器。交换机连接到路由器 (Asus RT-AC68U),路由器连接到调制解调器。所有设备都使用 Cat5/6 以太网硬接线。
我正在使用 FileZilla 访问 FTP 服务器,该服务器连接以允许握手并接受登录名和密码,但在列出目录(MLSD)时失败。
问题是:我可以从直接连接到路由器的另一台 PC 毫无问题地访问目录列表,但不能从通过 netgear 交换机连接的 PC 访问。所有 PC 都在同一个网络上,并且都使用来自路由器的 DHCP。我已关闭所有防火墙,并尝试将所有 FTP 流量转发到 PC 和/或交换机(真的尝试了我能想到的所有方法)。
我尝试了主动和被动模式、端口转发、禁用防火墙或我能找到的任何其他方法,但感觉我可能错过了一些有关交换机/路由器设置的本质的信息。
有什么想法我可以尝试吗?我花了一整天的时间研究这个问题,显然大部分时间都在谷歌上搜索这个问题。我从事家庭网络工作已经 20 多年了,但这个问题让我很困惑。
这是我收到的消息:
Status: Connection established, waiting for welcome message...
Status: Initializing TLS...
Status: Verifying certificate...
Status: TLS connection established.
Status: Server does not support non-ASCII characters.
Status: Connected
Status: Retrieving directory listing...
Command: PWD
Response: 257 "/" is your current location
Command: TYPE I
Response: 200 TYPE is now 8-bit binary
Command: PASV
Response: 227 Entering Passive Mode (xxx,xxx,xxx,xxx,xxx,xxx)
Command: MLSD
Error: Connection timed out
Error: Failed to retrieve directory listing
*我已将上面的 IP(即所讨论的 FTP 服务器的正确外部 IP 地址)更改为 XXX。
如果您有任何见解我将非常感激。
干杯!
答案1
所以我猜通过关闭 TLS 就可以解决问题。
现在,至于 TLS 产生影响的原因:在现代连接跟踪防火墙(例如,端口地址转换所必需)上,有所谓的跟踪助手,可以使用深度数据包检测来分析协议。
FTP 的控制连接和数据连接是分开的,这对防火墙来说是个问题:仅仅允许端口 21 上的出站连接是不够的。这时助手就可以接管了:它会分析控制连接并根据PASV
(或EPSV
)回复允许连接。使用加密的控制连接,无法对其进行分析,连接也无法通过。
所有这些内容通常只与“企业”防火墙相关,因为 SOHO 路由器默认允许所有传出连接。