背景是我有一个中国 IP 摄像头,需要将安全录像发送到远程 FTP 服务器。
我已经配置了一个在 LAN 上正常工作的 pure-ftpd 服务器。我定义了 PassivePortRange 并设置了 ufw 规则,并在路由器上打开了相应的端口。问题出在我尝试从本地网络外部进行连接时。
Status: Connecting to x.x.x.x:21...
Status: Connection established, waiting for welcome message...
Status: Plain FTP is insecure. Please switch to FTP over TLS.
Status: Logged in
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 (x,x,x,x,191,155)
Command: MLSD
Response: 150 Accepted data connection
Response: 226 21 matches total
Error: Connection timed out after 20 seconds of inactivity
Error: Failed to retrieve directory listing
确认端口可以从外部访问(使用端口检查工具)。我在检查开放端口时注意到 pureftp 绑定到本地地址
tcp 0 0 192.168.x.x: 0.0.0.0:* LISTEN 124031/pure-ftpd (U
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 123798/pure-ftpd (S
tcp 0 0 192.168.x.x: 0.0.0.0:* LISTEN 122365/pure-ftpd (I
我不确定这是否是我问题的根源。我也尝试过设置 ForcePassiveIP,但远程连接行为完全没有变化。我知道我的问题出在我的配置中,但是经过几个小时的故障排除后,我似乎找不到根本原因。